summaryrefslogtreecommitdiffstats
path: root/src/fbgui/javascriptinterface.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/fbgui/javascriptinterface.h')
-rw-r--r--src/fbgui/javascriptinterface.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/fbgui/javascriptinterface.h b/src/fbgui/javascriptinterface.h
new file mode 100644
index 0000000..cf2ec5b
--- /dev/null
+++ b/src/fbgui/javascriptinterface.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2010,2011 - RZ Uni Freiburg
+ * Copyright (c) 2010,2011 - OpenSLX Project
+ *
+ * This program/file is free software distributed under the GPL version 2.
+ * See http://openslx.org/COPYING
+ *
+ * If you have any feedback please consult http://openslx.org/feedback and
+ * send your feedback to feedback@openslx.org
+ *
+ * General information about OpenSLX can be found under http://openslx.org
+ *
+ *
+ * Interface for javascript.
+ *
+ */
+
+#ifndef JAVASCRIPTINTERFACE_H_
+#define JAVASCRIPTINTERFACE_H_
+
+#include "fbgui.h"
+
+class JavascriptInterface: public QObject {
+Q_OBJECT
+public:
+ JavascriptInterface(QWebFrame* parent);
+ ~JavascriptInterface();
+
+private:
+ // pointer to parent
+ QWebFrame* _parent;
+ // function to be called withint javascript when downloads are done.
+ QString _callbackOnDownloadsFinished;
+ // loads jQuery code
+ void loadJQuery();
+
+ signals:
+ // request the file from download manager
+ void requestFile(const QString& filename);
+ // quit the application
+ void quitFbgui();
+ // shut off the system. connected to fbgui::performShutDown()
+ void shutDownClient();
+ // reboot the system. connected to fbgui::performReboot()
+ void rebootClient();
+
+public slots:
+ // make sure the interface stays attached on webpage reload
+ void attachToDOM();
+
+ // slots for calling from the webpage
+ void startDownload(const QString& filename);
+ void setCallbackOnFinished(const QString& function);
+ const QString getSysInfo(const QString& info);
+ void quit();
+ void shutDown();
+ void reboot();
+
+ // callback when downloads are done.
+ void callbackOnFinished();
+
+ // slots for information exchange with the download manager.
+ void updateProgressBar(const int& percent, const double& speed,
+ const QString& unit);
+ void downloadInfo(const QString& filename, const double& filesize);
+ void notify(const QString& msg);
+
+ // functions to help test functionality
+ void trigger();
+};
+
+#endif // JAVASCRIPTINTERFACE_H_