diff options
author | Eike Ziller <eike.ziller@qt.io> | 2020-11-20 10:08:04 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2020-11-20 10:12:00 +0000 |
commit | f38d7910fe981e19988ecc5de5124f2a5e12536d (patch) | |
tree | 43fe62b8da772313ad57474c9cb3c9c086232ea2 /src | |
parent | ff3614ab5ac0f55c4e65f8330365e6026cfb0e79 (diff) | |
download | qt-creator-f38d7910fe981e19988ecc5de5124f2a5e12536d.tar.gz |
Help: Make litehtml the default engine above all
If available prefer litehtml, even over QtWebEngine. But make the
default compile-time configurable with a CMake option
DEFAULT_HELPVIEWER_BACKEND.
Amends 5e73215a0af6a1bc74d3baebddce4ca20cd09579
Change-Id: I5bfadd3ec1dc21f3a94d04d0da51783223908e6d
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/help/CMakeLists.txt | 8 | ||||
-rw-r--r-- | src/plugins/help/localhelpmanager.cpp | 36 |
2 files changed, 24 insertions, 20 deletions
diff --git a/src/plugins/help/CMakeLists.txt b/src/plugins/help/CMakeLists.txt index 6ed078497b..2063293dca 100644 --- a/src/plugins/help/CMakeLists.txt +++ b/src/plugins/help/CMakeLists.txt @@ -31,6 +31,14 @@ extend_qtc_plugin(Help DEFINES HELP_NEW_FILTER_ENGINE ) +set(HELPVIEWER_DEFAULT_BACKEND "litehtml" CACHE STRING "Sets default help viewer backend") +set_property(CACHE HELPVIEWER_DEFAULT_BACKEND PROPERTY STRINGS "litehtml;qtwebengine;textbrowser") + +extend_qtc_plugin(Help + CONDITION HELPVIEWER_DEFAULT_BACKEND + DEFINES QTC_DEFAULT_HELPVIEWER_BACKEND="${HELPVIEWER_DEFAULT_BACKEND}" +) + extend_qtc_plugin(Help CONDITION FWWebKit AND FWAppKit AND Qt5_VERSION VERSION_LESS 6.0.0 FEATURE_INFO "Native WebKit help viewer" diff --git a/src/plugins/help/localhelpmanager.cpp b/src/plugins/help/localhelpmanager.cpp index ee6220c280..3368ec82b8 100644 --- a/src/plugins/help/localhelpmanager.cpp +++ b/src/plugins/help/localhelpmanager.cpp @@ -92,10 +92,6 @@ static const char kLastShownPagesZoomKey[] = "Help/LastShownPagesZoom"; static const char kLastSelectedTabKey[] = "Help/LastSelectedTab"; static const char kViewerBackend[] = "Help/ViewerBackend"; -static const char kQtWebEngineBackend[] = "qtwebengine"; -static const char kLitehtmlBackend[] = "litehtml"; -static const char kTextBrowserBackend[] = "textbrowser"; - static const int kDefaultFallbackFontSize = 14; static QString defaultFallbackFontFamily() @@ -327,20 +323,16 @@ HelpViewerFactory LocalHelpManager::defaultViewerBackend() } if (!backend.isEmpty()) qWarning("Help viewer backend \"%s\" not found, using default.", backend.constData()); - const Utils::optional<HelpViewerFactory> webengineFactory = backendForId(kQtWebEngineBackend); - if (webengineFactory) - return *webengineFactory; - - const Utils::optional<HelpViewerFactory> litehtmlFactory = backendForId(kLitehtmlBackend); - if (litehtmlFactory) - return *litehtmlFactory; - - return backendForId(kTextBrowserBackend).value_or(HelpViewerFactory()); + const QVector<HelpViewerFactory> backends = viewerBackends(); + return backends.isEmpty() ? HelpViewerFactory() : backends.first(); } QVector<HelpViewerFactory> LocalHelpManager::viewerBackends() { QVector<HelpViewerFactory> result; +#ifdef QTC_LITEHTML_HELPVIEWER + result.append({"litehtml", tr("litehtml"), []() { return new LiteHtmlHelpViewer; }}); +#endif #ifdef QTC_WEBENGINE_HELPVIEWER static bool schemeRegistered = false; if (!schemeRegistered) { @@ -349,17 +341,21 @@ QVector<HelpViewerFactory> LocalHelpManager::viewerBackends() scheme.setFlags(QWebEngineUrlScheme::LocalScheme | QWebEngineUrlScheme::LocalAccessAllowed); QWebEngineUrlScheme::registerScheme(scheme); } - result.append( - {kQtWebEngineBackend, tr("QtWebEngine"), []() { return new WebEngineHelpViewer; }}); -#endif -#ifdef QTC_LITEHTML_HELPVIEWER - result.append({kLitehtmlBackend, tr("litehtml"), []() { return new LiteHtmlHelpViewer; }}); + result.append({"qtwebengine", tr("QtWebEngine"), []() { return new WebEngineHelpViewer; }}); #endif + result.append({"textbrowser", tr("QTextBrowser"), []() { return new TextBrowserHelpViewer; }}); #ifdef QTC_MAC_NATIVE_HELPVIEWER result.append({"native", tr("WebKit"), []() { return new MacWebKitHelpViewer; }}); #endif - result.append( - {kTextBrowserBackend, tr("QTextBrowser"), []() { return new TextBrowserHelpViewer; }}); +#ifdef QTC_DEFAULT_HELPVIEWER_BACKEND + const int index = Utils::indexOf(result, [](const HelpViewerFactory &f) { + return f.id == QByteArray(QTC_DEFAULT_HELPVIEWER_BACKEND); + }); + if (QTC_GUARD(index >= 0)) { + const HelpViewerFactory defaultBackend = result.takeAt(index); + result.prepend(defaultBackend); + } +#endif return result; } |