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 5e73215a0a

Change-Id: I5bfadd3ec1dc21f3a94d04d0da51783223908e6d
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
This commit is contained in:
Eike Ziller
2020-11-20 10:08:04 +01:00
parent ff3614ab5a
commit f38d7910fe
2 changed files with 24 additions and 20 deletions

View File

@@ -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"

View File

@@ -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;
}