diff options
Diffstat (limited to 'src/fbgui/javascriptinterface.h')
-rw-r--r-- | src/fbgui/javascriptinterface.h | 72 |
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_ |