[libraries/qxmpp] /: Remove Q_DECLARE_METATYPE usages

Linus Jahn <[email protected]> Wed, 5 Aug 2026 10:18:28 +0000 (UTC)
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 7dc9552d449eaca1b924b2ee153b2ff43a1a19e5 by Linus Jahn.
Committed on 05/08/2026 at 10:18.
Pushed by lnj into branch 'master'.

Remove Q_DECLARE_METATYPE usages

Since Qt 6, QMetaType is generated from templates for every complete
type, so Q_DECLARE_METATYPE is not needed anymore for QVariant,
qRegisterMetaType(), qMetaTypeId(), queued connections or
QTest::addColumn().

Removing the declarations also unbreaks applications that declare the
metatypes for our types themselves: a duplicated Q_DECLARE_METATYPE is a
compile error (redefinition of QMetaTypeId<T>).

Co-Authored-By: Claude Opus 5 <[email protected]>

M  +0    -2    src/base/QXmppDataForm.h
M  +0    -2    src/base/QXmppGeolocItem.h
M  +0    -2    src/base/QXmppIq.h
M  +0    -2    src/base/QXmppJingleData.h
M  +0    -1    src/base/QXmppMessage.h
M  +0    -3    src/base/QXmppMixConfigItem.h
M  +0    -2    src/base/QXmppMixInfoItem.h
M  +0    -2    src/base/QXmppMixIq.h
M  +0    -2    src/base/QXmppMixParticipantItem.h
M  +0    -2    src/base/QXmppMucForms.h
M  +0    -3    src/base/QXmppPubSubAffiliation.h
M  +0    -2    src/base/QXmppPubSubBaseItem.h
M  +0    -2    src/base/QXmppPubSubEvent.h
M  +0    -3    src/base/QXmppPubSubNodeConfig.h
M  +0    -1    src/base/QXmppPubSubSubscribeOptions.h
M  +0    -3    src/base/QXmppPubSubSubscription.h
M  +0    -3    src/base/QXmppStanza.h
M  +0    -2    src/base/QXmppUserTuneItem.h
M  +0    -2    src/base/Stream.h
M  +0    -2    src/base/compat/QXmppStartTlsPacket.h
M  +0    -2    src/client/QXmppCall.h
M  +0    -2    src/client/QXmppCallInviteManager.h
M  +0    -4    src/client/QXmppFileSharingManager.h
M  +0    -2    src/client/QXmppHttpUploadManager.h
M  +0    -2    src/client/QXmppJingleMessageInitiationManager.h
M  +0    -4    src/client/QXmppPepBookmarkManager.h
M  +0    -2    src/client/QXmppTrustSecurityPolicy.h
M  +0    -2    tests/tst_QXmppBitsOfBinary.cpp
M  +0    -2    tests/tst_QXmppEntityTimeManager.cpp
M  +0    -1    tests/tst_QXmppPubSub.cpp
M  +0    -3    tests/tst_QXmppPubSubEvent.cpp
M  +0    -3    tests/tst_QXmppPubSubManager.cpp
M  +0    -2    tests/tst_QXmppStream.cpp
M  +0    -2    tests/tst_QXmppTrustManager.cpp
M  +0    -2    tests/tst_QXmppUtils.cpp
M  +0    -2    tests/tst_QXmppVCardManager.cpp
M  +0    -2    tests/tst_QXmppVersionManager.cpp

https://invent.kde.org/libraries/qxmpp/-/commit/7dc9552d449eaca1b924b2ee153b2ff43a1a19e5

diff --git a/src/base/QXmppDataForm.h b/src/base/QXmppDataForm.h
index 5c1413f4..fbc35bbc 100644
--- a/src/base/QXmppDataForm.h
+++ b/src/base/QXmppDataForm.h
@@ -245,6 +245,4 @@ private:
     QSharedDataPointer<QXmppDataFormPrivate> d;
 };
 
-Q_DECLARE_METATYPE(QXmppDataForm)
-
 #endif
diff --git a/src/base/QXmppGeolocItem.h b/src/base/QXmppGeolocItem.h
index 10a76003..3bad4876 100644
--- a/src/base/QXmppGeolocItem.h
+++ b/src/base/QXmppGeolocItem.h
@@ -51,6 +51,4 @@ private:
     QSharedDataPointer<QXmppGeolocItemPrivate> d;
 };
 
