diff options
Diffstat (limited to 'src/fbgui.cpp')
-rw-r--r-- | src/fbgui.cpp | 79 |
1 files changed, 47 insertions, 32 deletions
diff --git a/src/fbgui.cpp b/src/fbgui.cpp index 96265d2..f642da2 100644 --- a/src/fbgui.cpp +++ b/src/fbgui.cpp @@ -1,12 +1,11 @@ #include "fbgui.h" +#include "loggerEngine.h" #include "downloadManager.h" #include "javascriptInterface.h" #include <iostream> -#include <QUrl> -#include <QDir> -#include <QHostInfo> #include <QtWebKit> +#include <QxtCore> QUrl baseURL(DEFAULT_URL); QString binPath(""); @@ -14,14 +13,25 @@ QString downloadPath("/tmp/fbgui/downloads"); int updateInterval = DEFAULT_UPDATE_INTERVAL; bool debug = false; + //------------------------------------------------------------------------------------------- -fbgui::fbgui() -{ - /* initialize "browser" */ +fbgui::fbgui(){ + /* setup qxt logger and enable custom std engine*/ + qxtLog->disableLoggerEngine("DEFAULT"); + qxtLog->addLoggerEngine("std_logger", new loggerEngine_std); + qxtLog->initLoggerEngine("std_logger"); + qxtLog->setMinimumLevel("std_logger", QxtLogger::DebugLevel); + qxtLog->debug() << "Initializing fbgui..."; + + /* initliaze browser */ checkHost(); _webView = new QWebView(this); _webView->load(baseURL); + /* debug split if debug mode, normal browser else */ + if (debug) setupDebugSplit(); + else setCentralWidget(_webView); + /* initialize javascript interface */ javascriptInterface* jsi = new javascriptInterface(_webView->page()->mainFrame()); QObject::connect(jsi, SIGNAL(quitFbgui()), this, SLOT(close())); @@ -32,50 +42,55 @@ fbgui::fbgui() downloadManager* dm = new downloadManager(); QObject::connect(dm, SIGNAL(downloadInfo(QString, double)), jsi, SLOT(downloadInfo(QString, double))); + QObject::connect(dm, SIGNAL(notify(QString)), + jsi, SLOT(notify(QString))); QObject::connect(jsi, SIGNAL(requestFile(QString&)), dm, SLOT(downloadFile(QString&))); QObject::connect(dm, SIGNAL(updateProgress(int, double, QString)), jsi, SLOT(updateProgressBar(int, double, QString))); QObject::connect(dm, SIGNAL(downloadQueueEmpty()), jsi, SLOT(callbackOnDlQueueFinished())); - setWindowTitle("fbgui"); setAttribute(Qt::WA_QuitOnClose, true); setWindowFlags(Qt::FramelessWindowHint); - - /* TEST */ - if (debug){ - _logView = new logViewer(this); - _splitter = new QSplitter(Qt::Vertical, this); - _splitter->addWidget(_webView); - _splitter->addWidget(_logView); - /* CTRL + D toggles debug window */ - _toggleDebug = new QAction(tr("&toggleDebug"), this); - _toggleDebug->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_D)); - this->addAction(_toggleDebug); - connect(_toggleDebug, SIGNAL(triggered()), this, SLOT(toggleDebug())); - //createToggleDebugAction(); - setCentralWidget(_splitter); - } - else - setCentralWidget(_webView); - /* TEST */ - showFullScreen(); } //------------------------------------------------------------------------------------------- +void fbgui::setupDebugSplit(){ + _debugConsole = new QTextEdit(this); + _debugConsole->setWindowFlags(Qt::FramelessWindowHint); + QPalette pal; + pal.setColor(QPalette::Base, Qt::black); + _debugConsole->setPalette(pal); + _debugConsole->setTextColor(Qt::cyan); + _debugConsole->insertPlainText("Debug console initialized.\n"); + /* switch engine to custom engine class "logger" */ + qxtLog->addLoggerEngine("fb_logger", new loggerEngine_fb(_debugConsole)); + qxtLog->initLoggerEngine("fb_logger"); + qxtLog->setMinimumLevel("fb_logger", QxtLogger::DebugLevel); + /* display browser and debug in a splitter */ + _splitter = new QSplitter(Qt::Vertical, this); + _splitter->addWidget(_webView); + _splitter->addWidget(_debugConsole); + /* CTRL + D toggles debug window */ + _toggleDebug = new QAction(tr("&toggleDebug"), this); + _toggleDebug->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_D)); + addAction(_toggleDebug); + connect(_toggleDebug, SIGNAL(triggered()), this, SLOT(toggleDebug())); + setCentralWidget(_splitter); +} //------------------------------------------------------------------------------------------- void fbgui::toggleDebug(){ - if (_logView->isVisibleTo(_splitter)) - _logView->hide(); + if (_debugConsole->isVisible()) + _debugConsole->hide(); else - _logView->show(); + _debugConsole->show(); } //------------------------------------------------------------------------------------------- -void fbgui::checkHost() const -{ +void fbgui::checkHost() const{ + // TODO instead of closing app, show error page from qrc QHostInfo hostInfo = QHostInfo::fromName(baseURL.host()); if (hostInfo.error() != QHostInfo::NoError){ - qDebug() << "Lookup of " << baseURL.host() << "failed. Exiting..."; + qxtLog->debug() << "Lookup of " << baseURL.host() << "failed. Exiting..."; exit(EXIT_FAILURE); } } |