diff options
| author | Tomasz Sterna <tomek@xiaoka.com> | 2015-01-03 16:38:02 +0100 |
|---|---|---|
| committer | Tomasz Sterna <tomek@xiaoka.com> | 2015-01-03 19:07:48 +0100 |
| commit | 4e7da1944f5fa75a0739c0757d40a8102f045365 (patch) | |
| tree | 5f3fe179256536e4135eb4d5031a1d754af5e26c /app/pebbledinterface.h | |
| parent | 4150005566bec7827ce1cdd759a2397d47eba583 (diff) | |
| parent | e6ec758b364fcaf9fda35e56740c3fcd7e8fe25e (diff) | |
Merge remote-tracking branch 'javispedro/js-testing'
Conflicts:
daemon/daemon.pro
daemon/dbusconnector.cpp
daemon/manager.cpp
daemon/watchcommands.cpp
daemon/watchcommands.h
daemon/watchconnector.cpp
daemon/watchconnector.h
log4qt-debug.conf
log4qt-release.conf
rpm/pebble.spec
rpm/pebble.yaml
Diffstat (limited to 'app/pebbledinterface.h')
| -rw-r--r-- | app/pebbledinterface.h | 69 |
1 files changed, 46 insertions, 23 deletions
diff --git a/app/pebbledinterface.h b/app/pebbledinterface.h index 0a6f15d..51efa12 100644 --- a/app/pebbledinterface.h +++ b/app/pebbledinterface.h @@ -2,48 +2,57 @@ #define PEBBLEDINTERFACE_H #include <QObject> -#include <QtDBus/QtDBus> -#include <QDBusArgument> +#include <QUrl> +#include <QHash> +#include <QUuid> +#include <QImage> +#include <QDBusInterface> + +class OrgPebbledWatchInterface; class PebbledInterface : public QObject { Q_OBJECT + Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) + Q_PROPERTY(bool active READ active WRITE setActive NOTIFY activeChanged) + Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged) + Q_PROPERTY(QString name READ name NOTIFY nameChanged) + Q_PROPERTY(QString address READ address NOTIFY addressChanged) + Q_PROPERTY(QString appUuid READ appUuid NOTIFY appUuidChanged) - static QString PEBBLED_SYSTEMD_UNIT; - static QString PEBBLED_DBUS_SERVICE; - static QString PEBBLED_DBUS_PATH; - static QString PEBBLED_DBUS_IFACE; + Q_PROPERTY(QStringList appSlots READ appSlots NOTIFY appSlotsChanged) + Q_PROPERTY(QVariantList allApps READ allApps NOTIFY allAppsChanged) - Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) - bool enabled() const; +public: + explicit PebbledInterface(QObject *parent = 0); - Q_PROPERTY(bool active READ active WRITE setActive NOTIFY activeChanged) + bool enabled() const; bool active() const; - - Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged) bool connected() const; + QString name() const; + QString address() const; + QString appUuid() const; - Q_PROPERTY(QVariantMap pebble READ pebble NOTIFY pebbleChanged) - QVariantMap pebble() const; + QStringList appSlots() const; + QVariantList allApps() const; - Q_PROPERTY(QString name READ name NOTIFY nameChanged) - QString name() const; + Q_INVOKABLE QVariantMap appInfoByUuid(const QString& uuid) const; - Q_PROPERTY(QString address READ address NOTIFY addressChanged) - QString address() const; + Q_INVOKABLE QUrl configureApp(const QString &uuid); + Q_INVOKABLE bool isAppInstalled(const QString &uuid) const; -public: - explicit PebbledInterface(QObject *parent = 0); + QImage menuIconForApp(const QUuid &uuid) const; signals: void enabledChanged(); void activeChanged(); - void connectedChanged(); - void pebbleChanged(); void nameChanged(); void addressChanged(); + void appUuidChanged(); + void appSlotsChanged(); + void allAppsChanged(); public slots: void setEnabled(bool); @@ -53,16 +62,30 @@ public slots: void disconnect(); void reconnect(); + void setAppConfiguration(const QString &uuid, const QString &data); + + void launchApp(const QString &uuid); + void uploadApp(const QString &uuid, int slot); + void unloadApp(int slot); + private slots: + void onWatchConnectedChanged(); void getUnitProperties(); void onPropertiesChanged(QString interface, QMap<QString, QVariant> changed, QStringList invalidated); - void onPebbleChanged(); + void refreshAppSlots(); + void refreshAllApps(); private: QDBusInterface *systemd; + OrgPebbledWatchInterface *watch; QDBusObjectPath unitPath; + QVariantMap unitProperties; - QVariantMap properties; + // Cached properties + QStringList _appSlots; + QVariantList _apps; + QHash<QUuid, int> _appsByUuid; + QHash<QUuid, QImage> _appMenuIcons; }; #endif // PEBBLEDINTERFACE_H |
