#include "fbbrowser.h" #include "JSObject.h" #include "DownloadManager.h" #include #include #include // ------------------------------------------------------------------------------------------- void fbbrowser::quit() { emit killApp(); } // ------------------------------------------------------------------------------------------- fbbrowser::fbbrowser(const QUrl & url) { view = new QWebView(this); baseUrl = url; // Create QNetworkAccessManager which is needed to send/receive requests. manager = new QNetworkAccessManager(this); // Create a QNetworkRequest object and set its URL. request.setUrl(url); // Let the manager send the request and receive the reply. reply = manager->get(request); // TODO: error differentiation // reply->error() returns 0 even for invalid URL. // A possibility to check for validity, is to listen to readyRead() // signal, haven't found a better way yet ... if(reply->error() == QNetworkReply::NoError) { view->load(url); } else { qDebug() << "QNetworkReply error code is: " << reply->error(); qDebug() << "Error occured, loading error page..."; view->load(QUrl("qrc:/html/errorPage.html")); } // Enable Javascript through JSObject. qwf = view->page()->mainFrame(); jso = new JSObject(qwf); QObject::connect(qwf, SIGNAL(javaScriptWindowObjectCleared()), jso, SLOT(attachToDOM())); QObject::connect(jso, SIGNAL(signalQuitAll()), this, SLOT(quit())); // Initialize Download Manager. dm = new DownloadManager(); QObject::connect(jso, SIGNAL(downloadFile(QUrl&)), dm, SLOT(downloadFile(QUrl&))); QObject::connect(dm, SIGNAL(updateProgress(int)), jso, SLOT(updateProgress(int))); // Remove the window decoration, form to fullscreen, central view? this->setWindowFlags(Qt::SplashScreen); this->showFullScreen(); setCentralWidget(view); } // ------------------------------------------------------------------------------------------- fbbrowser::~fbbrowser() { delete view; delete manager; delete dm; delete jso; }