QFont::Tag: use new comparison helper macros
Task-number: QTBUG-104111 Change-Id: Id57b075d00e657c2606b6c1a8f1215ed0d067cbd Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
This commit is contained in:
parent
cd39a469a9
commit
c0b1eaaaaa
@ -2311,9 +2311,8 @@ void QFont::cacheStatistics()
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\fn bool QFont::Tag::operator==(QFont::Tag::Tag lhs, QFont::Tag::Tag rhs) noexcept
|
\fn bool QFont::Tag::comparesEqual(const QFont::Tag &lhs, const QFont::Tag &rhs) noexcept
|
||||||
\fn bool QFont::Tag::operator!=(QFont::Tag::Tag lhs, QFont::Tag::Tag rhs) noexcept
|
\fn Qt::strong_ordering QFont::Tag::compareThreeWay(const QFont::Tag &lhs, const QFont::Tag &rhs) noexcept
|
||||||
\fn bool QFont::Tag::operator<(QFont::Tag::Tag lhs, QFont::Tag::Tag rhs) noexcept
|
|
||||||
|
|
||||||
Compare \a lhs with \a rhs for equality and ordering.
|
Compare \a lhs with \a rhs for equality and ordering.
|
||||||
*/
|
*/
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#ifndef QFONT_H
|
#ifndef QFONT_H
|
||||||
#define QFONT_H
|
#define QFONT_H
|
||||||
|
|
||||||
|
#include <QtCore/qcompare.h>
|
||||||
#include <QtCore/qendian.h>
|
#include <QtCore/qendian.h>
|
||||||
#include <QtCore/qshareddata.h>
|
#include <QtCore/qshareddata.h>
|
||||||
#include <QtGui/qtguiglobal.h>
|
#include <QtGui/qtguiglobal.h>
|
||||||
@ -221,12 +222,6 @@ public:
|
|||||||
static_assert(N == 5, "The tag name must be exactly 4 characters long!");
|
static_assert(N == 5, "The tag name must be exactly 4 characters long!");
|
||||||
}
|
}
|
||||||
|
|
||||||
friend inline bool operator==(Tag lhs, Tag rhs) noexcept
|
|
||||||
{ return lhs.m_value == rhs.m_value; }
|
|
||||||
friend inline bool operator!=(Tag lhs, Tag rhs) noexcept
|
|
||||||
{ return lhs.m_value != rhs.m_value; }
|
|
||||||
friend inline bool operator<(Tag lhs, Tag rhs) noexcept
|
|
||||||
{ return lhs.m_value < rhs.m_value; }
|
|
||||||
constexpr bool isValid() const noexcept { return m_value != 0; }
|
constexpr bool isValid() const noexcept { return m_value != 0; }
|
||||||
constexpr quint32 value() const noexcept { return m_value; }
|
constexpr quint32 value() const noexcept { return m_value; }
|
||||||
|
|
||||||
@ -262,6 +257,12 @@ public:
|
|||||||
{ return qHash(key.value(), seed); }
|
{ return qHash(key.value(), seed); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
friend constexpr bool comparesEqual(const Tag &lhs, const Tag &rhs) noexcept
|
||||||
|
{ return lhs.m_value == rhs.m_value; }
|
||||||
|
friend constexpr Qt::strong_ordering compareThreeWay(const Tag &lhs, const Tag &rhs) noexcept
|
||||||
|
{ return Qt::compareThreeWay(lhs.m_value, rhs.m_value); }
|
||||||
|
Q_DECLARE_STRONGLY_ORDERED_LITERAL_TYPE(QFont::Tag)
|
||||||
|
|
||||||
quint32 m_value = 0;
|
quint32 m_value = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#include <qlist.h>
|
#include <qlist.h>
|
||||||
#include <QtTest/private/qemulationdetector_p.h>
|
#include <QtTest/private/qemulationdetector_p.h>
|
||||||
|
#include <private/qcomparisontesthelper_p.h>
|
||||||
|
|
||||||
using namespace Qt::StringLiterals;
|
using namespace Qt::StringLiterals;
|
||||||
|
|
||||||
@ -59,6 +60,8 @@ private slots:
|
|||||||
void setFamiliesAndFamily_data();
|
void setFamiliesAndFamily_data();
|
||||||
void setFamiliesAndFamily();
|
void setFamiliesAndFamily();
|
||||||
void featureAccessors();
|
void featureAccessors();
|
||||||
|
void tagCompares_data();
|
||||||
|
void tagCompares();
|
||||||
};
|
};
|
||||||
|
|
||||||
// Testing get/set functions
|
// Testing get/set functions
|
||||||
@ -899,5 +902,30 @@ void tst_QFont::featureAccessors()
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_QFont::tagCompares_data()
|
||||||
|
{
|
||||||
|
QTestPrivate::testAllComparisonOperatorsCompile<QFont::Tag>();
|
||||||
|
|
||||||
|
QTest::addColumn<QFont::Tag>("lhs");
|
||||||
|
QTest::addColumn<QFont::Tag>("rhs");
|
||||||
|
QTest::addColumn<Qt::strong_ordering>("expectedOrder");
|
||||||
|
|
||||||
|
auto row = [](QFont::Tag left, QFont::Tag right) {
|
||||||
|
QTest::addRow("%s<=>%s", left.toString().constData(), right.toString().constData())
|
||||||
|
<< left << right << Qt::compareThreeWay(left.value(), right.value());
|
||||||
|
};
|
||||||
|
row("frac", "wght");
|
||||||
|
}
|
||||||
|
|
||||||
|
void tst_QFont::tagCompares()
|
||||||
|
{
|
||||||
|
QFETCH(QFont::Tag, lhs);
|
||||||
|
QFETCH(QFont::Tag, rhs);
|
||||||
|
QFETCH(Qt::strong_ordering, expectedOrder);
|
||||||
|
|
||||||
|
QVERIFY(comparesEqual(lhs, lhs));
|
||||||
|
QCOMPARE(compareThreeWay(lhs, rhs), expectedOrder);
|
||||||
|
}
|
||||||
|
|
||||||
QTEST_MAIN(tst_QFont)
|
QTEST_MAIN(tst_QFont)
|
||||||
#include "tst_qfont.moc"
|
#include "tst_qfont.moc"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user