summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2011-03-06 18:20:29 +0100
committerJonathan Bauer2011-03-06 18:20:29 +0100
commit01ba87df900d8ec6d0b0b52f8aa59db8bfcb7076 (patch)
tree1562371fa24549e47d607657447df0aaffb63c27
parentbaseUrl is now global variable (diff)
downloadfbgui-01ba87df900d8ec6d0b0b52f8aa59db8bfcb7076.tar.gz
fbgui-01ba87df900d8ec6d0b0b52f8aa59db8bfcb7076.tar.xz
fbgui-01ba87df900d8ec6d0b0b52f8aa59db8bfcb7076.zip
URL loading from cmdline or config file or default, depending where an URL can be found.
-rw-r--r--src/fbbrowser.cpp91
-rw-r--r--src/fbbrowser.h2
-rw-r--r--src/fbgui.conf3
-rw-r--r--src/fbgui.cpp5
-rw-r--r--src/fbgui.h2
-rw-r--r--src/main.cpp29
6 files changed, 68 insertions, 64 deletions
diff --git a/src/fbbrowser.cpp b/src/fbbrowser.cpp
index 527ef65..313bc64 100644
--- a/src/fbbrowser.cpp
+++ b/src/fbbrowser.cpp
@@ -7,47 +7,7 @@
#include <QFileInfo>
#include <QNetworkInterface>
#include <QtWebKit>
-// -------------------------------------------------------------------------------------------
-void fbbrowser::forwardDownloadRequest(QString& filename)
-{
- // Forge URL for filename from baseUrl
- QUrl fileUrl;
- fileUrl = baseUrl.resolved(QUrl(filename));
- emit downloadFile(fileUrl);
-}
-// -------------------------------------------------------------------------------------------
-void fbbrowser::forwardUpdateProgress(int progress)
-{
- emit updateProgress(progress);
-}
-// -------------------------------------------------------------------------------------------
-void fbbrowser::getMAC()
-{
- QNetworkInterface *qNetI = new QNetworkInterface();
- QList<QNetworkInterface> list;
- list=qNetI->allInterfaces();
- QString str;
- QString macAddress;
- for (int i = 0; i < list.size(); ++i) {
- str = list.at(i).name();
- macAddress = list.at(i).hardwareAddress();
- qDebug() << str;
- qDebug() << macAddress;
- }
- emit printMAC(macAddress);
-}
-// -------------------------------------------------------------------------------------------
-void fbbrowser::getTime()
-{
- qDebug() << "---- call: showTime_Slot";
- QString time = QTime::currentTime().toString("hh:mm:ss");
- emit printTime(time);
-}
-// -------------------------------------------------------------------------------------------
-void fbbrowser::quit()
-{
- emit killApp();
-}
+
// -------------------------------------------------------------------------------------------
fbbrowser::fbbrowser()
{
@@ -55,16 +15,16 @@ fbbrowser::fbbrowser()
mw = new QMainWindow(this);
view = new QWebView(mw);
- // Prepare loading of baseUrl.
+ // Prepare loading of baseURL.
// Maybe possible to let DM take care of these steps?
manager = new QNetworkAccessManager(this);
- request.setUrl(baseUrl);
+ request.setUrl(baseURL);
reply = manager->get(request);
// TODO: error differentiation
if(reply->error() == QNetworkReply::NoError)
{
- qDebug() << "Loading: " << baseUrl.toString();
- view->load(baseUrl);
+ qDebug() << "Loading: " << baseURL.toString();
+ view->load(baseURL);
}
else
{
@@ -105,3 +65,44 @@ fbbrowser::~fbbrowser()
delete dm;
delete jso;
}
+// -------------------------------------------------------------------------------------------
+void fbbrowser::forwardDownloadRequest(QString& filename)
+{
+ // Forge URL for filename from baseURL
+ QUrl fileUrl;
+ fileUrl = baseURL.resolved(QUrl(filename));
+ emit downloadFile(fileUrl);
+}
+// -------------------------------------------------------------------------------------------
+void fbbrowser::forwardUpdateProgress(int progress)
+{
+ emit updateProgress(progress);
+}
+// -------------------------------------------------------------------------------------------
+void fbbrowser::getMAC()
+{
+ QNetworkInterface *qNetI = new QNetworkInterface();
+ QList<QNetworkInterface> list;
+ list=qNetI->allInterfaces();
+ QString str;
+ QString macAddress;
+ for (int i = 0; i < list.size(); ++i) {
+ str = list.at(i).name();
+ macAddress = list.at(i).hardwareAddress();
+ qDebug() << str;
+ qDebug() << macAddress;
+ }
+ emit printMAC(macAddress);
+}
+// -------------------------------------------------------------------------------------------
+void fbbrowser::getTime()
+{
+ qDebug() << "---- call: showTime_Slot";
+ QString time = QTime::currentTime().toString("hh:mm:ss");
+ emit printTime(time);
+}
+// -------------------------------------------------------------------------------------------
+void fbbrowser::quit()
+{
+ emit killApp();
+}
diff --git a/src/fbbrowser.h b/src/fbbrowser.h
index 7def71f..96a8711 100644
--- a/src/fbbrowser.h
+++ b/src/fbbrowser.h
@@ -8,7 +8,7 @@
#include "JSObject.h"
#include "DownloadManager.h"
-extern QUrl baseUrl;
+extern QUrl baseURL;
class QWebView;
class QWebFrame;
diff --git a/src/fbgui.conf b/src/fbgui.conf
new file mode 100644
index 0000000..d0a9345
--- /dev/null
+++ b/src/fbgui.conf
@@ -0,0 +1,3 @@
+[default]
+url=http://132.230.4.3/webkitTest.html
+
diff --git a/src/fbgui.cpp b/src/fbgui.cpp
index 2303844..991372b 100644
--- a/src/fbgui.cpp
+++ b/src/fbgui.cpp
@@ -5,16 +5,17 @@
#include <QUrl>
#include <QMap>
-QUrl baseUrl;
+QUrl baseURL;
// Function not yet used, depends how settings will be loaded.
+// Probably better to not use a member variable to save settings,
+// rather process/set them in the main & use globals.
void fbgui::setOption(QString key, QString value)
{
if (!_options.contains(key))
_options.insert(key, value);
else
{
- // temp, find a better way for this
_options.remove(key);
_options.insert(key, value);
}
diff --git a/src/fbgui.h b/src/fbgui.h
index 49f66a0..8a62a32 100644
--- a/src/fbgui.h
+++ b/src/fbgui.h
@@ -4,6 +4,8 @@
#include <QtCore>
#include "fbbrowser.h"
+#define DEFAULT_URL "http://132.230.4.3/webkitTest.html"
+
class fbgui : public QObject
{
Q_OBJECT
diff --git a/src/main.cpp b/src/main.cpp
index 4172d79..08e9246 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -6,10 +6,10 @@
#include <iostream>
#include "fbgui.h"
-extern QUrl baseUrl;
+extern QUrl baseURL;
// temporary settings testing stuff
-QMap<QString, QString> options;
+QMap<QString, QString> clo;
void printHelp()
{
@@ -28,7 +28,6 @@ int main(int argc, char *argv[])
app->setApplicationName("fbgui");
app->setObjectName("test");
-
/* Parse cmdline argus. */
int longIndex = 0;
static const char *optString = "u:h";
@@ -43,31 +42,29 @@ int main(int argc, char *argv[])
switch(opt)
{
case 'u':
- options.insert("url", optarg);
+ clo.insert("url", optarg);
break;
case 'h':
- options.insert("help", "help");
+ clo.insert("help", "help");
break;
}
opt = getopt_long(argc, argv, optString, longOpts, &longIndex);
}
- //
- if (options.contains("help"))
+ if (clo.contains("help"))
{
printHelp();
exit(EXIT_SUCCESS);
}
- //
+ // Read the config file, for now hardcoded expected name.
+ QSettings confFileSettings(app->applicationDirPath() + "/fbgui.conf", QSettings::IniFormat);
+ confFileSettings.setIniCodec("UTF-8");
- if (options.contains("url"))
- // TODO: also check in conf before settings this.
- baseUrl = options.value("url");
+ if (clo.contains("url"))
+ baseURL = clo.value("url");
+ else if (confFileSettings.contains("default/url"))
+ baseURL = confFileSettings.value("default/url").toUrl();
else
- {
- std::cout << "No URL specified. Exiting...";
- exit(EXIT_FAILURE);
- }
- // TODO: Read INI.
+ baseURL = DEFAULT_URL;
// Start fbgui.
fbgui *gui = new fbgui();