From 7f1255bd4d940a47d5997c02c4ab2312ca5ca5e1 Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Thu, 3 Mar 2022 17:04:06 +0100 Subject: UserTuneManager: Make use of PEP helpers --- src/client/QXmppUserTuneManager.cpp | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) (limited to 'src/client/QXmppUserTuneManager.cpp') diff --git a/src/client/QXmppUserTuneManager.cpp b/src/client/QXmppUserTuneManager.cpp index 25b4e011..7dcc7f7a 100644 --- a/src/client/QXmppUserTuneManager.cpp +++ b/src/client/QXmppUserTuneManager.cpp @@ -5,9 +5,7 @@ #include "QXmppUserTuneManager.h" #include "QXmppConstants_p.h" -#include "QXmppFutureUtils_p.h" -#include "QXmppPubSubEvent.h" -#include "QXmppPubSubManager.h" +#include "QXmppPep_p.h" #include "QXmppTuneItem.h" using namespace QXmpp::Private; @@ -75,20 +73,7 @@ QStringList QXmppUserTuneManager::discoveryFeatures() const auto QXmppUserTuneManager::request(const QString &jid) -> QFuture { - using PubSub = QXmppPubSubManager; - using Error = QXmppStanza::Error; - - return chain(pubSub()->requestItems(jid, ns_tune), this, - [](PubSub::ItemsResult &&result) -> GetResult { - if (const auto items = std::get_if>(&result)) { - if (!items->items.isEmpty()) { - return items->items.takeFirst(); - } - return Error(Error::Cancel, Error::ItemNotFound, QStringLiteral("No tune available.")); - } else { - return std::get(result); - } - }); + return Pep::request(pubSub(), jid, ns_tune, this); } /// @@ -105,19 +90,6 @@ auto QXmppUserTuneManager::publish(const QXmppTuneItem &item) /// \cond bool QXmppUserTuneManager::handlePubSubEvent(const QDomElement &element, const QString &pubSubService, const QString &nodeName) { - if (nodeName == ns_tune && QXmppPubSubEvent::isPubSubEvent(element)) { - QXmppPubSubEvent event; - event.parse(element); - - if (event.eventType() == QXmppPubSubEventBase::Items) { - if (!event.items().isEmpty()) { - emit itemReceived(pubSubService, event.items().constFirst()); - } else { - emit itemReceived(pubSubService, {}); - } - return true; - } - } - return false; + return Pep::handlePubSubEvent(element, pubSubService, nodeName, ns_tune, this, &QXmppUserTuneManager::itemReceived); } /// \endcond -- cgit v1.2.3