Merge remote-tracking branch 'origin/4.14'

Change-Id: I5e138bb7883c0436fee14ca6af20e99396676af1
This commit is contained in:
Eike Ziller
2020-11-20 13:00:37 +01:00
54 changed files with 440 additions and 139 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,22 +323,17 @@ 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
#if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0)
static bool schemeRegistered = false;
if (!schemeRegistered) {
schemeRegistered = true;
@@ -350,18 +341,21 @@ QVector<HelpViewerFactory> LocalHelpManager::viewerBackends()
scheme.setFlags(QWebEngineUrlScheme::LocalScheme | QWebEngineUrlScheme::LocalAccessAllowed);
QWebEngineUrlScheme::registerScheme(scheme);
}
result.append({"qtwebengine", tr("QtWebEngine"), []() { return new WebEngineHelpViewer; }});
#endif
result.append(
{kQtWebEngineBackend, tr("QtWebEngine"), []() { return new WebEngineHelpViewer; }});
#endif
#ifdef QTC_LITEHTML_HELPVIEWER
result.append({kLitehtmlBackend, tr("litehtml"), []() { return new LiteHtmlHelpViewer; }});
#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;
}