blob: d9ff22550f20f0a435d005242ca73598baa7a870 (
plain) (
tree)
|
|
/*
* javascriptinterfacefbgui.cpp
*
* Created on: Feb 21, 2012
* Author: joe
*/
#include "javascriptinterfacefbgui.h"
#include "sysinfo.h"
JavascriptInterfaceFBGUI::JavascriptInterfaceFBGUI(QWebFrame* parent)
: JavascriptInterface(parent){
}
JavascriptInterfaceFBGUI::~JavascriptInterfaceFBGUI() {
}
//-------------------------------------------------------------------------------------------------------
// 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 JavascriptInterfaceFBGUI::startDownload(const QString& filename) {
// ignore if empty filename
if (filename.isEmpty()) {
_targetFrame->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 JavascriptInterfaceFBGUI::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 JavascriptInterfaceFBGUI::getSysInfo(const QString& info) {
SysInfo si;
return si.getInfo(info);
}
//-------------------------------------------------------------------------------------------------------
// 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 JavascriptInterfaceFBGUI::downloadInfo(const QString& filename,
const double& filesize) {
QString code = QString("downloadInfo('\%1', \%2)").arg(filename).arg(
filesize);
_targetFrame->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 JavascriptInterfaceFBGUI::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);
_targetFrame->evaluateJavaScript(code);
}
//-------------------------------------------------------------------------------------------------------
/**
* Sets a callback function for when downloads are finished (will be called when the queue is empty).
*/
void JavascriptInterfaceFBGUI::callbackOnFinished() {
QString code = QString("\%1").arg(_callbackOnDownloadsFinished);
_targetFrame->evaluateJavaScript(code);
}
|