aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls/fusion
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/fusion
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/fusion')
-rw-r--r--src/imports/controls/fusion/.prev_CMakeLists.txt6
-rw-r--r--src/imports/controls/fusion/CMakeLists.txt6
-rw-r--r--src/imports/controls/fusion/ComboBox.qml2
-rw-r--r--src/imports/controls/fusion/MenuItem.qml2
-rw-r--r--src/imports/controls/fusion/ProgressBar.qml2
-rw-r--r--src/imports/controls/fusion/SpinBox.qml4
-rw-r--r--src/imports/controls/fusion/fusion.pri12
-rw-r--r--src/imports/controls/fusion/impl/ButtonPanel.qml (renamed from src/imports/controls/fusion/ButtonPanel.qml)0
-rw-r--r--src/imports/controls/fusion/impl/CheckIndicator.qml (renamed from src/imports/controls/fusion/CheckIndicator.qml)2
-rw-r--r--src/imports/controls/fusion/impl/RadioIndicator.qml (renamed from src/imports/controls/fusion/RadioIndicator.qml)0
-rw-r--r--src/imports/controls/fusion/impl/SliderGroove.qml (renamed from src/imports/controls/fusion/SliderGroove.qml)0
-rw-r--r--src/imports/controls/fusion/impl/SliderHandle.qml (renamed from src/imports/controls/fusion/SliderHandle.qml)0
-rw-r--r--src/imports/controls/fusion/impl/SwitchIndicator.qml (renamed from src/imports/controls/fusion/SwitchIndicator.qml)0
-rw-r--r--src/imports/controls/fusion/impl/fusion-impl.pro39
-rw-r--r--src/imports/controls/fusion/impl/qmldir3
-rw-r--r--src/imports/controls/fusion/impl/qquickfusionbusyindicator.cpp (renamed from src/imports/controls/fusion/qquickfusionbusyindicator.cpp)0
-rw-r--r--src/imports/controls/fusion/impl/qquickfusionbusyindicator_p.h (renamed from src/imports/controls/fusion/qquickfusionbusyindicator_p.h)2
-rw-r--r--src/imports/controls/fusion/impl/qquickfusiondial.cpp (renamed from src/imports/controls/fusion/qquickfusiondial.cpp)0
-rw-r--r--src/imports/controls/fusion/impl/qquickfusiondial_p.h (renamed from src/imports/controls/fusion/qquickfusiondial_p.h)2
-rw-r--r--src/imports/controls/fusion/impl/qquickfusionknob.cpp (renamed from src/imports/controls/fusion/qquickfusionknob.cpp)0
-rw-r--r--src/imports/controls/fusion/impl/qquickfusionknob_p.h (renamed from src/imports/controls/fusion/qquickfusionknob_p.h)2
-rw-r--r--src/imports/controls/fusion/impl/qtquickcontrols2fusionstyleimplplugin.cpp57
-rw-r--r--src/imports/controls/fusion/qquickfusionstyle_p.h4
-rw-r--r--src/imports/controls/fusion/qtquickcontrols2fusionstyle.qrc2
-rw-r--r--src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp21
25 files changed, 123 insertions, 45 deletions
diff --git a/src/imports/controls/fusion/.prev_CMakeLists.txt b/src/imports/controls/fusion/.prev_CMakeLists.txt
index 2fb5b2a1..4c59e4f6 100644
--- a/src/imports/controls/fusion/.prev_CMakeLists.txt
+++ b/src/imports/controls/fusion/.prev_CMakeLists.txt
@@ -5,7 +5,7 @@
#####################################################################
add_qml_module(qtquickcontrols2fusionstyleplugin
- TARGET_PATH "QtQuick/Controls.2/Fusion"
+ TARGET_PATH "QtQuick/Controls/Fusion"
URI "QtQuick.Controls.Fusion"
VERSION "2.${CMAKE_PROJECT_VERSION_MINOR}"
CLASSNAME QtQuickControls2FusionStylePlugin
@@ -54,7 +54,7 @@ set(qtquickcontrols2fusionstyle_resource_files
add_qt_resource(qtquickcontrols2fusionstyleplugin "qtquickcontrols2fusionstyle"
PREFIX
- "/qt-project.org/imports/QtQuick/Controls.2/Fusion"
+ "/qt-project.org/imports/QtQuick/Controls/Fusion"
FILES
${qtquickcontrols2fusionstyle_resource_files}
)
@@ -64,7 +64,7 @@ add_qt_resource(qtquickcontrols2fusionstyleplugin "qtquickcontrols2fusionstyle"
# IMPORT_NAME = "QtQuick.Controls.Fusion"
# IMPORT_VERSION = "2.$$QT_MINOR_VERSION"
# OTHER_FILES = "qmldir" "$$QML_FILES"
-# TARGETPATH = "QtQuick/Controls.2/Fusion"
+# TARGETPATH = "QtQuick/Controls/Fusion"
# _REQUIREMENTS = "qtConfig(quickcontrols2-fusion)"
set(qml_files
diff --git a/src/imports/controls/fusion/CMakeLists.txt b/src/imports/controls/fusion/CMakeLists.txt
index 59b06842..5eb28d21 100644
--- a/src/imports/controls/fusion/CMakeLists.txt
+++ b/src/imports/controls/fusion/CMakeLists.txt
@@ -5,7 +5,7 @@
#####################################################################
qt_add_qml_module(qtquickcontrols2fusionstyleplugin
- TARGET_PATH "QtQuick/Controls.2/Fusion"
+ TARGET_PATH "QtQuick/Controls/Fusion"
URI "QtQuick.Controls.Fusion"
VERSION "2.${CMAKE_PROJECT_VERSION_MINOR}"
CLASSNAME QtQuickControls2FusionStylePlugin
@@ -54,7 +54,7 @@ set(qtquickcontrols2fusionstyle_resource_files
qt_add_resource(qtquickcontrols2fusionstyleplugin "qtquickcontrols2fusionstyle"
PREFIX
- "/qt-project.org/imports/QtQuick/Controls.2/Fusion"
+ "/qt-project.org/imports/QtQuick/Controls/Fusion"
FILES
${qtquickcontrols2fusionstyle_resource_files}
)
@@ -64,7 +64,7 @@ qt_add_resource(qtquickcontrols2fusionstyleplugin "qtquickcontrols2fusionstyle"
# IMPORT_NAME = "QtQuick.Controls.Fusion"
# IMPORT_VERSION = "2.$$QT_MINOR_VERSION"
# OTHER_FILES = "qmldir" "$$QML_FILES"
-# TARGETPATH = "QtQuick/Controls.2/Fusion"
+# TARGETPATH = "QtQuick/Controls/Fusion"
# _REQUIREMENTS = "qtConfig(quickcontrols2-fusion)"
set(qml_files
diff --git a/src/imports/controls/fusion/ComboBox.qml b/src/imports/controls/fusion/ComboBox.qml
index d0e4b564..64e9603f 100644
--- a/src/imports/controls/fusion/ComboBox.qml
+++ b/src/imports/controls/fusion/ComboBox.qml
@@ -66,7 +66,7 @@ T.ComboBox {
x: control.mirrored ? control.padding : control.width - width - control.padding
y: control.topPadding + (control.availableHeight - height) / 2
color: control.editable ? control.palette.text : control.palette.buttonText
- source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/arrow.png"
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
width: 20
fillMode: Image.Pad
}
diff --git a/src/imports/controls/fusion/MenuItem.qml b/src/imports/controls/fusion/MenuItem.qml
index a428fbc8..ebd727e0 100644
--- a/src/imports/controls/fusion/MenuItem.qml
+++ b/src/imports/controls/fusion/MenuItem.qml
@@ -81,7 +81,7 @@ T.MenuItem {
visible: control.subMenu
rotation: control.mirrored ? 90 : -90
color: control.down || control.hovered || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
- source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/arrow.png"
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
fillMode: Image.Pad
}
diff --git a/src/imports/controls/fusion/ProgressBar.qml b/src/imports/controls/fusion/ProgressBar.qml
index 5deade58..a522563a 100644
--- a/src/imports/controls/fusion/ProgressBar.qml
+++ b/src/imports/controls/fusion/ProgressBar.qml
@@ -85,7 +85,7 @@ T.ProgressBar {
mirror: control.mirrored
fillMode: Image.TileHorizontally
- source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/progressmask.png"
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/progressmask.png"
color: Color.transparent(Qt.lighter(Fusion.highlight(control.palette), 1.2), 160 / 255)
visible: control.indeterminate
diff --git a/src/imports/controls/fusion/SpinBox.qml b/src/imports/controls/fusion/SpinBox.qml
index 41754f63..44387e3c 100644
--- a/src/imports/controls/fusion/SpinBox.qml
+++ b/src/imports/controls/fusion/SpinBox.qml
@@ -98,7 +98,7 @@ T.SpinBox {
height: parent.height
opacity: enabled ? 1.0 : 0.5
color: control.palette.buttonText
- source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/arrow.png"
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
fillMode: Image.Pad
}
}
@@ -121,7 +121,7 @@ T.SpinBox {
height: parent.height
opacity: enabled ? 1.0 : 0.5
color: control.palette.buttonText
- source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/arrow.png"
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
fillMode: Image.Pad
}
}
diff --git a/src/imports/controls/fusion/fusion.pri b/src/imports/controls/fusion/fusion.pri
index bdc413fd..5bc3fbce 100644
--- a/src/imports/controls/fusion/fusion.pri
+++ b/src/imports/controls/fusion/fusion.pri
@@ -1,14 +1,8 @@
HEADERS += \
- $$PWD/qquickfusionbusyindicator_p.h \
- $$PWD/qquickfusiondial_p.h \
- $$PWD/qquickfusionknob_p.h \
$$PWD/qquickfusionstyle_p.h \
$$PWD/qquickfusiontheme_p.h
SOURCES += \
- $$PWD/qquickfusionbusyindicator.cpp \
- $$PWD/qquickfusiondial.cpp \
- $$PWD/qquickfusionknob.cpp \
$$PWD/qquickfusionstyle.cpp \
$$PWD/qquickfusiontheme.cpp
@@ -16,10 +10,8 @@ QML_FILES += \
$$PWD/ApplicationWindow.qml \
$$PWD/BusyIndicator.qml \
$$PWD/Button.qml \
- $$PWD/ButtonPanel.qml \
$$PWD/CheckBox.qml \
$$PWD/CheckDelegate.qml \
- $$PWD/CheckIndicator.qml \
$$PWD/ComboBox.qml \
$$PWD/DelayButton.qml \
$$PWD/Dial.qml \
@@ -43,19 +35,15 @@ QML_FILES += \
$$PWD/ProgressBar.qml \
$$PWD/RadioButton.qml \
$$PWD/RadioDelegate.qml \
- $$PWD/RadioIndicator.qml \
$$PWD/RangeSlider.qml \
$$PWD/RoundButton.qml \
$$PWD/ScrollBar.qml \
$$PWD/ScrollIndicator.qml \
$$PWD/Slider.qml \
- $$PWD/SliderGroove.qml \
- $$PWD/SliderHandle.qml \
$$PWD/SpinBox.qml \
$$PWD/SplitView.qml \
$$PWD/SwipeDelegate.qml \
$$PWD/SwitchDelegate.qml \
- $$PWD/SwitchIndicator.qml \
$$PWD/Switch.qml \
$$PWD/TabBar.qml \
$$PWD/TabButton.qml \
diff --git a/src/imports/controls/fusion/ButtonPanel.qml b/src/imports/controls/fusion/impl/ButtonPanel.qml
index 125aa2f3..125aa2f3 100644
--- a/src/imports/controls/fusion/ButtonPanel.qml
+++ b/src/imports/controls/fusion/impl/ButtonPanel.qml
diff --git a/src/imports/controls/fusion/CheckIndicator.qml b/src/imports/controls/fusion/impl/CheckIndicator.qml
index 7dcfee30..f8c127c4 100644
--- a/src/imports/controls/fusion/CheckIndicator.qml
+++ b/src/imports/controls/fusion/impl/CheckIndicator.qml
@@ -66,7 +66,7 @@ Rectangle {
x: (parent.width - width) / 2
y: (parent.height - height) / 2
color: Color.transparent(indicator.checkMarkColor, 210 / 255)
- source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/checkmark.png"
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/checkmark.png"
visible: indicator.control.checkState === Qt.Checked || (indicator.control.checked && indicator.control.checkState === undefined)
}
diff --git a/src/imports/controls/fusion/RadioIndicator.qml b/src/imports/controls/fusion/impl/RadioIndicator.qml
index c73cd49f..c73cd49f 100644
--- a/src/imports/controls/fusion/RadioIndicator.qml
+++ b/src/imports/controls/fusion/impl/RadioIndicator.qml
diff --git a/src/imports/controls/fusion/SliderGroove.qml b/src/imports/controls/fusion/impl/SliderGroove.qml
index 381a02b5..381a02b5 100644
--- a/src/imports/controls/fusion/SliderGroove.qml
+++ b/src/imports/controls/fusion/impl/SliderGroove.qml
diff --git a/src/imports/controls/fusion/SliderHandle.qml b/src/imports/controls/fusion/impl/SliderHandle.qml
index c53af57e..c53af57e 100644
--- a/src/imports/controls/fusion/SliderHandle.qml
+++ b/src/imports/controls/fusion/impl/SliderHandle.qml
diff --git a/src/imports/controls/fusion/SwitchIndicator.qml b/src/imports/controls/fusion/impl/SwitchIndicator.qml
index ae7c89a0..ae7c89a0 100644
--- a/src/imports/controls/fusion/SwitchIndicator.qml
+++ b/src/imports/controls/fusion/impl/SwitchIndicator.qml
diff --git a/src/imports/controls/fusion/impl/fusion-impl.pro b/src/imports/controls/fusion/impl/fusion-impl.pro
new file mode 100644
index 00000000..e3333e18
--- /dev/null
+++ b/src/imports/controls/fusion/impl/fusion-impl.pro
@@ -0,0 +1,39 @@
+TARGET = qtquickcontrols2fusionstyleimplplugin
+TARGETPATH = QtQuick/Controls.2/Fusion/impl
+
+QML_IMPORT_NAME = QtQuick.Controls.Fusion.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/ButtonPanel.qml \
+ $$PWD/CheckIndicator.qml \
+ $$PWD/RadioIndicator.qml \
+ $$PWD/SliderGroove.qml \
+ $$PWD/SliderHandle.qml \
+ $$PWD/SwitchIndicator.qml
+
+OTHER_FILES += \
+ qmldir \
+ $$QML_FILES
+
+HEADERS += \
+ $$PWD/qquickfusionbusyindicator_p.h \
+ $$PWD/qquickfusiondial_p.h \
+ $$PWD/qquickfusionknob_p.h
+
+SOURCES += \
+ $$PWD/qquickfusionbusyindicator.cpp \
+ $$PWD/qquickfusiondial.cpp \
+ $$PWD/qquickfusionknob.cpp \
+ $$PWD/qtquickcontrols2fusionstyleimplplugin.cpp
+
+CONFIG += qmltypes install_qmltypes no_cxx_module install_qml_files builtin_resources qtquickcompiler
+load(qml_plugin)
+
+requires(qtConfig(quickcontrols2-fusion))
diff --git a/src/imports/controls/fusion/impl/qmldir b/src/imports/controls/fusion/impl/qmldir
new file mode 100644
index 00000000..16ed7fd8
--- /dev/null
+++ b/src/imports/controls/fusion/impl/qmldir
@@ -0,0 +1,3 @@
+module QtQuick.Controls.Fusion.impl
+plugin qtquickcontrols2fusionstyleimplplugin
+classname QtQuickControls2FusionStyleImpPlugin
diff --git a/src/imports/controls/fusion/qquickfusionbusyindicator.cpp b/src/imports/controls/fusion/impl/qquickfusionbusyindicator.cpp
index a9b75d27..a9b75d27 100644
--- a/src/imports/controls/fusion/qquickfusionbusyindicator.cpp
+++ b/src/imports/controls/fusion/impl/qquickfusionbusyindicator.cpp
diff --git a/src/imports/controls/fusion/qquickfusionbusyindicator_p.h b/src/imports/controls/fusion/impl/qquickfusionbusyindicator_p.h
index 77487ec8..5aeea6c4 100644
--- a/src/imports/controls/fusion/qquickfusionbusyindicator_p.h
+++ b/src/imports/controls/fusion/impl/qquickfusionbusyindicator_p.h
@@ -58,6 +58,8 @@ class QQuickFusionBusyIndicator : public QQuickPaintedItem
Q_OBJECT
Q_PROPERTY(QColor color READ color WRITE setColor FINAL)
Q_PROPERTY(bool running READ isRunning WRITE setRunning)
+ QML_NAMED_ELEMENT(BusyIndicatorImpl)
+ QML_ADDED_IN_VERSION(2, 3)
public:
explicit QQuickFusionBusyIndicator(QQuickItem *parent = nullptr);
diff --git a/src/imports/controls/fusion/qquickfusiondial.cpp b/src/imports/controls/fusion/impl/qquickfusiondial.cpp
index eb6f21ad..eb6f21ad 100644
--- a/src/imports/controls/fusion/qquickfusiondial.cpp
+++ b/src/imports/controls/fusion/impl/qquickfusiondial.cpp
diff --git a/src/imports/controls/fusion/qquickfusiondial_p.h b/src/imports/controls/fusion/impl/qquickfusiondial_p.h
index 07c80cdb..c320527a 100644
--- a/src/imports/controls/fusion/qquickfusiondial_p.h
+++ b/src/imports/controls/fusion/impl/qquickfusiondial_p.h
@@ -56,6 +56,8 @@ class QQuickFusionDial : public QQuickPaintedItem
{
Q_OBJECT
Q_PROPERTY(bool highlight READ highlight WRITE setHighlight FINAL)
+ QML_NAMED_ELEMENT(DialImpl)
+ QML_ADDED_IN_VERSION(2, 3)
public:
explicit QQuickFusionDial(QQuickItem *parent = nullptr);
diff --git a/src/imports/controls/fusion/qquickfusionknob.cpp b/src/imports/controls/fusion/impl/qquickfusionknob.cpp
index a641d190..a641d190 100644
--- a/src/imports/controls/fusion/qquickfusionknob.cpp
+++ b/src/imports/controls/fusion/impl/qquickfusionknob.cpp
diff --git a/src/imports/controls/fusion/qquickfusionknob_p.h b/src/imports/controls/fusion/impl/qquickfusionknob_p.h
index 85e5f53e..b9b9c377 100644
--- a/src/imports/controls/fusion/qquickfusionknob_p.h
+++ b/src/imports/controls/fusion/impl/qquickfusionknob_p.h
@@ -55,6 +55,8 @@ QT_BEGIN_NAMESPACE
class QQuickFusionKnob : public QQuickPaintedItem
{
Q_OBJECT
+ QML_NAMED_ELEMENT(KnobImpl)
+ QML_ADDED_IN_VERSION(2, 3)
public:
explicit QQuickFusionKnob(QQuickItem *parent = nullptr);
diff --git a/src/imports/controls/fusion/impl/qtquickcontrols2fusionstyleimplplugin.cpp b/src/imports/controls/fusion/impl/qtquickcontrols2fusionstyleimplplugin.cpp
new file mode 100644
index 00000000..56cfc151
--- /dev/null
+++ b/src/imports/controls/fusion/impl/qtquickcontrols2fusionstyleimplplugin.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 QtQuickControls2FusionStyleImplPlugin : public QQmlEngineExtensionPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
+
+public:
+ QtQuickControls2FusionStyleImplPlugin(QObject *parent = nullptr);
+};
+
+QtQuickControls2FusionStyleImplPlugin::QtQuickControls2FusionStyleImplPlugin(QObject *parent)
+ : QQmlEngineExtensionPlugin(parent)
+{
+}
+
+QT_END_NAMESPACE
+
+#include "qtquickcontrols2fusionstyleimplplugin.moc"
diff --git a/src/imports/controls/fusion/qquickfusionstyle_p.h b/src/imports/controls/fusion/qquickfusionstyle_p.h
index 0e7526ee..4655fd3d 100644
--- a/src/imports/controls/fusion/qquickfusionstyle_p.h
+++ b/src/imports/controls/fusion/qquickfusionstyle_p.h
@@ -50,6 +50,7 @@
#include <QtCore/qobject.h>
#include <QtGui/qcolor.h>
+#include <QtQml/qqml.h>
QT_BEGIN_NAMESPACE
@@ -62,6 +63,9 @@ class QQuickFusionStyle : public QObject
Q_PROPERTY(QColor darkShade READ darkShade CONSTANT)
Q_PROPERTY(QColor topShadow READ topShadow CONSTANT)
Q_PROPERTY(QColor innerContrastLine READ innerContrastLine CONSTANT)
+ QML_NAMED_ELEMENT(Fusion)
+ QML_SINGLETON
+ QML_ADDED_IN_VERSION(2, 3)
public:
explicit QQuickFusionStyle(QObject *parent = nullptr);
diff --git a/src/imports/controls/fusion/qtquickcontrols2fusionstyle.qrc b/src/imports/controls/fusion/qtquickcontrols2fusionstyle.qrc
index 74c8e671..0a9e195a 100644
--- a/src/imports/controls/fusion/qtquickcontrols2fusionstyle.qrc
+++ b/src/imports/controls/fusion/qtquickcontrols2fusionstyle.qrc
@@ -1,5 +1,5 @@
<!DOCTYPE RCC><RCC version="1.0">
-<qresource prefix="qt-project.org/imports/QtQuick/Controls.2/Fusion">
+<qresource prefix="qt-project.org/imports/QtQuick/Controls/Fusion">
<file>images/arrow.png</file>
<file>images/arrow@2x.png</file>
<file>images/arrow@3x.png</file>
diff --git a/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp b/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp
index 985945cf..1f9b4a1b 100644
--- a/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp
+++ b/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp
@@ -37,22 +37,12 @@
#include <QtQuickControls2/private/qquickstyleplugin_p.h>
#include <QtQml/qqml.h>
-#include "qquickfusionbusyindicator_p.h"
-#include "qquickfusiondial_p.h"
-#include "qquickfusionknob_p.h"
#include "qquickfusionstyle_p.h"
#include "qquickfusiontheme_p.h"
QT_BEGIN_NAMESPACE
-static QObject *styleSingleton(QQmlEngine *engine, QJSEngine *scriptEngine)
-{
- Q_UNUSED(engine);
- Q_UNUSED(scriptEngine);
- return new QQuickFusionStyle;
-}
-
-class QtQuickControls2FusionStylePlugin: public QQuickStylePlugin
+class QtQuickControls2FusionStylePlugin : public QQuickStylePlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
@@ -72,18 +62,9 @@ QtQuickControls2FusionStylePlugin::QtQuickControls2FusionStylePlugin(QObject *pa
void QtQuickControls2FusionStylePlugin::registerTypes(const char *uri)
{
- qmlRegisterModule(uri, 2, 3); // Qt 5.10->2.3
- qmlRegisterModule(uri, 2, 15); // Qt 5.12->2.12, 5.13->2.13...
-
QByteArray import = QByteArray(uri) + ".impl";
qmlRegisterModule(import, 2, 15); // Qt 5.12->2.12, 5.13->2.13...
- qmlRegisterSingletonType<QQuickFusionStyle>(import, 2, 3, "Fusion", styleSingleton);
-
- qmlRegisterType<QQuickFusionBusyIndicator>(import, 2, 3, "BusyIndicatorImpl");
- qmlRegisterType<QQuickFusionDial>(import, 2, 3, "DialImpl");
- qmlRegisterType<QQuickFusionKnob>(import, 2, 3, "KnobImpl");
-
qmlRegisterType(resolvedUrl(QStringLiteral("ButtonPanel.qml")), import, 2, 3, "ButtonPanel");
qmlRegisterType(resolvedUrl(QStringLiteral("CheckIndicator.qml")), import, 2, 3, "CheckIndicator");
qmlRegisterType(resolvedUrl(QStringLiteral("RadioIndicator.qml")), import, 2, 3, "RadioIndicator");