summaryrefslogtreecommitdiffstats
path: root/src/fbgui/javascriptinterface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/fbgui/javascriptinterface.cpp')
-rw-r--r--src/fbgui/javascriptinterface.cpp166
1 files changed, 35 insertions, 131 deletions
diff --git a/src/fbgui/javascriptinterface.cpp b/src/fbgui/javascriptinterface.cpp
index 8260fab..72d0844 100644
--- a/src/fbgui/javascriptinterface.cpp
+++ b/src/fbgui/javascriptinterface.cpp
@@ -1,8 +1,8 @@
#include "fbgui.h"
+#include "ndgui.h"
#include "javascriptinterface.h"
#include "sysinfo.h"
-
#include <log4cxx/logger.h>
#include "qlog4cxx.h"
@@ -10,7 +10,6 @@ using namespace log4cxx;
using namespace log4cxx::helpers;
LoggerPtr jsiLogger(Logger::getLogger("fbgui.jsi"));
-
//-------------------------------------------------------------------------------------------------------
// Initialisation
//-------------------------------------------------------------------------------------------------------
@@ -21,8 +20,8 @@ LoggerPtr jsiLogger(Logger::getLogger("fbgui.jsi"));
* Is of type QWebFrame.
*/
JavascriptInterface::JavascriptInterface(QWebFrame *parent) {
- LOG4CXX_DEBUG(jsiLogger, "Initializing javascript interface...");
- _parent = parent;
+ LOG4CXX_DEBUG(jsiLogger, "Initializing javascript interface...");
+ _targetFrame = parent;
}
//-------------------------------------------------------------------------------------------------------
/**
@@ -42,8 +41,8 @@ JavascriptInterface::~JavascriptInterface() { /* destructor dummy */
* @see JavascriptInterface::loadJQuery()
*/
void JavascriptInterface::attachToDOM() {
- _parent->addToJavaScriptWindowObject(QString("fbgui"), this);
- loadJQuery();
+ _targetFrame->addToJavaScriptWindowObject(QString("fbgui"), this);
+ loadJQuery();
}
//-------------------------------------------------------------------------------------------------------
/**
@@ -58,88 +57,29 @@ void JavascriptInterface::attachToDOM() {
* @see JavascriptInterface::attachToDOM()
*/
void JavascriptInterface::loadJQuery() {
- // to test if this actually works...
- QString js;
- QString pathToJsDir(DEFAULT_QRC_HTML_DIR);
- pathToJsDir.append("/js");
+ // to test if this actually works...
+ QString js;
+ QString pathToJsDir(DEFAULT_QRC_HTML_DIR);
+ pathToJsDir.append("/js");
- QDir qrcJSDir(pathToJsDir);
- QFileInfoList fiList = qrcJSDir.entryInfoList();
- QFileInfo fi;
-foreach(fi, fiList)
-{
- if (fi.suffix() == "js") {
- //qDebug()<< fi.fileName();
- //LOG4CXX_DEBUG(jsiLogger, fi.fileName());
- if (fi.fileName() != "test.js") {
- QFile file;
- file.setFileName(pathToJsDir + "/" + fi.fileName());
- file.open(QIODevice::ReadOnly);
- js = file.readAll();
- file.close();
+ QDir qrcJSDir(pathToJsDir);
+ QFileInfoList fiList = qrcJSDir.entryInfoList();
+ QFileInfo fi;
- _parent->evaluateJavaScript(js);
- //LOG4CXX_DEBUG(jsiLogger, "evaluated " + fi.fileName());
- }
- }
-}
-}
-//-------------------------------------------------------------------------------------------------------
-// Javascript functions for webpage
-//-------------------------------------------------------------------------------------------------------
-/**
- * This method start a download.
- *
- * This method start a download.
- * Can be called from inside a JavaScript function of the HTML page.
- * Emits the JavascriptInterface::requestFile(const QString) signal.
- */
-void JavascriptInterface::startDownload(const QString& filename) {
- // ignore if empty filename
- if (filename.isEmpty()) {
- _parent->evaluateJavaScript("alert(\"No filename!\")");
- return;
- }
- emit requestFile(filename);
-}
-//-------------------------------------------------------------------------------------------------------
-/**
- * This method start a download.
- *
- * This method start a download.
- * Can be called from inside a JavaScript function of the HTML page.
- *
- * @todo add some more informations
- */
-void JavascriptInterface::setCallbackOnFinished(const QString& function) {
- LOG4CXX_DEBUG(jsiLogger, "Callback set: " << function);
- _callbackOnDownloadsFinished = QString(function);
-}
-//-------------------------------------------------------------------------------------------------------
-/**
- * This method delivers system informations.
- *
- * This method delivers system informations. Type of informations, are defined by
- * the parameter. The output of this method depends on the parameter.
- * Can be called from inside a JavaScript function of the HTML page.
- *
- * @param infoName
- * Is of type QString. Defines which method will be called. Possible values are:
- * - mac
- * - ip
- * - mbserial
- * - usb
- *
- * @return QString
- * the output of the called method or "info_error" if an error occurred
- * (e. g. invalid parameter).
- *
- * @see SysInfo::getInfo(const QString& infoName)
- */
-const QString JavascriptInterface::getSysInfo(const QString& info) {
- SysInfo si;
- return si.getInfo(info);
+ foreach(fi, fiList) {
+ if (fi.suffix() == "js") {
+ QFile file;
+ file.setFileName(pathToJsDir + "/" + fi.fileName());
+ file.open(QIODevice::ReadOnly);
+ js = file.readAll();
+ file.close();
+
+ _targetFrame->evaluateJavaScript(js);
+ //LOG4CXX_DEBUG(jsiLogger, "evaluated " + fi.fileName());
+ }
+ }
}
+
//-------------------------------------------------------------------------------------------------------
/**
* This method quits the whole program.
@@ -149,7 +89,7 @@ const QString JavascriptInterface::getSysInfo(const QString& info) {
* Emits JavascriptInterface::quitFbgui() signal
*/
void JavascriptInterface::quit() {
- emit quitFbgui();
+ emit quitFbgui();
}
//-------------------------------------------------------------------------------------------------------
@@ -163,7 +103,7 @@ void JavascriptInterface::quit() {
* @see fbgui::performShutDown()
*/
void JavascriptInterface::shutDown() {
- emit shutDownClient();
+ emit shutDownClient();
}
//-------------------------------------------------------------------------------------------------------
/**
@@ -176,56 +116,20 @@ void JavascriptInterface::shutDown() {
* @see fbgui::performReboot()
*/
void JavascriptInterface::reboot() {
- emit rebootClient();
-}
-//-------------------------------------------------------------------------------------------------------
-// Download Manager information exchange
-//-------------------------------------------------------------------------------------------------------
-/**
- * This method delivers some informations about the downloading file.
- *
- * This method delivers some informations about the downloading file.
- *
- * @todo add some more informations
- */
-void JavascriptInterface::downloadInfo(const QString& filename,
- const double& filesize) {
- QString code = QString("downloadInfo('\%1', \%2)").arg(filename).arg(
- filesize);
- _parent->evaluateJavaScript(code);
-}
-//-------------------------------------------------------------------------------------------------------
-/**
- * This method updates the progress bar.
- *
- * This method calls a Javascript function to update the progress bar of the download.
- * Javascript must have a function called "updateProgress" to receive this information.
- *
- * @todo add some more informations
- */
-void JavascriptInterface::updateProgressBar(const int& percent,
- const double& speed, const QString& unit) {
- if (percent == 0)
- return;
- QString code = QString("updateProgress(\%1, \%2, '\%3')").arg(percent).arg(
- speed).arg(unit);
- _parent->evaluateJavaScript(code);
+ emit rebootClient();
}
+
//-------------------------------------------------------------------------------------------------------
/**
* This method sends out messages to Javascript. A corresponding function must be implemented
* on the webpage to receive these.
*/
void JavascriptInterface::notify(const QString& msg) {
- LOG4CXX_DEBUG(jsiLogger, "Notifying: " << msg);
- QString code = QString("notify('\%1')").arg(msg);
- _parent->evaluateJavaScript(code);
+LOG4CXX_DEBUG(jsiLogger, "Notifying: " << msg);
+QString code = QString("notify('\%1')").arg(msg);
+_targetFrame->evaluateJavaScript(code);
}
+
+//-------------------------------------------------------------------------------------------------------
+// Network Discovery Communication
//-------------------------------------------------------------------------------------------------------
-/**
- * Sets a callback function for when downloads are finished (will be called when the queue is empty).
- */
-void JavascriptInterface::callbackOnFinished() {
- QString code = QString("\%1").arg(_callbackOnDownloadsFinished);
- _parent->evaluateJavaScript(code);
-}