diff options
| author | Tomasz Sterna <tomek@xiaoka.com> | 2015-03-31 15:51:45 +0200 |
|---|---|---|
| committer | Tomasz Sterna <tomek@xiaoka.com> | 2015-03-31 16:37:37 +0200 |
| commit | 5481f054ccd53d401bcc6763c01d5e217663b2b4 (patch) | |
| tree | c814847fa6f9a5d4f5f3e675a8aafcea9820dd78 /app/pebbledinterface.cpp | |
| parent | c01b9da9f441d74578792ffeca2db25734b19704 (diff) | |
Implemented Watch Info page
Diffstat (limited to 'app/pebbledinterface.cpp')
| -rw-r--r-- | app/pebbledinterface.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/app/pebbledinterface.cpp b/app/pebbledinterface.cpp index 9338f7f..e7fcb2e 100644 --- a/app/pebbledinterface.cpp +++ b/app/pebbledinterface.cpp @@ -1,6 +1,8 @@ #include "pebbledinterface.h" #include "watch_interface.h" +#include <QDBusArgument> + static const QString PEBBLED_SYSTEMD_UNIT("pebbled.service"); static const QString PEBBLED_DBUS_SERVICE("org.pebbled"); static const QString PEBBLED_DBUS_PATH("/org/pebbled/Watch"); @@ -145,7 +147,26 @@ QString PebbledInterface::address() const QVariantMap PebbledInterface::info() const { qDebug() << Q_FUNC_INFO; - return watch->info(); + QVariantMap info = watch->info(); + QVariantList firmwares; + foreach (const QVariant &var, info.values("firmware")) { + const QDBusArgument &arg = var.value<QDBusArgument>(); + arg.beginMap(); + QVariantMap map; + while (!arg.atEnd()) { + QString key; + QVariant value; + arg.beginMapEntry(); + arg >> key >> value; + arg.endMapEntry(); + map.insert(key, value); + } + arg.endMap(); + firmwares << map; + } + info.remove("firmware"); + info.insert("firmware", firmwares); + return info; } QString PebbledInterface::appUuid() const |
