summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/tools/qrect.h7
-rw-r--r--src/corelib/tools/qsize.h5
2 files changed, 12 insertions, 0 deletions
diff --git a/src/corelib/tools/qrect.h b/src/corelib/tools/qrect.h
index 4fd9e7c0c9..b07e134dd7 100644
--- a/src/corelib/tools/qrect.h
+++ b/src/corelib/tools/qrect.h
@@ -40,6 +40,7 @@
#ifndef QRECT_H
#define QRECT_H
+#include <QtCore/qhashfunctions.h>
#include <QtCore/qmargins.h>
#include <QtCore/qsize.h>
#include <QtCore/qpoint.h>
@@ -147,6 +148,7 @@ public:
friend Q_DECL_CONSTEXPR inline bool operator==(const QRect &, const QRect &) noexcept;
friend Q_DECL_CONSTEXPR inline bool operator!=(const QRect &, const QRect &) noexcept;
+ friend Q_DECL_CONSTEXPR inline size_t qHash(const QRect &, size_t) noexcept;
#if defined(Q_OS_DARWIN) || defined(Q_QDOC)
Q_REQUIRED_RESULT CGRect toCGRect() const noexcept;
@@ -456,6 +458,11 @@ Q_DECL_CONSTEXPR inline bool operator!=(const QRect &r1, const QRect &r2) noexce
return r1.x1!=r2.x1 || r1.x2!=r2.x2 || r1.y1!=r2.y1 || r1.y2!=r2.y2;
}
+Q_DECL_CONSTEXPR inline size_t qHash(const QRect &r, size_t seed = 0) noexcept
+{
+ return qHashMulti(seed, r.x1, r.x2, r.y1, r.y2);
+}
+
Q_DECL_CONSTEXPR inline QRect operator+(const QRect &rectangle, const QMargins &margins) noexcept
{
return QRect(QPoint(rectangle.left() - margins.left(), rectangle.top() - margins.top()),
diff --git a/src/corelib/tools/qsize.h b/src/corelib/tools/qsize.h
index 06de1cd63f..da778954ed 100644
--- a/src/corelib/tools/qsize.h
+++ b/src/corelib/tools/qsize.h
@@ -41,6 +41,7 @@
#define QSIZE_H
#include <QtCore/qnamespace.h>
+#include <QtCore/qhashfunctions.h>
#include <QtCore/qmargins.h>
#if defined(Q_OS_DARWIN) || defined(Q_QDOC)
@@ -90,6 +91,7 @@ public:
friend inline Q_DECL_CONSTEXPR bool operator==(const QSize &, const QSize &) noexcept;
friend inline Q_DECL_CONSTEXPR bool operator!=(const QSize &, const QSize &) noexcept;
+ friend inline Q_DECL_CONSTEXPR size_t qHash(const QSize &, size_t) noexcept;
friend inline Q_DECL_CONSTEXPR const QSize operator+(const QSize &, const QSize &) noexcept;
friend inline Q_DECL_CONSTEXPR const QSize operator-(const QSize &, const QSize &) noexcept;
friend inline Q_DECL_CONSTEXPR const QSize operator*(const QSize &, qreal) noexcept;
@@ -178,6 +180,9 @@ Q_DECL_CONSTEXPR inline bool operator==(const QSize &s1, const QSize &s2) noexce
Q_DECL_CONSTEXPR inline bool operator!=(const QSize &s1, const QSize &s2) noexcept
{ return s1.wd != s2.wd || s1.ht != s2.ht; }
+Q_DECL_CONSTEXPR inline size_t qHash(const QSize &s, size_t seed = 0) noexcept
+{ return qHashMulti(seed, s.wd, s.ht); }
+
Q_DECL_CONSTEXPR inline const QSize operator+(const QSize & s1, const QSize & s2) noexcept
{ return QSize(s1.wd+s2.wd, s1.ht+s2.ht); }