-Q_DECLARE_METATYPE(QXmppGeolocItem)
-
 #endif  // QXMPPGEOLOCITEM_H
diff --git a/src/base/QXmppIq.h b/src/base/QXmppIq.h
index 7e78e632..214c159d 100644
--- a/src/base/QXmppIq.h
+++ b/src/base/QXmppIq.h
@@ -64,6 +64,4 @@ private:
     QSharedDataPointer<QXmppIqPrivate> d;
 };
 
-Q_DECLARE_METATYPE(QXmppIq::Type)
-
 #endif  // QXMPPIQ_H
diff --git a/src/base/QXmppJingleData.h b/src/base/QXmppJingleData.h
index a1d11e5e..e9a56eec 100644
--- a/src/base/QXmppJingleData.h
+++ b/src/base/QXmppJingleData.h
@@ -762,6 +762,4 @@ private:
     QSharedDataPointer<QXmppCallInviteElementPrivate> d;
 };
 
-Q_DECLARE_METATYPE(QXmppJingleReason::RtpErrorCondition)
-
 #endif
diff --git a/src/base/QXmppMessage.h b/src/base/QXmppMessage.h
index e29baf55..b561263f 100644
--- a/src/base/QXmppMessage.h
+++ b/src/base/QXmppMessage.h
@@ -405,6 +405,5 @@ private:
 };
 
 Q_DECLARE_OPERATORS_FOR_FLAGS(QXmppMessage::Hints)
-Q_DECLARE_METATYPE(QXmppMessage)
 
 #endif  // QXMPPMESSAGE_H
diff --git a/src/base/QXmppMixConfigItem.h b/src/base/QXmppMixConfigItem.h
index 65e0ed24..e092aaad 100644
--- a/src/base/QXmppMixConfigItem.h
+++ b/src/base/QXmppMixConfigItem.h
@@ -124,7 +124,4 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QXmppMixConfigItem::Nodes)
 // Scoped enums (enum class) are not implicitly converted to int.
 inline auto qHash(QXmppMixConfigItem::Node key, uint seed) noexcept { return qHash(std::underlying_type_t<QXmppMixConfigItem::Node>(key), seed); }
 
-Q_DECLARE_METATYPE(QXmppMixConfigItem)
-Q_DECLARE_METATYPE(QXmppMixConfigItem::Nodes)
-
 #endif  // QXMPPMIXCONFIGITEM_H
diff --git a/src/base/QXmppMixInfoItem.h b/src/base/QXmppMixInfoItem.h
index ba5fd8e1..e849a5d0 100644
--- a/src/base/QXmppMixInfoItem.h
+++ b/src/base/QXmppMixInfoItem.h
@@ -44,6 +44,4 @@ private:
     QSharedDataPointer<QXmppMixInfoItemPrivate> d;
 };
 
-Q_DECLARE_METATYPE(QXmppMixInfoItem)
-
 #endif  // QXMPPMIXINFOITEM_H
diff --git a/src/base/QXmppMixIq.h b/src/base/QXmppMixIq.h
index 0e889924..b5451605 100644
--- a/src/base/QXmppMixIq.h
+++ b/src/base/QXmppMixIq.h
@@ -91,6 +91,4 @@ private:
     QSharedDataPointer<QXmppMixIqPrivate> d;
 };
 
-Q_DECLARE_METATYPE(QXmppMixIq::Type)
-
 #endif  // QXMPPMIXIQ_H
diff --git a/src/base/QXmppMixParticipantItem.h b/src/base/QXmppMixParticipantItem.h
index f011c53e..fbb1c043 100644
--- a/src/base/QXmppMixParticipantItem.h
+++ b/src/base/QXmppMixParticipantItem.h
@@ -36,6 +36,4 @@ private:
     QSharedDataPointer<QXmppMixParticipantItemPrivate> d;
 };
 
-Q_DECLARE_METATYPE(QXmppMixParticipantItem)
-
 #endif  // QXMPPMIXPARTICIPANTITEM_H
