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
|
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
|
extend_qtc_plugin(Help
|
||||||
CONDITION FWWebKit AND FWAppKit AND Qt5_VERSION VERSION_LESS 6.0.0
|
CONDITION FWWebKit AND FWAppKit AND Qt5_VERSION VERSION_LESS 6.0.0
|
||||||
FEATURE_INFO "Native WebKit help viewer"
|
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 kLastSelectedTabKey[] = "Help/LastSelectedTab";
|
||||||
static const char kViewerBackend[] = "Help/ViewerBackend";
|
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 const int kDefaultFallbackFontSize = 14;
|
||||||
|
|
||||||
static QString defaultFallbackFontFamily()
|
static QString defaultFallbackFontFamily()
|
||||||
@@ -327,20 +323,16 @@ HelpViewerFactory LocalHelpManager::defaultViewerBackend()
|
|||||||
}
|
}
|
||||||
if (!backend.isEmpty())
|
if (!backend.isEmpty())
|
||||||
qWarning("Help viewer backend \"%s\" not found, using default.", backend.constData());
|
qWarning("Help viewer backend \"%s\" not found, using default.", backend.constData());
|
||||||
const Utils::optional<HelpViewerFactory> webengineFactory = backendForId(kQtWebEngineBackend);
|
const QVector<HelpViewerFactory> backends = viewerBackends();
|
||||||
if (webengineFactory)
|
return backends.isEmpty() ? HelpViewerFactory() : backends.first();
|
||||||
return *webengineFactory;
|
|
||||||
|
|
||||||
const Utils::optional<HelpViewerFactory> litehtmlFactory = backendForId(kLitehtmlBackend);
|
|
||||||
if (litehtmlFactory)
|
|
||||||
return *litehtmlFactory;
|
|
||||||
|
|
||||||
return backendForId(kTextBrowserBackend).value_or(HelpViewerFactory());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QVector<HelpViewerFactory> LocalHelpManager::viewerBackends()
|
QVector<HelpViewerFactory> LocalHelpManager::viewerBackends()
|
||||||
{
|
{
|
||||||
QVector<HelpViewerFactory> result;
|
QVector<HelpViewerFactory> result;
|
||||||
|
#ifdef QTC_LITEHTML_HELPVIEWER
|
||||||
|
result.append({"litehtml", tr("litehtml"), []() { return new LiteHtmlHelpViewer; }});
|
||||||
|
#endif
|
||||||
#ifdef QTC_WEBENGINE_HELPVIEWER
|
#ifdef QTC_WEBENGINE_HELPVIEWER
|
||||||
static bool schemeRegistered = false;
|
static bool schemeRegistered = false;
|
||||||
if (!schemeRegistered) {
|
if (!schemeRegistered) {
|
||||||
@@ -349,17 +341,21 @@ QVector<HelpViewerFactory> LocalHelpManager::viewerBackends()
|
|||||||
scheme.setFlags(QWebEngineUrlScheme::LocalScheme | QWebEngineUrlScheme::LocalAccessAllowed);
|
scheme.setFlags(QWebEngineUrlScheme::LocalScheme | QWebEngineUrlScheme::LocalAccessAllowed);
|
||||||
QWebEngineUrlScheme::registerScheme(scheme);
|
QWebEngineUrlScheme::registerScheme(scheme);
|
||||||
}
|
}
|
||||||
result.append(
|
result.append({"qtwebengine", tr("QtWebEngine"), []() { return new WebEngineHelpViewer; }});
|
||||||
{kQtWebEngineBackend, tr("QtWebEngine"), []() { return new WebEngineHelpViewer; }});
|
|
||||||
#endif
|
|
||||||
#ifdef QTC_LITEHTML_HELPVIEWER
|
|
||||||
result.append({kLitehtmlBackend, tr("litehtml"), []() { return new LiteHtmlHelpViewer; }});
|
|
||||||
#endif
|
#endif
|
||||||
|
result.append({"textbrowser", tr("QTextBrowser"), []() { return new TextBrowserHelpViewer; }});
|
||||||
#ifdef QTC_MAC_NATIVE_HELPVIEWER
|
#ifdef QTC_MAC_NATIVE_HELPVIEWER
|
||||||
result.append({"native", tr("WebKit"), []() { return new MacWebKitHelpViewer; }});
|
result.append({"native", tr("WebKit"), []() { return new MacWebKitHelpViewer; }});
|
||||||
#endif
|
#endif
|
||||||
result.append(
|
#ifdef QTC_DEFAULT_HELPVIEWER_BACKEND
|
||||||
{kTextBrowserBackend, tr("QTextBrowser"), []() { return new TextBrowserHelpViewer; }});
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user