Add qHash implementation for QPoint
[ChangeLog][QtCore][QPoint] Added qHash() implementation. Change-Id: I65332e7aafab53af40a6e11457b9b457196d584c Fixes: QTBUG-86457 Reviewed-by: Thorbjørn Lindeijer <bjorn@lindeijer.nl> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
9815ebf24b
commit
fb65b32d76
@ -53,19 +53,6 @@
|
||||
#include "slippymap.h"
|
||||
#include "qmath.h"
|
||||
|
||||
#ifdef QT_NAMESPACE
|
||||
QT_BEGIN_NAMESPACE
|
||||
size_t qHash(const QT_NAMESPACE::QPoint& p)
|
||||
#else
|
||||
size_t qHash(const QPoint& p)
|
||||
#endif
|
||||
{
|
||||
return p.x() * 17 ^ p.y();
|
||||
}
|
||||
#ifdef QT_NAMESPACE
|
||||
QT_END_NAMESPACE
|
||||
#endif
|
||||
|
||||
// tile size in pixels
|
||||
const int tdim = 256;
|
||||
|
||||
|
@ -41,6 +41,7 @@
|
||||
#include "qdatastream.h"
|
||||
|
||||
#include <private/qdebug_p.h>
|
||||
#include <QtCore/qhashfunctions.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
@ -483,6 +484,19 @@ QDebug operator<<(QDebug dbg, const QPointF &p)
|
||||
}
|
||||
#endif
|
||||
|
||||
/*!
|
||||
\fn size_t qHash(QPoint key, size_t seed = 0)
|
||||
\relates QHash
|
||||
\since 6.0
|
||||
|
||||
Returns the hash value for the \a key, using \a seed to seed the
|
||||
calculation.
|
||||
*/
|
||||
size_t qHash(QPoint key, size_t seed) noexcept
|
||||
{
|
||||
return qHashMulti(seed, key.x(), key.y());
|
||||
}
|
||||
|
||||
/*!
|
||||
\class QPointF
|
||||
\inmodule QtCore
|
||||
|
@ -214,6 +214,7 @@ constexpr inline const QPoint operator/(const QPoint &p, qreal c)
|
||||
Q_CORE_EXPORT QDebug operator<<(QDebug, const QPoint &);
|
||||
#endif
|
||||
|
||||
Q_CORE_EXPORT size_t qHash(QPoint key, size_t seed = 0) noexcept;
|
||||
|
||||
|
||||
|
||||
|
@ -346,6 +346,9 @@ void tst_QPoint::operator_eq()
|
||||
QCOMPARE(equal, expectEqual);
|
||||
bool notEqual = point1 != point2;
|
||||
QCOMPARE(notEqual, !expectEqual);
|
||||
|
||||
if (equal)
|
||||
QCOMPARE(qHash(point1), qHash(point2));
|
||||
}
|
||||
|
||||
#ifndef QT_NO_DATASTREAM
|
||||
|
@ -3256,11 +3256,6 @@ void tst_QPainter::imageScaling_task206785()
|
||||
#define FOR_EACH_NEIGHBOR_8 for (int dx = -1; dx <= 1; ++dx) for (int dy = -1; dy <= 1; ++dy) if (dx != 0 || dy != 0)
|
||||
#define FOR_EACH_NEIGHBOR_4 for (int dx = -1; dx <= 1; ++dx) for (int dy = -1; dy <= 1; ++dy) if ((dx == 0) != (dy == 0))
|
||||
|
||||
size_t qHash(const QPoint &point)
|
||||
{
|
||||
return qHash(qMakePair(point.x(), point.y()));
|
||||
}
|
||||
|
||||
bool verifyOutlineFillConsistency(const QImage &img, QRgb outside, QRgb inside, QRgb outline)
|
||||
{
|
||||
if (img.pixel(img.width() / 2, img.height() / 2) != inside)
|
||||
|
Loading…
x
Reference in New Issue
Block a user