From 395b5ec1853416ea09e3591547479186c201891e Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Thu, 13 Jun 2019 15:41:03 +0900 Subject: Add open online documentation button to help viewer Change-Id: I21685005709332b1201aaf08804399ecbd82bf7c Reviewed-by: Eike Ziller --- src/plugins/help/localhelpmanager.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/plugins/help/localhelpmanager.cpp') diff --git a/src/plugins/help/localhelpmanager.cpp b/src/plugins/help/localhelpmanager.cpp index 140aa4a935..828af81984 100644 --- a/src/plugins/help/localhelpmanager.cpp +++ b/src/plugins/help/localhelpmanager.cpp @@ -36,6 +36,7 @@ #include #include +#include #include #include @@ -445,3 +446,31 @@ void LocalHelpManager::updateFilterModel() } emit m_instance->filterIndexChanged(m_currentFilterIndex); } + +bool LocalHelpManager::canOpenOnlineHelp(const QUrl &url) +{ + const QString address = url.toString(); + if (address.startsWith("qthelp://org.qt-project.") + || address.startsWith("qthelp://com.nokia.") + || address.startsWith("qthelp://com.trolltech.")) { + return true; + } + return false; +} + +bool LocalHelpManager::openOnlineHelp(const QUrl &url) +{ + static const QString qtcreatorUnversionedID = "org.qt-project.qtcreator"; + + if (canOpenOnlineHelp(url)) { + QString urlPrefix = "http://doc.qt.io/"; + if (url.authority().startsWith(qtcreatorUnversionedID)) + urlPrefix.append(QString::fromLatin1("qtcreator")); + else + urlPrefix.append("qt-5"); + const QString address = url.toString(); + QDesktopServices::openUrl(QUrl(urlPrefix + address.mid(address.lastIndexOf(QLatin1Char('/'))))); + return true; + } + return false; +} -- cgit v1.2.1