aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppUserTuneManager.cpp
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-03-03 16:40:38 +0100
committerLinus Jahn <lnj@kaidan.im>2022-03-03 18:09:24 +0100
commit476553b5ef6b41912f7b10b29814e30678bd6563 (patch)
tree8e8c4ffa92cea95e49832d2a142755d8e58874ec /src/client/QXmppUserTuneManager.cpp
parent0f12fdbecb361e80d87fa1f00b98a4fc8ab55996 (diff)
downloadqxmpp-476553b5ef6b41912f7b10b29814e30678bd6563.tar.gz
UserTuneManager: Refactoring
Diffstat (limited to 'src/client/QXmppUserTuneManager.cpp')
-rw-r--r--src/client/QXmppUserTuneManager.cpp36
1 files changed, 22 insertions, 14 deletions
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::TuneResult> QXmppUserTuneManager::request(const QString &jid)
+auto QXmppUserTuneManager::request(const QString &jid)
+ -> QFuture<GetResult>
{
using PubSub = QXmppPubSubManager;
using Error = QXmppStanza::Error;
- return chain<TuneResult>(pubSub()->requestItems<QXmppTuneItem>(jid, ns_tune), this,
- [](PubSub::ItemsResult<QXmppTuneItem> &&result) -> TuneResult {
- if (const auto items = std::get_if<PubSub::Items<QXmppTuneItem>>(&result)) {
+ return chain<GetResult>(pubSub()->requestItems<Item>(jid, ns_tune), this,
+ [](PubSub::ItemsResult<Item> &&result) -> GetResult {
+ if (const auto items = std::get_if<PubSub::Items<Item>>(&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<QXmppStanza::Error>(result);
+ return std::get<Error>(result);
}
});
}
@@ -89,7 +96,8 @@ QFuture<QXmppUserTuneManager::TuneResult> QXmppUserTuneManager::request(const QS
///
/// \param item The User Tune item to be published.
///
-QFuture<QXmppUserTuneManager::PublishResult> QXmppUserTuneManager::publish(const QXmppTuneItem &item)
+auto QXmppUserTuneManager::publish(const QXmppTuneItem &item)
+ -> QFuture<PublishResult>
{
return pubSub()->publishPepItem(ns_tune, item);
}
@@ -97,15 +105,15 @@ QFuture<QXmppUserTuneManager::PublishResult> QXmppUserTuneManager::publish(const
/// \cond
bool QXmppUserTuneManager::handlePubSubEvent(const QDomElement &element, const QString &pubSubService, const QString &nodeName)
{
- if (nodeName == ns_tune && QXmppPubSubEvent<QXmppTuneItem>::isPubSubEvent(element)) {
- QXmppPubSubEvent<QXmppTuneItem> event;
+ if (nodeName == ns_tune && QXmppPubSubEvent<Item>::isPubSubEvent(element)) {
+ QXmppPubSubEvent<Item> 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;
}