/* * 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); }; #endif // JAVASCRIPTINTERFACE_H_