summaryrefslogtreecommitdiffstats
path: root/src/fbgui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/fbgui.cpp')
-rw-r--r--src/fbgui.cpp79
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);
}
}