From 222575aaa68ba1696da84e7dd53708959f8b611b Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Tue, 6 Jul 2021 22:01:33 +0200 Subject: QXmppClient: Add addNewExtension() --- src/client/QXmppClient.cpp | 10 ++++++++++ src/client/QXmppClient.h | 8 ++++++++ 2 files changed, 18 insertions(+) (limited to 'src/client') diff --git a/src/client/QXmppClient.cpp b/src/client/QXmppClient.cpp index 0e37a4f9..e1808445 100644 --- a/src/client/QXmppClient.cpp +++ b/src/client/QXmppClient.cpp @@ -195,6 +195,16 @@ QXmppClient::~QXmppClient() delete d; } +/// +/// \fn QXmppClient::addNewExtension() +/// +/// Creates a new extension and adds it to the client. +/// +/// \returns the newly created extension +/// +/// \since QXmpp 1.5 +/// + /// Registers a new \a extension with the client. /// /// \param extension diff --git a/src/client/QXmppClient.h b/src/client/QXmppClient.h index 3337c5b1..a6502305 100644 --- a/src/client/QXmppClient.h +++ b/src/client/QXmppClient.h @@ -140,6 +140,14 @@ public: ~QXmppClient() override; bool addExtension(QXmppClientExtension *extension); + template + T *addNewExtension(Args... args) + { + // it's impossible that addExtension() returns false: ext is a new object + auto *ext = new T(args...); + addExtension(ext); + return ext; + } bool insertExtension(int index, QXmppClientExtension *extension); bool removeExtension(QXmppClientExtension *extension); -- cgit v1.2.3