From 6070b41c9b23aae896d5800ba0d3b7c7b9301c27 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Wed, 16 Jun 2021 19:03:36 +0300 Subject: [PATCH] Properly add torrent with new tags First, an attempt is made to add new tags to the Session. Closes #15105. --- src/base/bittorrent/session.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index db0e169e3..508d6c207 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -838,17 +838,13 @@ bool Session::hasTag(const QString &tag) const bool Session::addTag(const QString &tag) { - if (!isValidTag(tag)) + if (!isValidTag(tag) || hasTag(tag)) return false; - if (!hasTag(tag)) - { - m_tags.insert(tag); - m_storedTags = m_tags.values(); - emit tagAdded(tag); - return true; - } - return false; + m_tags.insert(tag); + m_storedTags = m_tags.values(); + emit tagAdded(tag); + return true; } bool Session::removeTag(const QString &tag) @@ -2056,7 +2052,6 @@ LoadTorrentParams Session::initLoadTorrentParams(const AddTorrentParams &addTorr LoadTorrentParams loadTorrentParams; loadTorrentParams.name = addTorrentParams.name; - loadTorrentParams.tags = addTorrentParams.tags; loadTorrentParams.firstLastPiecePriority = addTorrentParams.firstLastPiecePriority; loadTorrentParams.hasSeedStatus = addTorrentParams.skipChecking; // do not react on 'torrent_finished_alert' when skipping loadTorrentParams.contentLayout = addTorrentParams.contentLayout.value_or(torrentContentLayout()); @@ -2081,6 +2076,12 @@ LoadTorrentParams Session::initLoadTorrentParams(const AddTorrentParams &addTorr else loadTorrentParams.category = addTorrentParams.category; + for (const QString &tag : addTorrentParams.tags) + { + if (hasTag(tag) || addTag(tag)) + loadTorrentParams.tags.insert(tag); + } + return loadTorrentParams; }