From 80e2c7a47b51a09247c86b220be4abcf298e3f69 Mon Sep 17 00:00:00 2001
From: Kai Koehne <kai.koehne@qt.io>
Date: Wed, 29 Aug 2018 14:10:36 +0200
Subject: [PATCH] WebUI example: Reduce duplications
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Declare scheme name and about URL in one place.

Change-Id: Id8eb69f2a8516dd21e6abedc2adda828a5a9e18c
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
---
 examples/webenginewidgets/webui/main.cpp         |  5 +++--
 examples/webenginewidgets/webui/webuihandler.cpp | 14 +++++++++-----
 examples/webenginewidgets/webui/webuihandler.h   |  3 +++
 3 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/examples/webenginewidgets/webui/main.cpp b/examples/webenginewidgets/webui/main.cpp
index 54e0c145c..3e9f61fe4 100644
--- a/examples/webenginewidgets/webui/main.cpp
+++ b/examples/webenginewidgets/webui/main.cpp
@@ -58,6 +58,7 @@
 int main(int argc, char *argv[])
 {
     QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
+
     WebUiHandler::registerUrlScheme();
 
     QApplication app(argc, argv);
@@ -65,10 +66,10 @@ int main(int argc, char *argv[])
     QWebEngineProfile profile;
 
     WebUiHandler handler;
-    profile.installUrlSchemeHandler(QByteArrayLiteral("webui"), &handler);
+    profile.installUrlSchemeHandler(WebUiHandler::schemeName, &handler);
 
     QWebEnginePage page(&profile);
-    page.load(QStringLiteral("webui:about"));
+    page.load(WebUiHandler::aboutUrl);
 
     QWebEngineView view;
     view.setPage(&page);
diff --git a/examples/webenginewidgets/webui/webuihandler.cpp b/examples/webenginewidgets/webui/webuihandler.cpp
index 42446b88e..246af9d07 100644
--- a/examples/webenginewidgets/webui/webuihandler.cpp
+++ b/examples/webenginewidgets/webui/webuihandler.cpp
@@ -55,6 +55,11 @@
 #include <QWebEngineUrlRequestJob>
 #include <QWebEngineUrlScheme>
 
+#define SCHEMENAME "webui"
+
+const QByteArray WebUiHandler::schemeName = QByteArrayLiteral(SCHEMENAME);
+const QUrl WebUiHandler::aboutUrl = QUrl(QStringLiteral(SCHEMENAME ":about"));
+
 WebUiHandler::WebUiHandler(QObject *parent)
     : QWebEngineUrlSchemeHandler(parent)
 {
@@ -62,8 +67,7 @@ WebUiHandler::WebUiHandler(QObject *parent)
 
 void WebUiHandler::requestStarted(QWebEngineUrlRequestJob *job)
 {
-    static const QUrl webuiAboutUrl(QStringLiteral("webui:about"));
-    static const QUrl webUiOrigin(QStringLiteral("webui:"));
+    static const QUrl webUiOrigin(QStringLiteral(SCHEMENAME ":"));
     static const QByteArray GET(QByteArrayLiteral("GET"));
     static const QByteArray POST(QByteArrayLiteral("POST"));
 
@@ -71,11 +75,11 @@ void WebUiHandler::requestStarted(QWebEngineUrlRequestJob *job)
     QUrl url = job->requestUrl();
     QUrl initiator = job->initiator();
 
-    if (method == GET && url == webuiAboutUrl) {
+    if (method == GET && url == aboutUrl) {
         QFile *file = new QFile(QStringLiteral(":/about.html"), job);
         file->open(QIODevice::ReadOnly);
         job->reply(QByteArrayLiteral("text/html"), file);
-    } else if (method == POST && url == webuiAboutUrl && initiator == webUiOrigin) {
+    } else if (method == POST && url == aboutUrl && initiator == webUiOrigin) {
         job->fail(QWebEngineUrlRequestJob::RequestAborted);
         QApplication::exit();
     } else {
@@ -86,7 +90,7 @@ void WebUiHandler::requestStarted(QWebEngineUrlRequestJob *job)
 // static
 void WebUiHandler::registerUrlScheme()
 {
-    QWebEngineUrlScheme webUiScheme(QByteArrayLiteral("webui"));
+    QWebEngineUrlScheme webUiScheme(schemeName);
     webUiScheme.setFlags(QWebEngineUrlScheme::Secure |
                          QWebEngineUrlScheme::Local |
                          QWebEngineUrlScheme::LocalAccessAllowed);
diff --git a/examples/webenginewidgets/webui/webuihandler.h b/examples/webenginewidgets/webui/webuihandler.h
index f9d7b91df..f2ac0dcef 100644
--- a/examples/webenginewidgets/webui/webuihandler.h
+++ b/examples/webenginewidgets/webui/webuihandler.h
@@ -62,6 +62,9 @@ public:
     void requestStarted(QWebEngineUrlRequestJob *job) override;
 
     static void registerUrlScheme();
+
+    const static QByteArray schemeName;
+    const static QUrl aboutUrl;
 };
 
 #endif // !WEBUIHANDLER_H
-- 
GitLab