Lomiri
Changelog.cpp
1 /*
2  * Copyright (C) 2018 The UBports project
3  * Written by: Marius Gripsgard <marius@ubports.com>
4  *
5  * This program is free software: you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 3, as published
7  * by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranties of
11  * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
12  * PURPOSE. See the GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #include "Changelog.h"
19 
20 #include <QDir>
21 #include <QFile>
22 #include <QTextStream>
23 
24 Changelog::Changelog()
25  : QObject()
26 {
27  readChangelog();
28  if(QFile::exists(changelogPath()))
29  m_fsWatcher.addPath(changelogPath());
30  connect(&m_fsWatcher, &QFileSystemWatcher::fileChanged, this, &Changelog::watcherFileChanged);
31 }
32 
33 QString Changelog::changelogPath()
34 {
35  return "/usr/share/ubports/changelogs/current";
36 }
37 
38 QString Changelog::text() const
39 {
40  return m_text;
41 }
42 
43 void Changelog::readChangelog()
44 {
45  if(!QFile::exists(changelogPath()))
46  return;
47  QFile f(changelogPath());
48  if (!f.open(QFile::ReadOnly | QFile::Text)) return;
49  QTextStream in(&f);
50  m_text = in.readAll();
51  Q_EMIT textChanged();
52 }
53 
54 void Changelog::watcherFileChanged()
55 {
56  readChangelog();
57  m_fsWatcher.removePath(changelogPath());
58 }