diff options
Diffstat (limited to 'src/imports/templates/qtquicktemplates2plugin.cpp')
-rw-r--r-- | src/imports/templates/qtquicktemplates2plugin.cpp | 55 |
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" |