From ceb903ebcfdd4104eab4053a6e24ef5a67082c2f Mon Sep 17 00:00:00 2001 From: ze0s <43699394+zze0s@users.noreply.github.com> Date: Sat, 18 Jan 2025 10:36:11 +0000 Subject: [PATCH] refactor: move logic from core to torrentscontroller --- src/base/bittorrent/sessionimpl.h | 1 - src/base/bittorrent/torrent.h | 1 - src/base/bittorrent/torrentimpl.cpp | 16 ---------------- src/base/bittorrent/torrentimpl.h | 1 - src/webui/api/torrentscontroller.cpp | 10 +++++++++- 5 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/base/bittorrent/sessionimpl.h b/src/base/bittorrent/sessionimpl.h index c59e0c0b1..8876b9a31 100644 --- a/src/base/bittorrent/sessionimpl.h +++ b/src/base/bittorrent/sessionimpl.h @@ -49,7 +49,6 @@ #include "base/path.h" #include "base/settingvalue.h" -#include "base/tagset.h" #include "base/utils/thread.h" #include "addtorrentparams.h" #include "cachestatus.h" diff --git a/src/base/bittorrent/torrent.h b/src/base/bittorrent/torrent.h index c28bbd516..d2eefbabf 100644 --- a/src/base/bittorrent/torrent.h +++ b/src/base/bittorrent/torrent.h @@ -209,7 +209,6 @@ namespace BitTorrent virtual TagSet tags() const = 0; virtual bool hasTag(const Tag &tag) const = 0; virtual bool addTag(const Tag &tag) = 0; - virtual bool setTags(const TagSet &newTags) = 0; virtual bool removeTag(const Tag &tag) = 0; virtual void removeAllTags() = 0; diff --git a/src/base/bittorrent/torrentimpl.cpp b/src/base/bittorrent/torrentimpl.cpp index a5692e5f8..fc6f70f77 100644 --- a/src/base/bittorrent/torrentimpl.cpp +++ b/src/base/bittorrent/torrentimpl.cpp @@ -60,7 +60,6 @@ #include "base/global.h" #include "base/logger.h" #include "base/preferences.h" -#include "base/tagset.h" #include "base/types.h" #include "base/utils/fs.h" #include "base/utils/io.h" @@ -938,21 +937,6 @@ bool TorrentImpl::addTag(const Tag &tag) return true; } -bool TorrentImpl::setTags(const TagSet &newTags) -{ - // Identify tags to add - for (const Tag &tag : newTags) - if (!hasTag(tag)) - addTag(tag); - - // Identify tags to remove - for (const Tag &tag : asConst(tags())) - if (!newTags.contains(tag)) - removeTag(tag); - - return true; -} - bool TorrentImpl::removeTag(const Tag &tag) { if (m_tags.remove(tag)) diff --git a/src/base/bittorrent/torrentimpl.h b/src/base/bittorrent/torrentimpl.h index 7966255a5..5c54b2d00 100644 --- a/src/base/bittorrent/torrentimpl.h +++ b/src/base/bittorrent/torrentimpl.h @@ -131,7 +131,6 @@ namespace BitTorrent TagSet tags() const override; bool hasTag(const Tag &tag) const override; bool addTag(const Tag &tag) override; - bool setTags(const TagSet &newTags) override; bool removeTag(const Tag &tag) override; void removeAllTags() override; diff --git a/src/webui/api/torrentscontroller.cpp b/src/webui/api/torrentscontroller.cpp index d9cf602df..e6879edd4 100644 --- a/src/webui/api/torrentscontroller.cpp +++ b/src/webui/api/torrentscontroller.cpp @@ -1490,7 +1490,15 @@ void TorrentsController::setTagsAction() // Apply the new tags to the selected torrents applyToTorrents(hashes, [&newTags](BitTorrent::Torrent *const torrent) { - torrent->setTags(newTags); + // Identify tags to add + for (const Tag &tag : newTags) + if (!torrent->hasTag(tag)) + torrent->addTag(tag); + + // Identify tags to remove + for (const Tag &tag : asConst(torrent->tags())) + if (!newTags.contains(tag)) + torrent->removeTag(tag); }); }