summaryrefslogtreecommitdiff
path: root/daemon/appmanager.h
diff options
context:
space:
mode:
authorTomasz Sterna <tomek@xiaoka.com>2015-01-03 16:38:02 +0100
committerTomasz Sterna <tomek@xiaoka.com>2015-01-03 19:07:48 +0100
commit4e7da1944f5fa75a0739c0757d40a8102f045365 (patch)
tree5f3fe179256536e4135eb4d5031a1d754af5e26c /daemon/appmanager.h
parent4150005566bec7827ce1cdd759a2397d47eba583 (diff)
parente6ec758b364fcaf9fda35e56740c3fcd7e8fe25e (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 'daemon/appmanager.h')
-rw-r--r--daemon/appmanager.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/daemon/appmanager.h b/daemon/appmanager.h
new file mode 100644
index 0000000..e96ffe5
--- /dev/null
+++ b/daemon/appmanager.h
@@ -0,0 +1,42 @@
+#ifndef APPMANAGER_H
+#define APPMANAGER_H
+
+#include <QObject>
+#include <QHash>
+#include <QUuid>
+#include <QFileSystemWatcher>
+#include <QLoggingCategory>
+#include "appinfo.h"
+
+class AppManager : public QObject
+{
+ Q_OBJECT
+ QLoggingCategory l;
+
+public:
+ explicit AppManager(QObject *parent = 0);
+
+ QStringList appPaths() const;
+ QList<QUuid> appUuids() const;
+
+ AppInfo info(const QUuid &uuid) const;
+ AppInfo info(const QString &shortName) const;
+
+public slots:
+ void rescan();
+
+signals:
+ void appsChanged();
+
+private:
+ void scanApp(const QString &path);
+ QByteArray extractFromResourcePack(const QString &file, int id) const;
+ QImage decodeResourceImage(const QByteArray &data) const;
+
+private:
+ QFileSystemWatcher *_watcher;
+ QHash<QUuid, AppInfo> _apps;
+ QHash<QString, QUuid> _names;
+};
+
+#endif // APPMANAGER_H