From 476553b5ef6b41912f7b10b29814e30678bd6563 Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Thu, 3 Mar 2022 16:40:38 +0100 Subject: UserTuneManager: Refactoring --- src/client/QXmppUserTuneManager.cpp | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) (limited to 'src/client/QXmppUserTuneManager.cpp') diff --git a/src/client/QXmppUserTuneManager.cpp b/src/client/QXmppUserTuneManager.cpp index 6cde4e90..25b4e011 100644 --- a/src/client/QXmppUserTuneManager.cpp +++ b/src/client/QXmppUserTuneManager.cpp @@ -32,7 +32,13 @@ using namespace QXmpp::Private; /// /// -/// \typedef QXmppUserTuneManager::TuneResult +/// \typedef QXmppUserTuneManager::Item +/// +/// Used pubsub item type. +/// + +/// +/// \typedef QXmppUserTuneManager::GetResult /// /// Contains the User Tune information or an error. /// @@ -44,9 +50,9 @@ using namespace QXmpp::Private; /// /// -/// \fn QXmppUserTuneManager::userTuneChanged() +/// \fn QXmppUserTuneManager::itemReceived() /// -/// Emitted whenever an \xep{0118, User Tune} items event arrives. +/// Emitted whenever a \xep{0118, User Tune} items event arrives. /// QXmppUserTuneManager::QXmppUserTuneManager() @@ -66,20 +72,21 @@ QStringList QXmppUserTuneManager::discoveryFeatures() const /// /// \param jid The account JID to request. /// -QFuture QXmppUserTuneManager::request(const QString &jid) +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) -> TuneResult { - if (const auto items = std::get_if>(&result)) { + 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.constFirst(); + return items->items.takeFirst(); } return Error(Error::Cancel, Error::ItemNotFound, QStringLiteral("No tune available.")); } else { - return std::get(result); + return std::get(result); } }); } @@ -89,7 +96,8 @@ QFuture QXmppUserTuneManager::request(const QS /// /// \param item The User Tune item to be published. /// -QFuture QXmppUserTuneManager::publish(const QXmppTuneItem &item) +auto QXmppUserTuneManager::publish(const QXmppTuneItem &item) + -> QFuture { return pubSub()->publishPepItem(ns_tune, item); } @@ -97,15 +105,15 @@ QFuture QXmppUserTuneManager::publish(const /// \cond bool QXmppUserTuneManager::handlePubSubEvent(const QDomElement &element, const QString &pubSubService, const QString &nodeName) { - if (nodeName == ns_tune && QXmppPubSubEvent::isPubSubEvent(element)) { - QXmppPubSubEvent event; + if (nodeName == ns_tune && QXmppPubSubEvent::isPubSubEvent(element)) { + QXmppPubSubEvent event; event.parse(element); if (event.eventType() == QXmppPubSubEventBase::Items) { if (!event.items().isEmpty()) { - emit userTuneChanged(pubSubService, event.items().constFirst()); + emit itemReceived(pubSubService, event.items().constFirst()); } else { - emit userTuneChanged(pubSubService, {}); + emit itemReceived(pubSubService, {}); } return true; } -- cgit v1.2.3