#include "fbgui.h" #include "downloadManager.h" #include "javascriptInterface.h" #include #include #include #include #include #include // Note: Absolute paths. binPath empty init, set in main() after QApplication instanciated. QString binPath(""); QString downloadPath(binPath + "/downloads"); QUrl baseURL(DEFAULT_URL); bool debug = false; //------------------------------------------------------------------------------------------- fbgui::fbgui() { if (debug) qDebug() << "Application dir path: " << QApplication::applicationDirPath(); checkHost(); /* Init "browser" */ QWebView* webView = new QWebView(this); webView->load(baseURL); /* Init JavaScript interface */ javascriptInterface* jsi = new javascriptInterface(webView->page()->mainFrame()); QObject::connect(jsi, SIGNAL(quitFbgui()), this, SLOT(close())); QObject::connect(webView->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), jsi, SLOT(attachToDOM())); /* Init Download Manager */ 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(callbackOnDlQueueFinished())); setWindowFlags(Qt::Window); showFullScreen(); setCentralWidget(webView); show(); } //------------------------------------------------------------------------------------------- void fbgui::checkHost() const { QHostInfo hostInfo = QHostInfo::fromName(baseURL.host()); if (hostInfo.error() != QHostInfo::NoError){ qDebug() << "Lookup of " << baseURL.host() << "failed." << "Exiting..."; exit(EXIT_FAILURE); } }