aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls/imagine
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@qt.io>2020-03-27 11:17:35 +0100
committerMitch Curtis <mitch.curtis@qt.io>2020-08-26 11:45:57 +0200
commit5246dd2de211ffb81313a5c29ae7894545a28c43 (patch)
treeeedd1652642e519ccd8603612378eb5c0bfdca83 /src/imports/controls/imagine
parent9aafea810b8867fb31f9ec27a238628467e7ab56 (diff)
Register C++ types declaratively
Adapt to the new way of registering C++ types. The types need to be seen at compile time so that code can be generated that invokes them. This patch: - Adds QML_* macros where applicable. - Adapts the build system files to the new way of registering modules. - Splits up the QtQuick.Controls[.*].impl files into their own plugins, as we can only register one QML module per .pro file. - Removes C++ type registration calls in every plugin. - Moves private types from src/quickcontrols2/quickcontrols2.pro to src/quickcontrols2/impl/quickcontrols2-impl.pro. Some of these types need to be exposed to QML, but quickcontrols2.pro is already in use to declare the QtQuick.Controls import (and also provides the public C++ QQuickStyle API), and the new QML_IMPORT_NAME/VERSION syntax only allows one module per project. As some of the types that need to be exposed to QML are also referenced by some C++ code (e.g. tests, etc.), we just move all of the private types to the new library. Follow-up patches will register the QML types declaratively. Task-number: QTBUG-82922 Change-Id: Iaf9ee106237d61701d57a8896f3822304c8151a6 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/imports/controls/imagine')
-rw-r--r--src/imports/controls/imagine/.prev_CMakeLists.txt6
-rw-r--r--src/imports/controls/imagine/CMakeLists.txt6
-rw-r--r--src/imports/controls/imagine/imagine.pri21
-rw-r--r--src/imports/controls/imagine/imagine.pro9
-rw-r--r--src/imports/controls/imagine/impl/OpacityMask.qml (renamed from src/imports/controls/imagine/OpacityMask.qml)2
-rw-r--r--src/imports/controls/imagine/impl/imagine-impl.pro39
-rw-r--r--src/imports/controls/imagine/impl/qmldir6
-rw-r--r--src/imports/controls/imagine/impl/qquickimageselector.cpp (renamed from src/imports/controls/imagine/qquickimageselector.cpp)4
-rw-r--r--src/imports/controls/imagine/impl/qquickimageselector_p.h (renamed from src/imports/controls/imagine/qquickimageselector_p.h)6
-rw-r--r--src/imports/controls/imagine/impl/qquickninepatchimage.cpp (renamed from src/imports/controls/imagine/qquickninepatchimage.cpp)0
-rw-r--r--src/imports/controls/imagine/impl/qquickninepatchimage_p.h (renamed from src/imports/controls/imagine/qquickninepatchimage_p.h)2
-rw-r--r--src/imports/controls/imagine/impl/qtquickcontrols2imaginestyleimplplugin.cpp57
-rw-r--r--src/imports/controls/imagine/impl/shaders/+glslcore/OpacityMask.frag (renamed from src/imports/controls/imagine/shaders/+glslcore/OpacityMask.frag)0
-rw-r--r--src/imports/controls/imagine/impl/shaders/+qsb/OpacityMask.frag (renamed from src/imports/controls/imagine/shaders/+qsb/OpacityMask.frag)bin1409 -> 1409 bytes
-rw-r--r--src/imports/controls/imagine/impl/shaders/OpacityMask.frag (renamed from src/imports/controls/imagine/shaders/OpacityMask.frag)0
-rw-r--r--src/imports/controls/imagine/impl/shaders/OpacityMask_rhi.frag (renamed from src/imports/controls/imagine/shaders/OpacityMask_rhi.frag)0
-rw-r--r--src/imports/controls/imagine/impl/shaders/compile.bat (renamed from src/imports/controls/imagine/shaders/compile.bat)0
-rw-r--r--src/imports/controls/imagine/qquickimaginestyle.cpp4
-rw-r--r--src/imports/controls/imagine/qquickimaginestyle_p.h6
-rw-r--r--src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp25
20 files changed, 138 insertions, 55 deletions
diff --git a/src/imports/controls/imagine/.prev_CMakeLists.txt b/src/imports/controls/imagine/.prev_CMakeLists.txt
index 5533f872..a7c0a59e 100644
--- a/src/imports/controls/imagine/.prev_CMakeLists.txt
+++ b/src/imports/controls/imagine/.prev_CMakeLists.txt
@@ -5,7 +5,7 @@
#####################################################################
qt_add_qml_module(qtquickcontrols2imaginestyleplugin
- TARGET_PATH "QtQuick/Controls.2/Imagine"
+ TARGET_PATH "QtQuick/Controls/Imagine"
URI "QtQuick.Controls.Imagine"
VERSION "2.${CMAKE_PROJECT_VERSION_MINOR}"
CLASSNAME QtQuickControls2ImagineStylePlugin
@@ -56,7 +56,7 @@ set(qmake_qtquickcontrols2imaginestyle_resource_files
qt_add_resource(qtquickcontrols2imaginestyleplugin "qmake_qtquickcontrols2imaginestyle"
PREFIX
- "qt-project.org/imports/QtQuick/Controls.2/Imagine"
+ "qt-project.org/imports/QtQuick/Controls/Imagine"
FILES
${qmake_qtquickcontrols2imaginestyle_resource_files}
)
@@ -66,7 +66,7 @@ qt_add_resource(qtquickcontrols2imaginestyleplugin "qmake_qtquickcontrols2imagin
# IMPORT_NAME = "QtQuick.Controls.Imagine"
# IMPORT_VERSION = "2.$$QT_MINOR_VERSION"
# OTHER_FILES = "qmldir" "$$QML_FILES"
-# TARGETPATH = "QtQuick/Controls.2/Imagine"
+# TARGETPATH = "QtQuick/Controls/Imagine"
# _REQUIREMENTS = "qtConfig(quickcontrols2-imagine)"
set(qml_files
diff --git a/src/imports/controls/imagine/CMakeLists.txt b/src/imports/controls/imagine/CMakeLists.txt
index 5533f872..a7c0a59e 100644
--- a/src/imports/controls/imagine/CMakeLists.txt
+++ b/src/imports/controls/imagine/CMakeLists.txt
@@ -5,7 +5,7 @@
#####################################################################
qt_add_qml_module(qtquickcontrols2imaginestyleplugin
- TARGET_PATH "QtQuick/Controls.2/Imagine"
+ TARGET_PATH "QtQuick/Controls/Imagine"
URI "QtQuick.Controls.Imagine"
VERSION "2.${CMAKE_PROJECT_VERSION_MINOR}"
CLASSNAME QtQuickControls2ImagineStylePlugin
@@ -56,7 +56,7 @@ set(qmake_qtquickcontrols2imaginestyle_resource_files
qt_add_resource(qtquickcontrols2imaginestyleplugin "qmake_qtquickcontrols2imaginestyle"
PREFIX
- "qt-project.org/imports/QtQuick/Controls.2/Imagine"
+ "qt-project.org/imports/QtQuick/Controls/Imagine"
FILES
${qmake_qtquickcontrols2imaginestyle_resource_files}
)
@@ -66,7 +66,7 @@ qt_add_resource(qtquickcontrols2imaginestyleplugin "qmake_qtquickcontrols2imagin
# IMPORT_NAME = "QtQuick.Controls.Imagine"
# IMPORT_VERSION = "2.$$QT_MINOR_VERSION"
# OTHER_FILES = "qmldir" "$$QML_FILES"
-# TARGETPATH = "QtQuick/Controls.2/Imagine"
+# TARGETPATH = "QtQuick/Controls/Imagine"
# _REQUIREMENTS = "qtConfig(quickcontrols2-imagine)"
set(qml_files
diff --git a/src/imports/controls/imagine/imagine.pri b/src/imports/controls/imagine/imagine.pri
index 9033808f..1c9ffaa2 100644
--- a/src/imports/controls/imagine/imagine.pri
+++ b/src/imports/controls/imagine/imagine.pri
@@ -1,3 +1,11 @@
+HEADERS += \
+ $$PWD/qquickimaginestyle_p.h \
+ $$PWD/qquickimaginetheme_p.h
+
+SOURCES += \
+ $$PWD/qquickimaginestyle.cpp \
+ $$PWD/qquickimaginetheme.cpp
+
QML_FILES += \
$$PWD/ApplicationWindow.qml \
$$PWD/BusyIndicator.qml \
@@ -18,7 +26,6 @@ QML_FILES += \
$$PWD/Menu.qml \
$$PWD/MenuItem.qml \
$$PWD/MenuSeparator.qml \
- $$PWD/OpacityMask.qml \
$$PWD/PageIndicator.qml \
$$PWD/Page.qml \
$$PWD/Pane.qml \
@@ -48,15 +55,3 @@ QML_FILES += \
$$PWD/ToolTip.qml \
$$PWD/Tumbler.qml \
$$PWD/VerticalHeaderView.qml
-
-HEADERS += \
- $$PWD/qquickimageselector_p.h \
- $$PWD/qquickimaginestyle_p.h \
- $$PWD/qquickimaginetheme_p.h \
- $$PWD/qquickninepatchimage_p.h
-
-SOURCES += \
- $$PWD/qquickimageselector.cpp \
- $$PWD/qquickimaginestyle.cpp \
- $$PWD/qquickimaginetheme.cpp \
- $$PWD/qquickninepatchimage.cpp
diff --git a/src/imports/controls/imagine/imagine.pro b/src/imports/controls/imagine/imagine.pro
index 66aec543..0dfba717 100644
--- a/src/imports/controls/imagine/imagine.pro
+++ b/src/imports/controls/imagine/imagine.pro
@@ -5,7 +5,7 @@ IMPORT_NAME = QtQuick.Controls.Imagine
IMPORT_VERSION = 2.$$QT_MINOR_VERSION
QT += qml quick
-QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2-private
+QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2-private quickcontrols2impl-private
DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
@@ -18,13 +18,10 @@ OTHER_FILES += \
SOURCES += \
$$PWD/qtquickcontrols2imaginestyleplugin.cpp
-qtquickcontrols2imaginestyle.prefix = qt-project.org/imports/QtQuick/Controls.2/Imagine
+qtquickcontrols2imaginestyle.prefix = qt-project.org/imports/QtQuick/Controls/Imagine
qtquickcontrols2imaginestyle.files += \
$$files($$PWD/images/*.png) \
- $$files($$PWD/images/*.webp) \
- $$files($$PWD/shaders/OpacityMask.frag) \
- $$files($$PWD/shaders/+glslcore/OpacityMask.frag) \
- $$files($$PWD/shaders/+qsb/OpacityMask.frag)
+ $$files($$PWD/images/*.webp)
RESOURCES += qtquickcontrols2imaginestyle
CONFIG += no_cxx_module install_qml_files builtin_resources qtquickcompiler
diff --git a/src/imports/controls/imagine/OpacityMask.qml b/src/imports/controls/imagine/impl/OpacityMask.qml
index 040bdcf4..90175386 100644
--- a/src/imports/controls/imagine/OpacityMask.qml
+++ b/src/imports/controls/imagine/impl/OpacityMask.qml
@@ -63,6 +63,6 @@ Item {
anchors.fill: parent
- fragmentShader: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Imagine/shaders/OpacityMask.frag"
+ fragmentShader: "qrc:/qt-project.org/imports/QtQuick/Controls/Imagine/impl/shaders/OpacityMask.frag"
}
}
diff --git a/src/imports/controls/imagine/impl/imagine-impl.pro b/src/imports/controls/imagine/impl/imagine-impl.pro
new file mode 100644
index 00000000..cb0f7043
--- /dev/null
+++ b/src/imports/controls/imagine/impl/imagine-impl.pro
@@ -0,0 +1,39 @@
+TARGET = qtquickcontrols2imaginestyleimplplugin
+TARGETPATH = QtQuick/Controls.2/Imagine/impl
+
+QML_IMPORT_NAME = QtQuick.Controls.Imagine.impl
+QML_IMPORT_VERSION = 2.$$QT_MINOR_VERSION
+
+QT += qml quick
+QT_PRIVATE += core-private gui qml-private quick-private quicktemplates2-private quickcontrols2impl-private
+QT_FOR_CONFIG = quickcontrols2-private
+
+DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
+
+QML_FILES += \
+ $$PWD/OpacityMask.qml
+
+OTHER_FILES += \
+ qmldir \
+ $$QML_FILES
+
+HEADERS += \
+ $$PWD/qquickimageselector_p.h \
+ $$PWD/qquickninepatchimage_p.h
+
+SOURCES += \
+ $$PWD/qquickimageselector.cpp \
+ $$PWD/qquickninepatchimage.cpp \
+ $$PWD/qtquickcontrols2imaginestyleimplplugin.cpp
+
+qtquickcontrols2imaginestyleimpl.prefix = qt-project.org/imports/QtQuick/Controls/Imagine/impl
+qtquickcontrols2imaginestyleimpl.files += \
+ $$files($$PWD/shaders/OpacityMask.frag) \
+ $$files($$PWD/shaders/+glslcore/OpacityMask.frag) \
+ $$files($$PWD/shaders/+qsb/OpacityMask.frag)
+RESOURCES += qtquickcontrols2imaginestyleimpl
+
+CONFIG += qmltypes install_qmltypes no_cxx_module builtin_resources qtquickcompiler
+load(qml_plugin)
+
+requires(qtConfig(quickcontrols2-imagine))
diff --git a/src/imports/controls/imagine/impl/qmldir b/src/imports/controls/imagine/impl/qmldir
new file mode 100644
index 00000000..9febda6d
--- /dev/null
+++ b/src/imports/controls/imagine/impl/qmldir
@@ -0,0 +1,6 @@
+module QtQuick.Controls.Imagine.impl
+plugin qtquickcontrols2imaginestyleimplplugin
+classname QtQuickControls2ImagineStyleImplPlugin
+
+#TODO: update to 6.0
+OpacityMask 2.0 OpacityMask.qml
diff --git a/src/imports/controls/imagine/qquickimageselector.cpp b/src/imports/controls/imagine/impl/qquickimageselector.cpp
index 67d3a24b..dcb7738c 100644
--- a/src/imports/controls/imagine/qquickimageselector.cpp
+++ b/src/imports/controls/imagine/impl/qquickimageselector.cpp
@@ -47,6 +47,8 @@
QT_BEGIN_NAMESPACE
+Q_LOGGING_CATEGORY(lcQtQuickControlsImagine, "qt.quick.controls.imagine")
+
static const int DEFAULT_CACHE = 500;
static inline int cacheSize()
@@ -56,8 +58,6 @@ static inline int cacheSize()
return ok ? size : DEFAULT_CACHE;
}
-Q_DECLARE_LOGGING_CATEGORY(lcQtQuickControlsImagine)
-
// input: [focused, pressed]
// => [[focused, pressed], [pressed, focused], [focused], [pressed]]
static QList<QStringList> permutations(const QStringList &input, int count = -1)
diff --git a/src/imports/controls/imagine/qquickimageselector_p.h b/src/imports/controls/imagine/impl/qquickimageselector_p.h
index d050707d..351caefb 100644
--- a/src/imports/controls/imagine/qquickimageselector_p.h
+++ b/src/imports/controls/imagine/impl/qquickimageselector_p.h
@@ -69,6 +69,8 @@ class QQuickImageSelector : public QObject, public QQmlParserStatus, public QQml
Q_PROPERTY(QString separator READ separator WRITE setSeparator FINAL)
Q_PROPERTY(bool cache READ cache WRITE setCache FINAL)
Q_INTERFACES(QQmlParserStatus QQmlPropertyValueInterceptor)
+ QML_NAMED_ELEMENT(ImageSelector)
+ QML_ADDED_IN_VERSION(2, 3)
public:
explicit QQuickImageSelector(QObject *parent = nullptr);
@@ -124,6 +126,8 @@ private:
class QQuickNinePatchImageSelector : public QQuickImageSelector
{
Q_OBJECT
+ QML_NAMED_ELEMENT(NinePatchImageSelector)
+ QML_ADDED_IN_VERSION(2, 3)
public:
explicit QQuickNinePatchImageSelector(QObject *parent = nullptr);
@@ -135,6 +139,8 @@ protected:
class QQuickAnimatedImageSelector : public QQuickImageSelector
{
Q_OBJECT
+ QML_NAMED_ELEMENT(AnimatedImageSelector)
+ QML_ADDED_IN_VERSION(2, 3)
public:
explicit QQuickAnimatedImageSelector(QObject *parent = nullptr);
diff --git a/src/imports/controls/imagine/qquickninepatchimage.cpp b/src/imports/controls/imagine/impl/qquickninepatchimage.cpp
index 1d6d60dd..1d6d60dd 100644
--- a/src/imports/controls/imagine/qquickninepatchimage.cpp
+++ b/src/imports/controls/imagine/impl/qquickninepatchimage.cpp
diff --git a/src/imports/controls/imagine/qquickninepatchimage_p.h b/src/imports/controls/imagine/impl/qquickninepatchimage_p.h
index 2c29490a..78cc3068 100644
--- a/src/imports/controls/imagine/qquickninepatchimage_p.h
+++ b/src/imports/controls/imagine/impl/qquickninepatchimage_p.h
@@ -65,6 +65,8 @@ class QQuickNinePatchImage : public QQuickImage
Q_PROPERTY(qreal leftInset READ leftInset NOTIFY leftInsetChanged FINAL)
Q_PROPERTY(qreal rightInset READ rightInset NOTIFY rightInsetChanged FINAL)
Q_PROPERTY(qreal bottomInset READ bottomInset NOTIFY bottomInsetChanged FINAL)
+ QML_NAMED_ELEMENT(NinePatchImage)
+ QML_ADDED_IN_VERSION(2, 3)
public:
explicit QQuickNinePatchImage(QQuickItem *parent = nullptr);
diff --git a/src/imports/controls/imagine/impl/qtquickcontrols2imaginestyleimplplugin.cpp b/src/imports/controls/imagine/impl/qtquickcontrols2imaginestyleimplplugin.cpp
new file mode 100644
index 00000000..514d9ed8
--- /dev/null
+++ b/src/imports/controls/imagine/impl/qtquickcontrols2imaginestyleimplplugin.cpp
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtQml/qqmlextensionplugin.h>
+
+QT_BEGIN_NAMESPACE
+
+class QtQuickControls2ImagineStyleImplPlugin : public QQmlEngineExtensionPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
+
+public:
+ QtQuickControls2ImagineStyleImplPlugin(QObject *parent = nullptr);
+};
+
+QtQuickControls2ImagineStyleImplPlugin::QtQuickControls2ImagineStyleImplPlugin(QObject *parent)
+ : QQmlEngineExtensionPlugin(parent)
+{
+}
+
+QT_END_NAMESPACE
+
+#include "qtquickcontrols2imaginestyleimplplugin.moc"
diff --git a/src/imports/controls/imagine/shaders/+glslcore/OpacityMask.frag b/src/imports/controls/imagine/impl/shaders/+glslcore/OpacityMask.frag
index 529e2696..529e2696 100644
--- a/src/imports/controls/imagine/shaders/+glslcore/OpacityMask.frag
+++ b/src/imports/controls/imagine/impl/shaders/+glslcore/OpacityMask.frag
diff --git a/src/imports/controls/imagine/shaders/+qsb/OpacityMask.frag b/src/imports/controls/imagine/impl/shaders/+qsb/OpacityMask.frag
index 331b30b8..331b30b8 100644
--- a/src/imports/controls/imagine/shaders/+qsb/OpacityMask.frag
+++ b/src/imports/controls/imagine/impl/shaders/+qsb/OpacityMask.frag
Binary files differ
diff --git a/src/imports/controls/imagine/shaders/OpacityMask.frag b/src/imports/controls/imagine/impl/shaders/OpacityMask.frag
index 84f9bc3e..84f9bc3e 100644
--- a/src/imports/controls/imagine/shaders/OpacityMask.frag
+++ b/src/imports/controls/imagine/impl/shaders/OpacityMask.frag
diff --git a/src/imports/controls/imagine/shaders/OpacityMask_rhi.frag b/src/imports/controls/imagine/impl/shaders/OpacityMask_rhi.frag
index 9ae32499..9ae32499 100644
--- a/src/imports/controls/imagine/shaders/OpacityMask_rhi.frag
+++ b/src/imports/controls/imagine/impl/shaders/OpacityMask_rhi.frag
diff --git a/src/imports/controls/imagine/shaders/compile.bat b/src/imports/controls/imagine/impl/shaders/compile.bat
index 8f16d7ac..8f16d7ac 100644
--- a/src/imports/controls/imagine/shaders/compile.bat
+++ b/src/imports/controls/imagine/impl/shaders/compile.bat
diff --git a/src/imports/controls/imagine/qquickimaginestyle.cpp b/src/imports/controls/imagine/qquickimaginestyle.cpp
index 745bef10..37e55b61 100644
--- a/src/imports/controls/imagine/qquickimaginestyle.cpp
+++ b/src/imports/controls/imagine/qquickimaginestyle.cpp
@@ -41,7 +41,7 @@
QT_BEGIN_NAMESPACE
-Q_GLOBAL_STATIC_WITH_ARGS(QString, GlobalPath, (QLatin1String("qrc:/qt-project.org/imports/QtQuick/Controls.2/Imagine/images/")))
+Q_GLOBAL_STATIC_WITH_ARGS(QString, GlobalPath, (QLatin1String("qrc:/qt-project.org/imports/QtQuick/Controls/Imagine/images/")))
static QString ensureSlash(const QString &path)
{
@@ -117,7 +117,7 @@ QUrl QQuickImagineStyle::url() const
//
// If Imagine.path is set to ":/images" by the user, then the final URL would be:
//
- // QUrl("file:///home/user/qt/qtbase/qml/QtQuick/Controls.2/Imagine/:/images/applicationwindow-background")
+ // QUrl("file:///home/user/qt/qtbase/qml/QtQuick/Controls/Imagine/:/images/applicationwindow-background")
//
// To ensure that the correct URL is constructed, we do it ourselves here,
// and then the control QML files use the "url" property instead.
diff --git a/src/imports/controls/imagine/qquickimaginestyle_p.h b/src/imports/controls/imagine/qquickimaginestyle_p.h
index 20a4baf0..212096b9 100644
--- a/src/imports/controls/imagine/qquickimaginestyle_p.h
+++ b/src/imports/controls/imagine/qquickimaginestyle_p.h
@@ -48,9 +48,9 @@
// We mean it.
//
-#include <QtQuickControls2/private/qquickattachedobject_p.h>
#include <QtCore/qvariant.h>
#include <QtQml/qqml.h>
+#include <QtQuickControls2Impl/private/qquickattachedobject_p.h>
QT_BEGIN_NAMESPACE
@@ -59,6 +59,10 @@ class QQuickImagineStyle : public QQuickAttachedObject
Q_OBJECT
Q_PROPERTY(QString path READ path WRITE setPath RESET resetPath NOTIFY pathChanged FINAL)
Q_PROPERTY(QUrl url READ url NOTIFY pathChanged FINAL)
+ QML_NAMED_ELEMENT(Imagine)
+ QML_ATTACHED(QQuickImagineStyle)
+ QML_UNCREATABLE("")
+ QML_ADDED_IN_VERSION(2, 3)
public:
explicit QQuickImagineStyle(QObject *parent = nullptr);
diff --git a/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp b/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp
index dd20c84b..d59cf555 100644
--- a/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp
+++ b/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp
@@ -38,16 +38,12 @@
#include <QtCore/qloggingcategory.h>
#include <QtQml/qqml.h>
-#include "qquickimageselector_p.h"
#include "qquickimaginestyle_p.h"
#include "qquickimaginetheme_p.h"
-#include "qquickninepatchimage_p.h"
QT_BEGIN_NAMESPACE
-Q_LOGGING_CATEGORY(lcQtQuickControlsImagine, "qt.quick.controls.imagine")
-
-class QtQuickControls2ImagineStylePlugin: public QQuickStylePlugin
+class QtQuickControls2ImagineStylePlugin : public QQuickStylePlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
@@ -55,8 +51,6 @@ class QtQuickControls2ImagineStylePlugin: public QQuickStylePlugin
public:
QtQuickControls2ImagineStylePlugin(QObject *parent = nullptr);
- void registerTypes(const char *uri) override;
-
QString name() const override;
void initializeTheme(QQuickTheme *theme) override;
};
@@ -65,23 +59,6 @@ QtQuickControls2ImagineStylePlugin::QtQuickControls2ImagineStylePlugin(QObject *
{
}
-void QtQuickControls2ImagineStylePlugin::registerTypes(const char *uri)
-{
- qmlRegisterModule(uri, 2, 15); // Qt 5.12->2.12, 5.13->2.13...
- qmlRegisterUncreatableType<QQuickImagineStyle>(uri, 2, 3, "Imagine", tr("Imagine is an attached property"));
-
- QByteArray import = QByteArray(uri) + ".impl";
- qmlRegisterModule(import, 2, 15); // Qt 5.12->2.12, 5.13->2.13...
-
- qmlRegisterType<QQuickAnimatedImageSelector>(import, 2, 3, "AnimatedImageSelector");
- qmlRegisterType<QQuickImageSelector>(import, 2, 3, "ImageSelector");
- qmlRegisterType<QQuickNinePatchImage>(import, 2, 3, "NinePatchImage");
- qmlRegisterType<QQuickNinePatchImageSelector>(import, 2, 3, "NinePatchImageSelector");
-
- // Qt 6.0, import version may need to be updated.
- qmlRegisterType(resolvedUrl(QStringLiteral("OpacityMask.qml")), import, 2, 0, "OpacityMask");
-}
-
QString QtQuickControls2ImagineStylePlugin::name() const
{
return QStringLiteral("Imagine");