]> rtime.felk.cvut.cz Git - coffee/qtwebbrowser.git/commitdiff
make it possible to pass URLs on command line
authorJoerg Bornemann <joerg.bornemann@theqtcompany.com>
Tue, 29 Sep 2015 10:00:13 +0000 (12:00 +0200)
committerJoerg Bornemann <joerg.bornemann@theqtcompany.com>
Tue, 29 Sep 2015 10:00:13 +0000 (12:00 +0200)
src/engine.cpp
src/engine.h
src/qml/BrowserWindow.qml

index 5768b5e348a6ebb9cd73b9aff4d80f00d7d76e3e..3c8d0d02334ef42840876d9aa5d358a22ed61ccd 100644 (file)
 #include <QtCore/QDir>
 #include <QtCore/QStandardPaths>
 #include <QStringBuilder>
+#include <QCoreApplication>
 
 Engine::Engine(QObject *parent)
     : QObject(parent)
     , m_settings(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) % QDir::separator() % "settings.ini", QSettings::IniFormat, this)
 {
+    foreach (const QString &arg, QCoreApplication::arguments().mid(1)) {
+        if (arg.startsWith('-'))
+            continue;
+        const QUrl url(arg);
+        if (url.isValid()) {
+            m_initialUrl = url.toString();
+            break;
+        }
+    }
 }
 
 QString Engine::settingsPath()
@@ -52,6 +62,11 @@ QString Engine::settingsPath()
     return m_settings.fileName();
 }
 
+QString Engine::initialUrl() const
+{
+    return m_initialUrl;
+}
+
 QUrl Engine::fromUserInput(const QString& userInput)
 {
     QFileInfo fileInfo(userInput);
index 49cbe249f0d2a20de18c3eac4b022ec26445224b..5d59990ec0b65be89bd744a7ca090f32e97a699c 100644 (file)
@@ -78,8 +78,10 @@ class Engine : public QObject {
 
     Q_PROPERTY(QObject * rootWindow READ rootWindow FINAL CONSTANT)
     Q_PROPERTY(QString settingsPath READ settingsPath FINAL CONSTANT)
+    Q_PROPERTY(QString initialUrl READ initialUrl FINAL CONSTANT)
 
     QSettings m_settings;
+    QString m_initialUrl;
 
 public:
     Engine(QObject *parent);
@@ -88,6 +90,7 @@ public:
         return parent();
     }
     QString settingsPath();
+    QString initialUrl() const;
 
     Q_INVOKABLE bool isUrl(const QString& userInput);
     Q_INVOKABLE QUrl fromUserInput(const QString& userInput);
index 2e7858b5d49c9ba1603eb10bd8c077a4e64f3a19..c95ee53e7b0ceb0f8078732e7931d3df94ca1562 100644 (file)
@@ -199,6 +199,7 @@ Item {
                 return
 
             navigation.webView = tab.webView
+            navigation.load(engine.initialUrl);
         }
         onCurrentIndexChanged: {
             if (!tabView.get(tabView.currentIndex))