diff options
| author | Linus Jahn <lnj@kaidan.im> | 2022-05-13 19:11:36 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-05-20 17:27:13 +0200 |
| commit | f10146c7b298ef0cb04794452b0807c2b7a6910d (patch) | |
| tree | b71abf03aa3eb7bc7ea37263455f1eb283dc8f6b /src | |
| parent | 86b85f4270f30f72856f6fa185162499abbe2c80 (diff) | |
| download | qxmpp-f10146c7b298ef0cb04794452b0807c2b7a6910d.tar.gz | |
PubSubEventManager: Inherit from EventHandler
EventManager now provides the interface from EventHandler, inherits from
ClientExtension and provides a utility pubSub() getter.
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/QXmppPubSubEventManager.h | 7 | ||||
| -rw-r--r-- | src/client/QXmppPubSubManager.cpp | 4 |
2 files changed, 4 insertions, 7 deletions
diff --git a/src/client/QXmppPubSubEventManager.h b/src/client/QXmppPubSubEventManager.h index 9f508249..d5a4e4e7 100644 --- a/src/client/QXmppPubSubEventManager.h +++ b/src/client/QXmppPubSubEventManager.h @@ -7,10 +7,11 @@ #include "QXmppClient.h" #include "QXmppClientExtension.h" +#include "QXmppPubSubEventHandler.h" class QXmppPubSubManager; -class QXMPP_EXPORT QXmppPubSubEventManager : public QXmppClientExtension +class QXMPP_EXPORT QXmppPubSubEventManager : public QXmppClientExtension, public QXmppPubSubEventHandler { Q_OBJECT @@ -21,14 +22,10 @@ public: } protected: - virtual bool handlePubSubEvent(const QDomElement &element, const QString &pubSubService, const QString &nodeName) = 0; - inline QXmppPubSubManager *pubSub() { return client()->findExtension<QXmppPubSubManager>(); } - - friend class QXmppPubSubManager; }; #endif diff --git a/src/client/QXmppPubSubManager.cpp b/src/client/QXmppPubSubManager.cpp index a9697812..2b7b4d71 100644 --- a/src/client/QXmppPubSubManager.cpp +++ b/src/client/QXmppPubSubManager.cpp @@ -990,8 +990,8 @@ bool QXmppPubSubManager::handleStanza(const QDomElement &element) const auto extensions = client()->extensions(); for (auto *extension : extensions) { - if (auto *eventManager = qobject_cast<QXmppPubSubEventManager *>(extension)) { - if (eventManager->handlePubSubEvent(element, service, node)) { + if (auto *eventHandler = dynamic_cast<QXmppPubSubEventHandler *>(extension)) { + if (eventHandler->handlePubSubEvent(element, service, node)) { return true; } } |
