diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/QXmppClient.h | 16 |
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()); |