diff --git a/src/base/QXmppMucForms.h b/src/base/QXmppMucForms.h
index f36c22b6..c060d6fc 100644
--- a/src/base/QXmppMucForms.h
+++ b/src/base/QXmppMucForms.h
@@ -89,8 +89,6 @@ private:
     QSharedDataPointer<QXmppMucVoiceRequestPrivate> d;
 };
 
-Q_DECLARE_METATYPE(QXmppMucVoiceRequest)
-
 struct QXmppMucRoomConfigPrivate;
 
 ///
diff --git a/src/base/QXmppPubSubAffiliation.h b/src/base/QXmppPubSubAffiliation.h
index 28a1a6ca..d4bfda1e 100644
--- a/src/base/QXmppPubSubAffiliation.h
+++ b/src/base/QXmppPubSubAffiliation.h
@@ -65,7 +65,4 @@ private:
     QSharedDataPointer<QXmppPubSubAffiliationPrivate> d;
 };
 
-Q_DECLARE_METATYPE(QXmppPubSubAffiliation)
-Q_DECLARE_METATYPE(QXmppPubSubAffiliation::Affiliation)
-
 #endif  // QXMPPPUBSUBAFFILIATION_H
diff --git a/src/base/QXmppPubSubBaseItem.h b/src/base/QXmppPubSubBaseItem.h
index fca8c213..57ca92dc 100644
--- a/src/base/QXmppPubSubBaseItem.h
+++ b/src/base/QXmppPubSubBaseItem.h
@@ -83,6 +83,4 @@ bool QXmppPubSubBaseItem::isItem(const QDomElement &element, PayloadChecker isPa
     return true;
 }
 
-Q_DECLARE_METATYPE(QXmppPubSubBaseItem)
-
 #endif  // QXMPPPUBSUBBASEITEM_H
diff --git a/src/base/QXmppPubSubEvent.h b/src/base/QXmppPubSubEvent.h
index eff2d222..c1b60eb9 100644
--- a/src/base/QXmppPubSubEvent.h
+++ b/src/base/QXmppPubSubEvent.h
@@ -152,6 +152,4 @@ void QXmppPubSubEvent<T>::serializeItems(QXmlStreamWriter *writer) const
     }
 }
 
-Q_DECLARE_METATYPE(QXmppPubSubEventBase::EventType)
-
 #endif  // QXMPPPUBSUBEVENT_H
diff --git a/src/base/QXmppPubSubNodeConfig.h b/src/base/QXmppPubSubNodeConfig.h
index e2689821..bb3368c9 100644
--- a/src/base/QXmppPubSubNodeConfig.h
+++ b/src/base/QXmppPubSubNodeConfig.h
@@ -252,7 +252,4 @@ protected:
     QString formType() const override;
 };
 
-Q_DECLARE_METATYPE(QXmppPubSubNodeConfig);
-Q_DECLARE_METATYPE(QXmppPubSubPublishOptions);
-
 #endif  // QXMPPPUBSUBNODECONFIG_H
diff --git a/src/base/QXmppPubSubSubscribeOptions.h b/src/base/QXmppPubSubSubscribeOptions.h
index 9a94a364..4ffbdafb 100644
--- a/src/base/QXmppPubSubSubscribeOptions.h
+++ b/src/base/QXmppPubSubSubscribeOptions.h
@@ -108,6 +108,5 @@ private:
 };
 
 Q_DECLARE_OPERATORS_FOR_FLAGS(QXmppPubSubSubscribeOptions::PresenceStates)
-Q_DECLARE_METATYPE(QXmppPubSubSubscribeOptions)
 
 #endif  // QXMPPPUBSUBSUBSCRIBEOPTIONS_H
diff --git a/src/base/QXmppPubSubSubscription.h b/src/base/QXmppPubSubSubscription.h
index 8563b34e..f6a82d21 100644
--- a/src/base/QXmppPubSubSubscription.h
+++ b/src/base/QXmppPubSubSubscription.h
@@ -93,8 +93,5 @@ private:
 };
 
 Q_DECLARE_TYPEINFO(QXmppPubSubSubscription, Q_MOVABLE_TYPE);
-Q_DECLARE_METATYPE(QXmppPubSubSubscription)
-Q_DECLARE_METATYPE(QXmppPubSubSubscription::State)
-Q_DECLARE_METATYPE(QXmppPubSubSubscription::ConfigurationSupport)
 
 #endif  // QXMPPPUBSUBSUBSCRIPTION_H
