summaryrefslogtreecommitdiffstats
path: root/src/corelib/serialization/qdatastream.h
diff options
context:
space:
mode:
authorDavid Faure <david.faure@kdab.com>2020-02-28 20:00:24 +0100
committerDavid Faure <david.faure@kdab.com>2020-03-08 15:38:04 +0100
commit4bc9e3b8470ed2026604dc06dc027c80e6f7c445 (patch)
tree510a8a4673d4fba662705010b3b1e89b3e1b43ad /src/corelib/serialization/qdatastream.h
parent114394702b2975b5d890833a5f14510b5e1a2e2b (diff)
QDataStream: fix compilation with QT_DISABLE_DEPRECATED_BEFORE=0x0050F00
Fixes: QTBUG-81023 Change-Id: I0d56785d1fed2c4c8e0e87ccefb0b72b0ed3644a Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Diffstat (limited to 'src/corelib/serialization/qdatastream.h')
-rw-r--r--src/corelib/serialization/qdatastream.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/corelib/serialization/qdatastream.h b/src/corelib/serialization/qdatastream.h
index 4d827772c8..6f6593f9bf 100644
--- a/src/corelib/serialization/qdatastream.h
+++ b/src/corelib/serialization/qdatastream.h
@@ -285,6 +285,13 @@ QDataStream &readListBasedContainer(QDataStream &s, Container &c)
return s;
}
+template <typename T>
+struct MultiContainer { using type = T; };
+template <typename K, typename V>
+struct MultiContainer<QMap<K, V>> { using type = QMultiMap<K, V>; };
+template <typename K, typename V>
+struct MultiContainer<QHash<K, V>> { using type = QMultiHash<K, V>; };
+
template <typename Container>
QDataStream &readAssociativeContainer(QDataStream &s, Container &c)
{
@@ -301,10 +308,7 @@ QDataStream &readAssociativeContainer(QDataStream &s, Container &c)
c.clear();
break;
}
-QT_WARNING_PUSH
-QT_WARNING_DISABLE_DEPRECATED
- c.insertMulti(k, t);
-QT_WARNING_POP
+ static_cast<typename MultiContainer<Container>::type &>(c).insert(k, t);
}
return s;