diff options
Diffstat (limited to 'src/gui/kernel/qevent.cpp')
| -rw-r--r-- | src/gui/kernel/qevent.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index 81617114f67..014bf8bc854 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -22,6 +22,10 @@ #include <private/qdnd_p.h> #endif +#if QT_CONFIG(shortcut) +#include <private/qshortcut_p.h> +#endif + #include <private/qdebug_p.h> QT_BEGIN_NAMESPACE @@ -3682,6 +3686,8 @@ Q_IMPL_EVENT_COMMON(QToolBarChangeEvent) Constructs a shortcut event for the given \a key press, associated with the QShortcut ID \a id. + \deprecated use the other constructor + \a ambiguous specifies whether there is more than one QShortcut for the same key sequence. */ @@ -3690,6 +3696,27 @@ QShortcutEvent::QShortcutEvent(const QKeySequence &key, int id, bool ambiguous) { } +/*! + Constructs a shortcut event for the given \a key press, + associated with the QShortcut \a shortcut. + + \a ambiguous specifies whether there is more than one QShortcut + for the same key sequence. +*/ +QShortcutEvent::QShortcutEvent(const QKeySequence &key, const QShortcut *shortcut, bool ambiguous) + : QEvent(Shortcut), m_sequence(key), m_shortcutId(0), m_ambiguous(ambiguous) +{ + if (shortcut) { + auto priv = static_cast<const QShortcutPrivate *>(QShortcutPrivate::get(shortcut)); + auto index = priv->sc_sequences.indexOf(key); + if (index < 0) { + qWarning() << "Given QShortcut does not contain key-sequence " << key; + return; + } + m_shortcutId = priv->sc_ids[index]; + } +} + Q_IMPL_EVENT_COMMON(QShortcutEvent) #endif // QT_CONFIG(shortcut) @@ -4233,6 +4260,8 @@ QDebug operator<<(QDebug dbg, const QEvent *e) /*! \fn int QShortcutEvent::shortcutId() const + \deprecated + Returns the ID of the QShortcut object for which this event was generated. |
