diff options
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/templates/qtquicktemplates2plugin.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/imports/templates/qtquicktemplates2plugin.cpp b/src/imports/templates/qtquicktemplates2plugin.cpp index b0ec18d3..2c87fd45 100644 --- a/src/imports/templates/qtquicktemplates2plugin.cpp +++ b/src/imports/templates/qtquicktemplates2plugin.cpp @@ -65,6 +65,7 @@ #include <QtQuickTemplates2/private/qquickrangeslider_p.h> #include <QtQuickTemplates2/private/qquickscrollbar_p.h> #include <QtQuickTemplates2/private/qquickscrollindicator_p.h> +#include <QtQuickTemplates2/private/qquickshortcutcontext_p_p.h> #include <QtQuickTemplates2/private/qquickslider_p.h> #include <QtQuickTemplates2/private/qquickspinbox_p.h> #include <QtQuickTemplates2/private/qquickstackview_p.h> @@ -88,6 +89,11 @@ static inline void initResources() #endif } +// qtdeclarative/src/quick/util/qquickshortcut.cpp +typedef bool (*ShortcutContextMatcher)(QObject *, Qt::ShortcutContext); +extern ShortcutContextMatcher qt_quick_shortcut_context_matcher(); +extern void qt_quick_set_shortcut_context_matcher(ShortcutContextMatcher matcher); + QT_BEGIN_NAMESPACE class QtQuickTemplates2Plugin: public QQmlExtensionPlugin @@ -97,12 +103,25 @@ class QtQuickTemplates2Plugin: public QQmlExtensionPlugin public: QtQuickTemplates2Plugin(QObject *parent = nullptr); + ~QtQuickTemplates2Plugin(); + void registerTypes(const char *uri); + +private: + ShortcutContextMatcher originalContextMatcher; }; QtQuickTemplates2Plugin::QtQuickTemplates2Plugin(QObject *parent) : QQmlExtensionPlugin(parent) { initResources(); + + originalContextMatcher = qt_quick_shortcut_context_matcher(); + qt_quick_set_shortcut_context_matcher(QQuickShortcutContext::matcher); +} + +QtQuickTemplates2Plugin::~QtQuickTemplates2Plugin() +{ + qt_quick_set_shortcut_context_matcher(originalContextMatcher); } void QtQuickTemplates2Plugin::registerTypes(const char *uri) |