diff options
| author | Allan Sandfeld Jensen <[email protected]> | 2022-12-02 13:49:18 +0100 |
|---|---|---|
| committer | Allan Sandfeld Jensen <[email protected]> | 2022-12-09 16:16:48 +0100 |
| commit | d4eb5d11104bb823e56cf173e29f9d205320581f (patch) | |
| tree | 481bb0990a0b0a8bfffa99a6014f7defcc73c8dd | |
| parent | 10b5b4cbba79416e69c8b4ceea4874a9af26a237 (diff) | |
Cleanup short-cut id deprecation
Wasn't marked deprecated in documentation, and was needed for user
construction of QShortcutEvents.
Fixes: QTBUG-109090
Change-Id: Ibf0ad83a57de724d9b88a7e610ba04c2c662983b
Reviewed-by: Ivan Solovev <[email protected]>
| -rw-r--r-- | src/gui/kernel/qevent.cpp | 29 | ||||
| -rw-r--r-- | src/gui/kernel/qevent.h | 6 | ||||
| -rw-r--r-- | src/gui/kernel/qshortcut.cpp | 2 |
3 files changed, 37 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. diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h index a5d34171e0b..a3fd09d9a4c 100644 --- a/src/gui/kernel/qevent.h +++ b/src/gui/kernel/qevent.h @@ -36,6 +36,9 @@ class QAction; class QMouseEvent; class QPointerEvent; class QScreen; +#if QT_CONFIG(shortcut) +class QShortcut; +#endif class QTabletEvent; class QTouchEvent; #if QT_CONFIG(gestures) @@ -873,9 +876,12 @@ class Q_GUI_EXPORT QShortcutEvent : public QEvent { Q_DECL_EVENT_COMMON(QShortcutEvent) public: + // Note this is publicly deprecated, but should remain as internal constructor: QShortcutEvent(const QKeySequence &key, int id, bool ambiguous = false); + QShortcutEvent(const QKeySequence &key, const QShortcut *shortcut = nullptr, bool ambiguous = false); inline const QKeySequence &key() const { return m_sequence; } + // Note this is publicly deprecated, but should remain as internal getter: inline int shortcutId() const { return m_shortcutId; } inline bool isAmbiguous() const { return m_ambiguous; } protected: diff --git a/src/gui/kernel/qshortcut.cpp b/src/gui/kernel/qshortcut.cpp index c654ebb578a..b10d96237e9 100644 --- a/src/gui/kernel/qshortcut.cpp +++ b/src/gui/kernel/qshortcut.cpp @@ -536,6 +536,8 @@ QString QShortcut::whatsThis() const /*! Returns the primary key binding's ID. + \deprecated + \sa QShortcutEvent::shortcutId() */ int QShortcut::id() const |
