summaryrefslogtreecommitdiffstats
path: root/examples/webenginewidgets/demobrowser/browserapplication.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/webenginewidgets/demobrowser/browserapplication.cpp')
-rw-r--r--examples/webenginewidgets/demobrowser/browserapplication.cpp29
1 files changed, 20 insertions, 9 deletions
diff --git a/examples/webenginewidgets/demobrowser/browserapplication.cpp b/examples/webenginewidgets/demobrowser/browserapplication.cpp
index 0d5c54199..26764b93c 100644
--- a/examples/webenginewidgets/demobrowser/browserapplication.cpp
+++ b/examples/webenginewidgets/demobrowser/browserapplication.cpp
@@ -136,11 +136,7 @@ BrowserApplication::BrowserApplication(int &argc, char **argv)
socket.connectToServer(serverName);
if (socket.waitForConnected(500)) {
QTextStream stream(&socket);
- QStringList args = QCoreApplication::arguments();
- if (args.count() > 1)
- stream << args.last();
- else
- stream << QString();
+ stream << getCommandLineUrlArgument();
stream.flush();
socket.waitForBytesWritten();
return;
@@ -255,11 +251,13 @@ void BrowserApplication::postLaunch()
// newMainWindow() needs to be called in main() for this to happen
if (m_mainWindows.count() > 0) {
- QStringList args = QCoreApplication::arguments();
- if (args.count() > 1)
- mainWindow()->loadPage(args.last());
- else
+ const QString url = getCommandLineUrlArgument();
+ if (!url.isEmpty()) {
+ mainWindow()->loadPage(url);
+ } else {
mainWindow()->slotHome();
+ }
+
}
BrowserApplication::historyManager();
}
@@ -421,6 +419,19 @@ void BrowserApplication::installTranslator(const QString &name)
QApplication::installTranslator(translator);
}
+QString BrowserApplication::getCommandLineUrlArgument() const
+{
+ const QStringList args = QCoreApplication::arguments();
+ if (args.count() > 1) {
+ const QString lastArg = args.last();
+ const bool isValidUrl = QUrl::fromUserInput(lastArg).isValid();
+ if (isValidUrl)
+ return lastArg;
+ }
+
+ return QString();
+}
+
#if defined(Q_OS_OSX)
bool BrowserApplication::event(QEvent* event)
{