diff --git a/src/base/QXmppStanza.h b/src/base/QXmppStanza.h
index be0e9b9c..c03419dc 100644
--- a/src/base/QXmppStanza.h
+++ b/src/base/QXmppStanza.h
@@ -294,7 +294,4 @@ private:
     friend class TestClient;
 };
 
-Q_DECLARE_METATYPE(QXmppStanza::Error::Type);
-Q_DECLARE_METATYPE(QXmppStanza::Error::Condition);
-
 #endif  // QXMPPSTANZA_H
diff --git a/src/base/QXmppUserTuneItem.h b/src/base/QXmppUserTuneItem.h
index 8e1a92d5..31218876 100644
--- a/src/base/QXmppUserTuneItem.h
+++ b/src/base/QXmppUserTuneItem.h
@@ -86,6 +86,4 @@ private:
     QSharedDataPointer<QXmppTuneItemPrivate> d;
 };
 
-Q_DECLARE_METATYPE(QXmppTuneItem)
-
 #endif  // QXMPPUSERTUNEITEM_H
diff --git a/src/base/Stream.h b/src/base/Stream.h
index 39b7acf3..0e8074fe 100644
--- a/src/base/Stream.h
+++ b/src/base/Stream.h
@@ -65,6 +65,4 @@ struct CsiInactive {
 
 }  // namespace QXmpp::Private
 
-Q_DECLARE_METATYPE(QXmpp::Private::StreamOpen)
-
 #endif  // STREAM_H
diff --git a/src/base/compat/QXmppStartTlsPacket.h b/src/base/compat/QXmppStartTlsPacket.h
index 23c06bf6..e6a7dbf5 100644
--- a/src/base/compat/QXmppStartTlsPacket.h
+++ b/src/base/compat/QXmppStartTlsPacket.h
@@ -54,6 +54,4 @@ private:
     Type m_type;
 };
 
-Q_DECLARE_METATYPE(QXmppStartTlsPacket::Type);
-
 #endif  // QXMPPSTARTTLSPACKET_H
diff --git a/src/client/QXmppCall.h b/src/client/QXmppCall.h
index 1cbaf0e8..9711091e 100644
--- a/src/client/QXmppCall.h
+++ b/src/client/QXmppCall.h
@@ -128,6 +128,4 @@ private:
     friend class QXmppCallPrivate;
 };
 
-Q_DECLARE_METATYPE(QXmppCall::State)
-
 #endif
diff --git a/src/client/QXmppCallInviteManager.h b/src/client/QXmppCallInviteManager.h
index 491fcff6..68a71195 100644
--- a/src/client/QXmppCallInviteManager.h
+++ b/src/client/QXmppCallInviteManager.h
@@ -119,7 +119,5 @@ private:
     friend class QXmppCallInvitePrivate;
     friend class tst_QXmppCallInviteManager;
 };
-Q_DECLARE_METATYPE(QXmppCallInvite::Result)
-Q_DECLARE_METATYPE(std::shared_ptr<QXmppCallInvite>)
 
 #endif  // QXMPPJINGLEMESSAGEINITIATIONMANAGER_H
diff --git a/src/client/QXmppFileSharingManager.h b/src/client/QXmppFileSharingManager.h
index 7481e6f6..ff4dd479 100644
--- a/src/client/QXmppFileSharingManager.h
+++ b/src/client/QXmppFileSharingManager.h
@@ -67,8 +67,6 @@ private:
     friend class QXmppFileSharingManager;
 };
 
-Q_DECLARE_METATYPE(QXmppFileUpload::Result);
-
 class QXMPP_EXPORT QXmppFileDownload : public QObject
 {
     Q_OBJECT
@@ -124,8 +122,6 @@ private:
     friend class QXmppFileSharingManager;
 };
 
-Q_DECLARE_METATYPE(QXmppFileDownload::Result);
-
 class QXMPP_EXPORT QXmppFileSharingManager : public QXmppClientExtension
 {
 public:
diff --git a/src/client/QXmppHttpUploadManager.h b/src/client/QXmppHttpUploadManager.h
index 21d9ef4f..340429a7 100644
--- a/src/client/QXmppHttpUploadManager.h
+++ b/src/client/QXmppHttpUploadManager.h
@@ -70,8 +70,6 @@ private:
     std::unique_ptr<QXmppHttpUploadPrivate> d;
 };
 
