summaryrefslogtreecommitdiff
path: root/libre/quassel/0002-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch
blob: 734501fb59b29e56d3fb6c140c698ef65b5cfadb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
From 0000000000000000000000000000000000000000 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.
---
 src/common/types.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/common/types.h b/src/common/types.h
index 467d9fb2..c4b9f364 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