41 lines
1.1 KiB
Diff
41 lines
1.1 KiB
Diff
|
From 7860b9699b6a20fdf6e61d89df28e86b1e9a4dc4 Mon Sep 17 00:00:00 2001
|
||
|
From: Manuel Nickschas <sputnick@quassel-irc.org>
|
||
|
Date: Tue, 7 Jan 2020 18:34:54 +0100
|
||
|
Subject: [PATCH] common: Disable enum type stream operators for Qt >= 5.14
|
||
|
|
||
|
Starting from version 5.14, Qt provides stream operators for enum
|
||
|
types, which collide with the ones we ship in types.h. Disable
|
||
|
Quassel's stream operators when compiling against Qt 5.14 or later.
|
||
|
|
||
|
Add a unit test that ensures that enum serialization honors the width
|
||
|
of the underlying type.
|
||
|
|
||
|
(original patch trimmed)
|
||
|
---
|
||
|
src/common/types.h | 2 ++
|
||
|
1 file changed, 2 insertions(+)
|
||
|
|
||
|
diff --git a/src/common/types.h b/src/common/types.h
|
||
|
index 467d9fb..c4b9f36 100644
|
||
|
--- a/src/common/types.h
|
||
|
+++ b/src/common/types.h
|
||
|
@@ -140,6 +140,7 @@ Q_DECLARE_METATYPE(QHostAddress)
|
||
|
typedef QList<MsgId> MsgIdList;
|
||
|
typedef QList<BufferId> BufferIdList;
|
||
|
|
||
|
+#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
|
||
|
/**
|
||
|
* Catch-all stream serialization operator for enum types.
|
||
|
*
|
||
|
@@ -169,6 +170,7 @@ QDataStream &operator>>(QDataStream &in, T &value) {
|
||
|
value = static_cast<T>(v);
|
||
|
return in;
|
||
|
}
|
||
|
+#endif
|
||
|
|
||
|
// Exceptions
|
||
|
|
||
|
--
|
||
|
2.24.1
|
||
|
|