From 460925b3f1dd9d2301b9c69558bd68843cd5f978 Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Mon, 24 Jul 2017 15:15:18 +0200 Subject: Add a way to set the default render type of text-like elements f3446071da8357620d0c8593a04e3b4fbba88f21 introduced a build-time way to select the default render type of text-like elements. This patch adds also a way to select it at runtime, via a setter on QQuickWindow. (QQuickWindow has been chosen as convenience, rather than adding another namespace/class to just have this setter.) Given that QT_QUICK_DEFAULT_TEXT_RENDER_TYPE was never documented, I've taken the liberty of changing the accepted values for it (to match the new enumerator names in QQuickWindow, rather than the ones in QQuickText/QQuickTextEdit/etc.). [ChangeLog][QtQuick][QQuickWindow] It is now possible to set the default render type of text-like elements globally via the QQuickWindow::setTextRenderType() function. If you were using the (undocumented) QT_QUICK_DEFAULT_TEXT_RENDER_TYPE macro when building Qt Quick for the same purpose, note that the macro value needs now to be set to the "NativeTextRendering" value, instead of "NativeRendering". Change-Id: Id4b2dc3ec823971486e445ca4173b8be848fb4e3 Reviewed-by: Eskil Abrahamsen Blomfeldt --- tools/qmlscene/main.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'tools/qmlscene') diff --git a/tools/qmlscene/main.cpp b/tools/qmlscene/main.cpp index f411c6becc..fc8b9c5292 100644 --- a/tools/qmlscene/main.cpp +++ b/tools/qmlscene/main.cpp @@ -159,6 +159,7 @@ struct Options , coreProfile(false) , verbose(false) , applicationType(DefaultQmlApplicationType) + , textRenderType(QQuickWindow::textRenderType()) { // QtWebEngine needs a shared context in order for the GPU thread to // upload textures. @@ -182,6 +183,7 @@ struct Options QVector applicationAttributes; QString translationFile; QmlApplicationType applicationType; + QQuickWindow::TextRenderType textRenderType; }; #if defined(QMLSCENE_BUNDLE) @@ -377,6 +379,7 @@ static void usage() #ifdef QT_WIDGETS_LIB puts(" --apptype [gui|widgets] ...........Select which application class to use. Default is widgets."); #endif + puts(" --textrendertype [qt|native].......Select the default render type for text-like elements."); puts(" -I ........................ Add to the list of import paths"); puts(" -P ........................ Add to the list of plugin paths"); puts(" -translation ... Set the language to run in"); @@ -456,6 +459,19 @@ static QUrl parseUrlArgument(const QString &arg) return url; } +static QQuickWindow::TextRenderType parseTextRenderType(const QString &renderType) +{ + if (renderType == QLatin1String("qt")) + return QQuickWindow::QtTextRendering; + else if (renderType == QLatin1String("native")) + return QQuickWindow::NativeTextRendering; + + usage(); + + Q_UNREACHABLE(); + return QQuickWindow::QtTextRendering; +} + int main(int argc, char ** argv) { Options options; @@ -536,6 +552,8 @@ int main(int argc, char ** argv) pluginPaths.append(arguments.at(++i)); else if (lowerArgument == QLatin1String("--apptype")) ++i; // Consume previously parsed argument + else if (lowerArgument == QLatin1String("--textrendertype") && i + 1 < size) + options.textRenderType = parseTextRenderType(arguments.at(++i)); else if (lowerArgument == QLatin1String("--help") || lowerArgument == QLatin1String("-help") || lowerArgument == QLatin1String("--h") @@ -564,6 +582,8 @@ int main(int argc, char ** argv) } #endif + QQuickWindow::setTextRenderType(options.textRenderType); + QUnifiedTimer::instance()->setSlowModeEnabled(options.slowAnimations); if (options.url.isEmpty()) -- cgit v1.2.3