diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-03-15 15:30:56 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-03-17 13:54:09 +0000 |
commit | 7c73d40b8215e8947b123dd006e7c62e93d396fa (patch) | |
tree | 3ecb996c74f3d57f4d50472188c7a82d41f61dce /src/imports | |
parent | f337d1a2d836edaf8576a561d3ad901c6c152c2f (diff) |
Add public API for setting and getting the style from C++
TODO: setup QtLabsControls C++ module docs
Task-number: QTBUG-50787
Change-Id: I382bad34df88d13fb9a74b3d2f9203280dfb4a66
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'src/imports')
4 files changed, 34 insertions, 10 deletions
diff --git a/src/imports/controls/doc/src/qtlabscontrols-styles.qdoc b/src/imports/controls/doc/src/qtlabscontrols-styles.qdoc index 46939712..9fa3d78b 100644 --- a/src/imports/controls/doc/src/qtlabscontrols-styles.qdoc +++ b/src/imports/controls/doc/src/qtlabscontrols-styles.qdoc @@ -37,9 +37,34 @@ \section1 Usage - In order to run an application with a specific style, either pass a command - line argument, or set an environment variable. Alternatively, the preferred - style and style-specific attributes can be specified in a configuration file. + In order to run an application with a specific style, either configure the + style using \l QQuickStyle in C++, pass a command line argument, or set an + environment variable. Alternatively, the preferred style and style-specific + attributes can be specified in a configuration file. + + \section2 Using QQuickStyle in C++ + + \l QQuickStyle provides API configuring a specific style. The following + example runs a Qt Labs Controls application with the Material style: + + \code + #include <QGuiApplication> + #include <QQmlApplicationEngine> + #include <QQuickStyle> + + int main(int argc, char *argv[]) + { + QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QGuiApplication app(argc, argv); + + QQuickStyle::setStyle("Material"); + + QQmlApplicationEngine engine; + engine.load(QUrl("qrc:/main.qml")); + + return app.exec(); + } + \endcode \section2 Command line argument diff --git a/src/imports/controls/material/qtlabsmaterialstyleplugin.cpp b/src/imports/controls/material/qtlabsmaterialstyleplugin.cpp index e4b44890..95e09225 100644 --- a/src/imports/controls/material/qtlabsmaterialstyleplugin.cpp +++ b/src/imports/controls/material/qtlabsmaterialstyleplugin.cpp @@ -42,7 +42,7 @@ #include "qquickmaterialprogressstrip_p.h" #include <QtGui/private/qguiapplication_p.h> -#include <QtLabsControls/private/qquickstyleselector_p.h> +#include <QtLabsControls/qquickstyle.h> static inline void initResources() { @@ -92,8 +92,7 @@ void QtLabsMaterialStylePlugin::initializeEngine(QQmlEngine *engine, const char { Q_UNUSED(engine); - QQuickStyleSelector selector; - if (selector.style() == QLatin1String("material")) { + if (QQuickStyle::name().compare(QLatin1String("material"), Qt::CaseInsensitive) == 0) { QPlatformTheme *old = QGuiApplicationPrivate::platform_theme; if (old) { QQuickProxyTheme *theme = new QQuickMaterialTheme(old); diff --git a/src/imports/controls/qtlabscontrolsplugin.cpp b/src/imports/controls/qtlabscontrolsplugin.cpp index 82953850..9196f685 100644 --- a/src/imports/controls/qtlabscontrolsplugin.cpp +++ b/src/imports/controls/qtlabscontrolsplugin.cpp @@ -40,6 +40,7 @@ #include <QtCore/qcoreapplication.h> #include <QtCore/private/qfileselector_p.h> +#include <QtLabsControls/qquickstyle.h> #include <QtLabsTemplates/private/qquickabstractbutton_p.h> #include <QtLabsTemplates/private/qquickbuttongroup_p.h> #include <QtLabsTemplates/private/qquickcontainer_p.h> @@ -90,7 +91,7 @@ void QtLabsControlsPlugin::registerTypes(const char *uri) else selector.setBaseUrl(baseUrl()); - const QString style = selector.style(); + const QString style = QQuickStyle::name(); if (!style.isEmpty()) QFileSelectorPrivate::addStatics(QStringList() << style); diff --git a/src/imports/controls/universal/qtlabsuniversalstyleplugin.cpp b/src/imports/controls/universal/qtlabsuniversalstyleplugin.cpp index 51a71ea1..b3bb421e 100644 --- a/src/imports/controls/universal/qtlabsuniversalstyleplugin.cpp +++ b/src/imports/controls/universal/qtlabsuniversalstyleplugin.cpp @@ -43,7 +43,7 @@ #include <QtGui/private/qguiapplication_p.h> #include <QtLabsControls/private/qquickcolorimageprovider_p.h> -#include <QtLabsControls/private/qquickstyleselector_p.h> +#include <QtLabsControls/qquickstyle.h> static inline void initResources() { @@ -91,8 +91,7 @@ void QtLabsUniversalStylePlugin::registerTypes(const char *uri) void QtLabsUniversalStylePlugin::initializeEngine(QQmlEngine *engine, const char *uri) { - QQuickStyleSelector selector; - if (selector.style() == QLatin1String("universal")) { + if (QQuickStyle::name().compare(QLatin1String("universal"), Qt::CaseInsensitive) == 0) { QPlatformTheme *old = QGuiApplicationPrivate::platform_theme; if (old) { QQuickProxyTheme *theme = new QQuickUniversalTheme(old); |