summaryrefslogtreecommitdiff
path: root/daemon/jskitmanager.h
diff options
context:
space:
mode:
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