forked from qt-creator/qt-creator
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:
@@ -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"
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user