diff options
author | Tasuku Suzuki <tasuku.suzuki@qbc.io> | 2019-06-13 15:41:03 +0900 |
---|---|---|
committer | Tasuku Suzuki <tasuku.suzuki@qbc.io> | 2019-07-29 09:15:14 +0000 |
commit | 395b5ec1853416ea09e3591547479186c201891e (patch) | |
tree | fd0fb913ffd7d2efb3a20051548560b6455d53e0 /src/plugins/help/localhelpmanager.cpp | |
parent | e3b1106afae5de6cd54ce627a0b11be041624591 (diff) | |
download | qt-creator-395b5ec1853416ea09e3591547479186c201891e.tar.gz |
Add open online documentation button to help viewer
Change-Id: I21685005709332b1201aaf08804399ecbd82bf7c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/plugins/help/localhelpmanager.cpp')
-rw-r--r-- | src/plugins/help/localhelpmanager.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
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 <utils/hostosinfo.h> #include <utils/qtcassert.h> +#include <QDesktopServices> #include <QFontDatabase> #include <QMutexLocker> @@ -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; +} |