aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-05-13 19:11:36 +0200
committerLinus Jahn <lnj@kaidan.im>2022-05-20 17:27:13 +0200
commitf10146c7b298ef0cb04794452b0807c2b7a6910d (patch)
treeb71abf03aa3eb7bc7ea37263455f1eb283dc8f6b /src/client
parent86b85f4270f30f72856f6fa185162499abbe2c80 (diff)
downloadqxmpp-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/client')
-rw-r--r--src/client/QXmppPubSubEventManager.h7
-rw-r--r--src/client/QXmppPubSubManager.cpp4
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;
}
}