From 966067c17e939bb4b03fee41ecaa468a3f836c4e Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 10 Sep 2010 09:37:50 +0000 Subject: add QXmppClient::findExtension() to find a given client extension --- src/QXmppClient.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src') diff --git a/src/QXmppClient.h b/src/QXmppClient.h index 0afae063..6683f32f 100644 --- a/src/QXmppClient.h +++ b/src/QXmppClient.h @@ -97,6 +97,22 @@ public: void addExtension(QXmppClientExtension *extension); QList extensions(); + /// Returns the extension than can be cast to type T, or 0 if there is + /// no such extension. + /// + template + T findExtension() + { + QList list = extensions(); + for (int i = 0; i < list.size(); ++i) + { + T extension = qobject_cast(list.at(i)); + if (extension) + return extension; + } + return 0; + } + void connectToServer(const QXmppConfiguration&, const QXmppPresence& initialPresence = QXmppPresence()); -- cgit v1.2.3