summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJonathan Bauer2011-03-10 01:23:51 +0100
committerJonathan Bauer2011-03-10 01:23:51 +0100
commit9df74a4de07f08d070e503b5bf4432e7c8c90360 (patch)
tree531cd3907959773931b5e21393b365cccb8de113 /src
parentuntested (diff)
downloadfbgui-9df74a4de07f08d070e503b5bf4432e7c8c90360.tar.gz
fbgui-9df74a4de07f08d070e503b5bf4432e7c8c90360.tar.xz
fbgui-9df74a4de07f08d070e503b5bf4432e7c8c90360.zip
callback function when download queue is empty
Diffstat (limited to 'src')
-rw-r--r--src/DownloadManager.cpp4
-rw-r--r--src/fbgui.cpp2
-rw-r--r--src/javascriptInterface.cpp10
-rw-r--r--src/javascriptInterface.h4
4 files changed, 14 insertions, 6 deletions
diff --git a/src/DownloadManager.cpp b/src/DownloadManager.cpp
index 61be8d0..5c2b123 100644
--- a/src/DownloadManager.cpp
+++ b/src/DownloadManager.cpp
@@ -59,7 +59,7 @@ void DownloadManager::startNextDownload()
if (dlQ.isEmpty())
{
emit downloadQueueEmpty();
- if (debug) qDebug() << "Download manager ready.";
+ if (debug) qDebug() << "Download manager ready. (1)";
return;
}
if (debug) qDebug() << "Starting next download: " << dlQ.head().toString()
@@ -145,7 +145,7 @@ void DownloadManager::downloadFinished()
// If queue is empty, we are done.
if (dlQ.isEmpty()){
emit downloadQueueEmpty();
- if (debug) qDebug() << "Download manager ready.";
+ if (debug) qDebug() << "Download manager ready. (2)";
return;
}
// Queue not empty: initialise next download.
diff --git a/src/fbgui.cpp b/src/fbgui.cpp
index 08d7e9e..dc1891c 100644
--- a/src/fbgui.cpp
+++ b/src/fbgui.cpp
@@ -32,7 +32,7 @@ fbgui::fbgui()
DownloadManager* dm = new DownloadManager();
QObject::connect(jsi, SIGNAL(requestFile(QString&)), dm, SLOT(downloadFile(QString&)));
QObject::connect(dm, SIGNAL(updateProgress(QString, int)), jsi, SLOT(updateProgressBar(QString, int)));
- QObject::connect(dm, SIGNAL(downloadQueueEmpty()), jsi, SLOT(setCallbackOnDlQueueFinished()));
+ QObject::connect(dm, SIGNAL(downloadQueueEmpty()), jsi, SLOT(callbackOnDlQueueFinished()));
setWindowFlags(Qt::Window);
showFullScreen();
setCentralWidget(webView);
diff --git a/src/javascriptInterface.cpp b/src/javascriptInterface.cpp
index a4f492f..90fed92 100644
--- a/src/javascriptInterface.cpp
+++ b/src/javascriptInterface.cpp
@@ -54,9 +54,15 @@ void javascriptInterface::updateProgressBar(QString current, int i)
_parent->evaluateJavaScript(code);
}
//-------------------------------------------------------------------------------------------------------
-void javascriptInterface::setCallbackOnDlQueueFinished()
+void javascriptInterface::setCallbackOnDlQueueFinished(QString jsFunction)
{
- _parent->evaluateJavaScript("jsFunction();");
+ callBackOnDownloadsFinished = jsFunction;
+}
+void javascriptInterface::callbackOnDlQueueFinished()
+{
+ QString code = QString("\%1").arg(callBackOnDownloadsFinished);
+ qDebug() << "to JS: " << code;
+ _parent->evaluateJavaScript(code);
}
void javascriptInterface::quit()
{
diff --git a/src/javascriptInterface.h b/src/javascriptInterface.h
index 2496ef7..d23a6e0 100644
--- a/src/javascriptInterface.h
+++ b/src/javascriptInterface.h
@@ -18,6 +18,7 @@ class javascriptInterface : public QObject{
Q_OBJECT
private:
QWebFrame* _parent;
+ QString callBackOnDownloadsFinished;
public:
javascriptInterface(QWebFrame* parent);
@@ -32,7 +33,8 @@ public slots:
QString getSysInfo(QString info);
void startDownload(QString filename);
void updateProgressBar(QString current, int i);
- void setCallbackOnDlQueueFinished();
+ void setCallbackOnDlQueueFinished(QString fctOnDownloadsFinished);
+ void callbackOnDlQueueFinished();
void quit();
};