-Q_DECLARE_METATYPE(QXmppHttpUpload::Result);
-
 class QXMPP_EXPORT QXmppHttpUploadManager : public QXmppClientExtension
 {
     Q_OBJECT
diff --git a/src/client/QXmppJingleMessageInitiationManager.h b/src/client/QXmppJingleMessageInitiationManager.h
index fcadaccd..a8d7c6fe 100644
--- a/src/client/QXmppJingleMessageInitiationManager.h
+++ b/src/client/QXmppJingleMessageInitiationManager.h
@@ -143,6 +143,4 @@ private:
     friend class tst_QXmppJingleMessageInitiationManager;
 };
 
-Q_DECLARE_METATYPE(QXmppJingleMessageInitiation::Result)
-
 #endif  // QXMPPJINGLEMESSAGEINITIATIONMANAGER_H
diff --git a/src/client/QXmppPepBookmarkManager.h b/src/client/QXmppPepBookmarkManager.h
index 8ebcc580..79dd0d79 100644
--- a/src/client/QXmppPepBookmarkManager.h
+++ b/src/client/QXmppPepBookmarkManager.h
@@ -56,8 +56,6 @@ private:
     QSharedDataPointer<QXmppMucBookmarkPrivate> d;
 };
 
-Q_DECLARE_METATYPE(QXmppMucBookmark);
-
 struct QXmppPepBookmarkManagerPrivate;
 
 /*!
@@ -139,6 +137,4 @@ private:
     const std::unique_ptr<QXmppPepBookmarkManagerPrivate> d;
 };
 
-Q_DECLARE_METATYPE(QXmppPepBookmarkManager::BookmarkChange);
-
 #endif  // QXMPPPEPBOOKMARKMANAGER_H
diff --git a/src/client/QXmppTrustSecurityPolicy.h b/src/client/QXmppTrustSecurityPolicy.h
index c639858c..8cd5ba6a 100644
--- a/src/client/QXmppTrustSecurityPolicy.h
+++ b/src/client/QXmppTrustSecurityPolicy.h
@@ -27,6 +27,4 @@ enum TrustSecurityPolicy {
 
 }  // namespace QXmpp
 
-Q_DECLARE_METATYPE(QXmpp::TrustSecurityPolicy)
-
 #endif  // QXMPPTRUSTSECURITYPOLICY_H
diff --git a/tests/tst_QXmppBitsOfBinary.cpp b/tests/tst_QXmppBitsOfBinary.cpp
index 4f9b6fea..03e62544 100644
--- a/tests/tst_QXmppBitsOfBinary.cpp
+++ b/tests/tst_QXmppBitsOfBinary.cpp
@@ -11,8 +11,6 @@
 #include <QMimeType>
 #include <QObject>
 
-Q_DECLARE_METATYPE(QCryptographicHash::Algorithm)
-
 class tst_QXmppBitsOfBinary : public QObject
 {
     Q_OBJECT
diff --git a/tests/tst_QXmppEntityTimeManager.cpp b/tests/tst_QXmppEntityTimeManager.cpp
index e6bcd8a2..d1bb2546 100644
--- a/tests/tst_QXmppEntityTimeManager.cpp
+++ b/tests/tst_QXmppEntityTimeManager.cpp
@@ -7,8 +7,6 @@
 
 #include "TestClient.h"
 
-Q_DECLARE_METATYPE(QXmppEntityTimeIq)
-
 class tst_QXmppEntityTimeManager : public QObject
 {
     Q_OBJECT
diff --git a/tests/tst_QXmppPubSub.cpp b/tests/tst_QXmppPubSub.cpp
index c12f9b47..3ae6b027 100644
--- a/tests/tst_QXmppPubSub.cpp
+++ b/tests/tst_QXmppPubSub.cpp
@@ -21,7 +21,6 @@ enum PubSubNamespace {
     PubSubEventNs,
     PubSubOwnerNs,
 };
-Q_DECLARE_METATYPE(PubSubNamespace)
 
 template<typename T>
 void parsePacket(T &packet, const QByteArray &xml, PubSubNamespace xmlns)
diff --git a/tests/tst_QXmppPubSubEvent.cpp b/tests/tst_QXmppPubSubEvent.cpp
index 6905ad41..2026d7da 100644
--- a/tests/tst_QXmppPubSubEvent.cpp
+++ b/tests/tst_QXmppPubSubEvent.cpp
@@ -11,9 +11,6 @@
 
 #include <QObject>
 
-Q_DECLARE_METATYPE(std::optional<QXmppPubSubSubscription>)
-Q_DECLARE_METATYPE(std::optional<QXmppDataForm>)
-
 class tst_QXmppPubSubEvent : public QObject
 {
     Q_OBJECT
diff --git a/tests/tst_QXmppPubSubManager.cpp b/tests/tst_QXmppPubSubManager.cpp
index 85479df8..a3995863 100644
--- a/tests/tst_QXmppPubSubManager.cpp
+++ b/tests/tst_QXmppPubSubManager.cpp
@@ -20,9 +20,6 @@
 
 #include <QObject>
 
-Q_DECLARE_METATYPE(QXmpp::Private::PubSubIq<>);
-Q_DECLARE_METATYPE(std::optional<QXmppPubSubPublishOptions>);
-
 using PSManager = QXmppPubSubManager;
 using Affiliation = QXmppPubSubAffiliation;
 using AffiliationType = QXmppPubSubAffiliation::Affiliation;
diff --git a/tests/tst_QXmppStream.cpp b/tests/tst_QXmppStream.cpp
index 2f6beb5d..e6a080bf 100644
--- a/tests/tst_QXmppStream.cpp
+++ b/tests/tst_QXmppStream.cpp
@@ -16,8 +16,6 @@
 using namespace QXmpp;
 using namespace QXmpp::Private;
 
-Q_DECLARE_METATYPE(QDomElement)
-
 class tst_QXmppStream : public QObject
 {
     Q_OBJECT
diff --git a/tests/tst_QXmppTrustManager.cpp b/tests/tst_QXmppTrustManager.cpp
index 6c38b0be..242b9c5a 100644
--- a/tests/tst_QXmppTrustManager.cpp
+++ b/tests/tst_QXmppTrustManager.cpp
@@ -19,8 +19,6 @@
 
 using namespace QXmpp;
 
-Q_DECLARE_METATYPE(QList<QXmppTrustMessageKeyOwner>)
-
 // time period (in ms) to wait for a trust message that should not be sent.
 constexpr int UNEXPECTED_TRUST_MESSAGE_WAITING_TIMEOUT = 1000;
 
diff --git a/tests/tst_QXmppUtils.cpp b/tests/tst_QXmppUtils.cpp
index ece03b4f..3673aeca 100644
--- a/tests/tst_QXmppUtils.cpp
+++ b/tests/tst_QXmppUtils.cpp
@@ -17,8 +17,6 @@
 using namespace QXmpp;
 using namespace QXmpp::Private;
 
-Q_DECLARE_METATYPE(QXmpp::HashAlgorithm);
-
 class tst_QXmppUtils : public QObject
 {
     Q_OBJECT
diff --git a/tests/tst_QXmppVCardManager.cpp b/tests/tst_QXmppVCardManager.cpp
index 8bced912..62c33619 100644
--- a/tests/tst_QXmppVCardManager.cpp
+++ b/tests/tst_QXmppVCardManager.cpp
@@ -15,8 +15,6 @@
 
 #include <QObject>
 
-Q_DECLARE_METATYPE(QXmppVCardIq);
-
 using namespace QXmpp;
 
 class tst_QXmppVCardManager : public QObject
diff --git a/tests/tst_QXmppVersionManager.cpp b/tests/tst_QXmppVersionManager.cpp
index 425fe456..e3e91d05 100644
--- a/tests/tst_QXmppVersionManager.cpp
+++ b/tests/tst_QXmppVersionManager.cpp
@@ -7,8 +7,6 @@
 
 #include "TestClient.h"
 
-Q_DECLARE_METATYPE(QXmppVersionIq);
-
 class tst_QXmppVersionManager : public QObject
 {
     Q_OBJECT