Lomiri
Status.h
1 /*
2  * Copyright (C) 2015 Canonical Ltd.
3  *
4  * This program is free software: you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 3, as published
6  * by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranties of
10  * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11  * PURPOSE. See the GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License along
14  * with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 #ifndef WIZARD_STATUS_H
18 #define WIZARD_STATUS_H
19 
20 #include <QObject>
21 #include <QString>
22 #include <QDBusInterface>
23 
24 class Status: public QObject
25 {
26  Q_OBJECT
27  Q_PROPERTY(bool online READ online NOTIFY onlineChanged)
28  Q_PROPERTY(QString networkIcon READ networkIcon NOTIFY networkIconChanged)
29  Q_PROPERTY(QString batteryIcon READ batteryIcon NOTIFY batteryIconChanged)
30 public:
31  Status();
32  ~Status() = default;
33 
34  bool online() const;
35  QString networkIcon();
36 
37  QString batteryIcon() const;
38 
39 Q_SIGNALS:
40  void networkIconChanged();
41  void onlineChanged();
42  void batteryIconChanged();
43 
44 private Q_SLOTS:
45  void onNMPropertiesChanged(const QVariantMap &changedProps);
46  void onUPowerPropertiesChanged(const QString &iface, const QVariantMap &changedProps, const QStringList &invalidatedProps);
47 
48 private:
49  Q_DISABLE_COPY(Status)
50 
51  // network status
52  void initNM();
53  QDBusInterface * m_nmIface = nullptr;
54 
55  // battery status
56  void initUPower();
57  QDBusInterface * m_upowerIface = nullptr;
58 };
59 
60 #endif