aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-09-10 09:37:50 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-09-10 09:37:50 +0000
commit966067c17e939bb4b03fee41ecaa468a3f836c4e (patch)
treeb7c073bfe878abdde2ae1235da07ac0fa6f48a0e /src
parente22485a28dc22989e15c3ca10b5dad82c4844b8f (diff)
downloadqxmpp-966067c17e939bb4b03fee41ecaa468a3f836c4e.tar.gz
add QXmppClient::findExtension<T>() to find a given client extension
Diffstat (limited to 'src')
-rw-r--r--src/QXmppClient.h16
1 files changed, 16 insertions, 0 deletions
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<QXmppClientExtension*> extensions();
+ /// Returns the extension than can be cast to type T, or 0 if there is
+ /// no such extension.
+ ///
+ template<typename T>
+ T findExtension()
+ {
+ QList<QXmppClientExtension*> list = extensions();
+ for (int i = 0; i < list.size(); ++i)
+ {
+ T extension = qobject_cast<T>(list.at(i));
+ if (extension)
+ return extension;
+ }
+ return 0;
+ }
+
void connectToServer(const QXmppConfiguration&,
const QXmppPresence& initialPresence =
QXmppPresence());