From 29aaea2d80a9eb1715b6cddfac2d2aacf76358bd Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Thu, 11 Feb 2016 23:55:16 +0100 Subject: launchpad ~mzanetti/rockwork/trunk r87 --- rockwork/pebbles.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 rockwork/pebbles.h (limited to 'rockwork/pebbles.h') diff --git a/rockwork/pebbles.h b/rockwork/pebbles.h new file mode 100644 index 0000000..0fef3bb --- /dev/null +++ b/rockwork/pebbles.h @@ -0,0 +1,56 @@ +#ifndef PEBBLES_H +#define PEBBLES_H + +#include +#include +#include +#include + +class Pebble; +class QDBusInterface; + +class Pebbles : public QAbstractListModel +{ + Q_OBJECT + Q_PROPERTY(QString version READ version) + + Q_PROPERTY(int count READ rowCount NOTIFY countChanged) +public: + enum Roles { + RoleAddress, + RoleName, + RoleSerialNumber, + RoleConnected + }; + + Pebbles(QObject *parent = 0); + + int rowCount(const QModelIndex &parent = QModelIndex()) const override; + QVariant data(const QModelIndex &index, int role) const override; + QHash roleNames() const override; + + QString version() const; + + Q_INVOKABLE Pebble *get(int index) const; + int find(const QString &address) const; + + +signals: + void countChanged(); + +private slots: + void refresh(); + + void pebbleConnectedChanged(); + +private: + int find(const QDBusObjectPath &path) const; + static bool sortPebbles(Pebble *a, Pebble *b); + +private: + QDBusInterface *m_iface; + QList m_pebbles; + QDBusServiceWatcher *m_watcher; +}; + +#endif // PEBBLES_H -- cgit v1.2.3