From fa1d49add57997be99b39ab75d74ca605819f21b Mon Sep 17 00:00:00 2001 From: a-sum-duma <68896601+a-sum-duma@users.noreply.github.com> Date: Tue, 16 Nov 2021 06:50:11 +0100 Subject: [PATCH] Properly check if file priority changes Current item priority is compared against new checkbox state. I believe the intention was to check if the priority changes before performing further actions. This PR fixes the issue - compare priority against new value that is about to be set rather then the checkbox state. PR #15740. --- src/gui/torrentcontentmodel.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/gui/torrentcontentmodel.cpp b/src/gui/torrentcontentmodel.cpp index d99064eb0..ce3132be3 100644 --- a/src/gui/torrentcontentmodel.cpp +++ b/src/gui/torrentcontentmodel.cpp @@ -284,14 +284,15 @@ bool TorrentContentModel::setData(const QModelIndex &index, const QVariant &valu { auto *item = static_cast(index.internalPointer()); qDebug("setData(%s, %d)", qUtf8Printable(item->name()), value.toInt()); - if (static_cast(item->priority()) != value.toInt()) - { - BitTorrent::DownloadPriority prio = BitTorrent::DownloadPriority::Normal; - if (value.toInt() == Qt::PartiallyChecked) - prio = BitTorrent::DownloadPriority::Mixed; - else if (value.toInt() == Qt::Unchecked) - prio = BitTorrent::DownloadPriority::Ignored; + BitTorrent::DownloadPriority prio = BitTorrent::DownloadPriority::Normal; + if (value.toInt() == Qt::PartiallyChecked) + prio = BitTorrent::DownloadPriority::Mixed; + else if (value.toInt() == Qt::Unchecked) + prio = BitTorrent::DownloadPriority::Ignored; + + if (item->priority() != prio) + { item->setPriority(prio); // Update folders progress in the tree m_rootItem->recalculateProgress();