summaryrefslogtreecommitdiff
path: root/daemon/jskitmanager.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/jskitmanager.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/jskitmanager.h')
-rw-r--r--daemon/jskitmanager.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/daemon/jskitmanager.h b/daemon/jskitmanager.h
new file mode 100644
index 0000000..4482f34
--- /dev/null
+++ b/daemon/jskitmanager.h
@@ -0,0 +1,60 @@
+#ifndef JSKITMANAGER_H
+#define JSKITMANAGER_H
+
+#include <QJSEngine>
+#include "appmanager.h"
+#include "appmsgmanager.h"
+#include "settings.h"
+
+class JSKitPebble;
+class JSKitConsole;
+class JSKitLocalStorage;
+class JSKitGeolocation;
+
+class JSKitManager : public QObject
+{
+ Q_OBJECT
+ QLoggingCategory l;
+
+public:
+ explicit JSKitManager(WatchConnector *watch, AppManager *apps, AppMsgManager *appmsg, Settings *settings, QObject *parent = 0);
+ ~JSKitManager();
+
+ QJSEngine * engine();
+ bool isJSKitAppRunning() const;
+
+ static QString describeError(QJSValue error);
+
+ void showConfiguration();
+ void handleWebviewClosed(const QString &result);
+
+signals:
+ void appNotification(const QUuid &uuid, const QString &title, const QString &body);
+ void appOpenUrl(const QUrl &url);
+
+private slots:
+ void handleAppStarted(const QUuid &uuid);
+ void handleAppStopped(const QUuid &uuid);
+ void handleAppMessage(const QUuid &uuid, const QVariantMap &msg);
+
+private:
+ bool loadJsFile(const QString &filename);
+ void startJsApp();
+ void stopJsApp();
+
+private:
+ friend class JSKitPebble;
+
+ WatchConnector *_watch;
+ AppManager *_apps;
+ AppMsgManager *_appmsg;
+ Settings *_settings;
+ AppInfo _curApp;
+ QJSEngine *_engine;
+ QPointer<JSKitPebble> _jspebble;
+ QPointer<JSKitConsole> _jsconsole;
+ QPointer<JSKitLocalStorage> _jsstorage;
+ QPointer<JSKitGeolocation> _jsgeo;
+};
+
+#endif // JSKITMANAGER_H