aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2016-03-15 15:30:56 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2016-03-17 13:54:09 +0000
commit7c73d40b8215e8947b123dd006e7c62e93d396fa (patch)
tree3ecb996c74f3d57f4d50472188c7a82d41f61dce /src/imports
parentf337d1a2d836edaf8576a561d3ad901c6c152c2f (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')
-rw-r--r--src/imports/controls/doc/src/qtlabscontrols-styles.qdoc31
-rw-r--r--src/imports/controls/material/qtlabsmaterialstyleplugin.cpp5
-rw-r--r--src/imports/controls/qtlabscontrolsplugin.cpp3
-rw-r--r--src/imports/controls/universal/qtlabsuniversalstyleplugin.cpp5
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);