From f10146c7b298ef0cb04794452b0807c2b7a6910d Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Fri, 13 May 2022 19:11:36 +0200 Subject: PubSubEventManager: Inherit from EventHandler EventManager now provides the interface from EventHandler, inherits from ClientExtension and provides a utility pubSub() getter. --- src/client/QXmppPubSubEventManager.h | 7 ++----- src/client/QXmppPubSubManager.cpp | 4 ++-- 2 files changed, 4 insertions(+), 7 deletions(-) (limited to 'src/client') 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(); } - - 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(extension)) { - if (eventManager->handlePubSubEvent(element, service, node)) { + if (auto *eventHandler = dynamic_cast(extension)) { + if (eventHandler->handlePubSubEvent(element, service, node)) { return true; } } -- cgit v1.2.3