aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/templates/qtquicktemplates2plugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/templates/qtquicktemplates2plugin.cpp')
-rw-r--r--src/imports/templates/qtquicktemplates2plugin.cpp55
1 files changed, 26 insertions, 29 deletions
diff --git a/src/imports/templates/qtquicktemplates2plugin.cpp b/src/imports/templates/qtquicktemplates2plugin.cpp
index 3b085c56..28ce0bf0 100644
--- a/src/imports/templates/qtquicktemplates2plugin.cpp
+++ b/src/imports/templates/qtquicktemplates2plugin.cpp
@@ -68,7 +68,6 @@
#include <QtQuickTemplates2/private/qquickoverlay_p.h>
#include <QtQuickTemplates2/private/qquickpage_p.h>
#include <QtQuickTemplates2/private/qquickpageindicator_p.h>
-#include <QtQuickTemplates2/private/qquickpaletteprovider_p.h>
#include <QtQuickTemplates2/private/qquickpane_p.h>
#include <QtQuickTemplates2/private/qquickpopup_p.h>
#include <QtQuickTemplates2/private/qquickpopupanchors_p.h>
@@ -102,6 +101,8 @@
#include <QtQuickTemplates2/private/qquicktumbler_p.h>
#endif
+#include <QtQuick/private/qquickpalette_p.h>
+
#if QT_CONFIG(shortcut)
// qtdeclarative/src/quick/util/qquickshortcut.cpp
typedef bool (*ShortcutContextMatcher)(QObject *, Qt::ShortcutContext);
@@ -111,16 +112,6 @@ extern void qt_quick_set_shortcut_context_matcher(ShortcutContextMatcher matcher
QT_BEGIN_NAMESPACE
-static void initProviders()
-{
- QQuickPaletteProvider::init();
-}
-
-static void cleanupProviders()
-{
- QQuickPaletteProvider::cleanup();
-}
-
class QtQuickTemplates2Plugin: public QQmlExtensionPlugin
{
Q_OBJECT
@@ -131,6 +122,7 @@ public:
~QtQuickTemplates2Plugin();
void registerTypes(const char *uri) override;
+ void unregisterTypes() override;
private:
bool registered;
@@ -142,34 +134,26 @@ private:
QtQuickTemplates2Plugin::QtQuickTemplates2Plugin(QObject *parent)
: QQmlExtensionPlugin(parent), registered(false)
{
-#if QT_CONFIG(shortcut)
- originalContextMatcher = qt_quick_shortcut_context_matcher();
- qt_quick_set_shortcut_context_matcher(QQuickShortcutContext::matcher);
-#endif
}
QtQuickTemplates2Plugin::~QtQuickTemplates2Plugin()
{
- if (registered)
- cleanupProviders();
-
-#if QT_CONFIG(shortcut)
- qt_quick_set_shortcut_context_matcher(originalContextMatcher);
-#endif
+ // Intentionally empty: we use register/unregisterTypes() to do
+ // initialization and cleanup, as plugins are not unloaded on macOS.
}
void QtQuickTemplates2Plugin::registerTypes(const char *uri)
{
+#if QT_CONFIG(shortcut)
+ originalContextMatcher = qt_quick_shortcut_context_matcher();
+ qt_quick_set_shortcut_context_matcher(QQuickShortcutContext::matcher);
+#endif
+
registered = true;
- initProviders();
- // Register the latest version, even if there are no new types or new revisions for existing types yet.
- // Before Qt 5.12, we would do the following:
- //
- // qmlRegisterModule(uri, 2, QT_VERSION_MINOR - 7); // Qt 5.7->2.0, 5.8->2.1, 5.9->2.2...
- //
- // However, we want to align with the rest of Qt Quick which uses Qt's minor version.
- qmlRegisterModule(uri, 2, QT_VERSION_MINOR);
+ // The minor version used to be the current Qt 5 minor. For compatibility it is the last
+ // Qt 5 release.
+ qmlRegisterModule(uri, 2, 15);
// QtQuick.Templates 2.0 (originally introduced in Qt 5.7)
qmlRegisterType<QQuickAbstractButton>(uri, 2, 0, "AbstractButton");
@@ -287,6 +271,9 @@ void QtQuickTemplates2Plugin::registerTypes(const char *uri)
qmlRegisterRevision<QQuickText, 9>(uri, 2, 2);
qmlRegisterRevision<QQuickTextInput, 9>(uri, 2, 2);
qmlRegisterRevision<QQuickWindowQmlImpl, 3>(uri, 2, 2);
+ qmlRegisterRevision<QQuickWindowQmlImpl, 3>(uri, 2, 3);
+ qmlRegisterRevision<QQuickWindow, 3>(uri, 2, 3);
+ qmlRegisterRevision<QQuickItem, 3>(uri, 2, 3);
// QtQuick.Templates 2.3 (new types and revisions in Qt 5.10)
qmlRegisterType<QQuickAbstractButton, 3>(uri, 2, 3, "AbstractButton");
@@ -320,6 +307,9 @@ void QtQuickTemplates2Plugin::registerTypes(const char *uri)
// make revisioned properties available to their subclasses (synced with Qt 5.10)
qmlRegisterRevision<QQuickText, 10>(uri, 2, 3);
qmlRegisterRevision<QQuickTextEdit, 10>(uri, 2, 3);
+ // For backward compatibility
+ qmlRegisterType<QQuickColorGroup, 13>(uri, 2, 13, "ColorGroup");
+ qmlRegisterType<QQuickPalette, 13>(uri, 2, 13, "Palette");
// QtQuick.Templates 2.4 (new types and revisions in Qt 5.11)
qmlRegisterType<QQuickAbstractButton, 4>(uri, 2, 4, "AbstractButton");
@@ -368,6 +358,13 @@ void QtQuickTemplates2Plugin::registerTypes(const char *uri)
qmlRegisterType<QQuickVerticalHeaderView>(uri, 2, 15, "VerticalHeaderView");
}
+void QtQuickTemplates2Plugin::unregisterTypes()
+{
+#if QT_CONFIG(shortcut)
+ qt_quick_set_shortcut_context_matcher(originalContextMatcher);
+#endif
+}
+
QT_END_NAMESPACE
#include "qtquicktemplates2plugin.moc"