diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2015-04-08 19:44:48 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2015-05-26 17:51:42 +0000 |
commit | 10d53a3f0e09ec2ef437619bb1bb0dbb40f7ee8b (patch) | |
tree | bb482b1837a3a406089a2fb1f26b3d5e2a5d7461 | |
parent | d1de6c521ea2114b3bb6dbe4a0bb302f0a3db434 (diff) |
Add qHash(QKeySequence)
Key sequences can be compared for equality,
so qHash should be overloaded, too.
[ChangeLog][QtGui][QKeySequence] Added qHash(QKeySequence).
Change-Id: I3cf896292459897d66198d96dfcdba1a39bdafce
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
-rw-r--r-- | src/gui/kernel/qkeysequence.cpp | 11 | ||||
-rw-r--r-- | src/gui/kernel/qkeysequence.h | 6 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp index 23d5f06aa2..ab846b63cb 100644 --- a/src/gui/kernel/qkeysequence.cpp +++ b/src/gui/kernel/qkeysequence.cpp @@ -39,6 +39,7 @@ #ifndef QT_NO_SHORTCUT #include "qdebug.h" +#include <QtCore/qhashfunctions.h> #ifndef QT_NO_REGEXP # include "qregexp.h" #endif @@ -1409,6 +1410,16 @@ bool QKeySequence::operator==(const QKeySequence &other) const d->key[3] == other.d->key[3]); } +/*! + \since 5.6 + + Calculates the hash value of \a key, using + \a seed to seed the calculation. +*/ +uint qHash(const QKeySequence &key, uint seed) Q_DECL_NOTHROW +{ + return qHashRange(key.d->key, key.d->key + QKeySequencePrivate::MaxKeyCount, seed); +} /*! Provides an arbitrary comparison of this key sequence and diff --git a/src/gui/kernel/qkeysequence.h b/src/gui/kernel/qkeysequence.h index cd7af5718f..e6616dae11 100644 --- a/src/gui/kernel/qkeysequence.h +++ b/src/gui/kernel/qkeysequence.h @@ -43,11 +43,12 @@ QT_BEGIN_NAMESPACE #ifndef QT_NO_SHORTCUT +class QKeySequence; + /***************************************************************************** QKeySequence stream functions *****************************************************************************/ #ifndef QT_NO_DATASTREAM -class QKeySequence; Q_GUI_EXPORT QDataStream &operator<<(QDataStream &in, const QKeySequence &ks); Q_GUI_EXPORT QDataStream &operator>>(QDataStream &out, QKeySequence &ks); #endif @@ -59,6 +60,8 @@ void qt_set_sequence_auto_mnemonic(bool b); class QVariant; class QKeySequencePrivate; +Q_GUI_EXPORT Q_DECL_PURE_FUNCTION uint qHash(const QKeySequence &key, uint seed = 0) Q_DECL_NOTHROW; + class Q_GUI_EXPORT QKeySequence { Q_GADGET @@ -204,6 +207,7 @@ private: friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &in, const QKeySequence &ks); friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &in, QKeySequence &ks); + friend Q_GUI_EXPORT uint qHash(const QKeySequence &key, uint seed) Q_DECL_NOTHROW; friend class QShortcutMap; friend class QShortcut; |