From b64bb0a7e3f4529282f4a27fa9fa72bc648673cf Mon Sep 17 00:00:00 2001
From: Eike Ziller <eike.ziller@qt.io>
Date: Tue, 6 Sep 2016 11:38:19 +0200
Subject: [PATCH] Help: Fix that help viewer opened even if URL is opened in
 browser

After we constructed the online URL for Qt/Qt Creator documentation that
is not installed locally, we can just open that via desktop services
instead of bothering built-in help viewers.

Change-Id: Ic8a37bc22d34af881b5daf87534d59db4d331e44
Task-number: QTCREATORBUG-16111
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
---
 src/plugins/help/helpplugin.cpp | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp
index f50a8ee5b8..115bdfbca4 100644
--- a/src/plugins/help/helpplugin.cpp
+++ b/src/plugins/help/helpplugin.cpp
@@ -622,25 +622,25 @@ void HelpPlugin::handleHelpRequest(const QUrl &url, HelpManager::HelpViewerLocat
     if (HelpViewer::launchWithExternalApp(url))
         return;
 
-    QString address = url.toString();
     if (!HelpManager::findFile(url).isValid()) {
+        const QString address = url.toString();
         if (address.startsWith("qthelp://org.qt-project.")
-            || address.startsWith("qthelp://com.nokia.")
-            || address.startsWith("qthelp://com.trolltech.")) {
-                // local help not installed, resort to external web help
-                QString urlPrefix = "http://doc.qt.io/";
-                if (url.authority() == "org.qt-project.qtcreator")
-                    urlPrefix.append(QString::fromLatin1("qtcreator"));
-                else
-                    urlPrefix.append("qt-5");
-            address = urlPrefix + address.mid(address.lastIndexOf(QLatin1Char('/')));
+                || address.startsWith("qthelp://com.nokia.")
+                || address.startsWith("qthelp://com.trolltech.")) {
+            // local help not installed, resort to external web help
+            QString urlPrefix = "http://doc.qt.io/";
+            if (url.authority() == "org.qt-project.qtcreator")
+                urlPrefix.append(QString::fromLatin1("qtcreator"));
+            else
+                urlPrefix.append("qt-5");
+            QDesktopServices::openUrl(QUrl(urlPrefix + address.mid(address.lastIndexOf(QLatin1Char('/')))));
+            return;
         }
     }
 
-    const QUrl newUrl(address);
     HelpViewer *viewer = viewerForHelpViewerLocation(location);
     QTC_ASSERT(viewer, return);
-    viewer->setSource(newUrl);
+    viewer->setSource(url);
     ICore::raiseWindow(viewer);
 }
 
-- 
GitLab