From a59238f4ea8aef1f5809d691d3e55cf38e61e585 Mon Sep 17 00:00:00 2001 From: Vladimir Golovnev Date: Sat, 6 Dec 2025 11:02:31 +0300 Subject: [PATCH] Correctly detect whether option is actually changed PR #23574. --- src/gui/transferlistfilterswidget.cpp | 11 ++++++++--- src/gui/transferlistfilterswidget.h | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/gui/transferlistfilterswidget.cpp b/src/gui/transferlistfilterswidget.cpp index 4dd47b0ab..ac88bc2cc 100644 --- a/src/gui/transferlistfilterswidget.cpp +++ b/src/gui/transferlistfilterswidget.cpp @@ -159,12 +159,17 @@ TransferListFiltersWidget::TransferListFiltersWidget(QWidget *parent, TransferLi delete layoutItem; }; - if (pref->useSeparateTrackerStatusFilter()) + m_useSeparateTrackerStatusFilter = pref->useSeparateTrackerStatusFilter(); + if (m_useSeparateTrackerStatusFilter) createTrackerStatusItem(); - connect(pref, &Preferences::changed, this, [pref, createTrackerStatusItem, removeTrackerStatusItem] + connect(pref, &Preferences::changed, this, [this, pref, createTrackerStatusItem, removeTrackerStatusItem] { - if (pref->useSeparateTrackerStatusFilter()) + if (m_useSeparateTrackerStatusFilter == pref->useSeparateTrackerStatusFilter()) + return; + + m_useSeparateTrackerStatusFilter = !m_useSeparateTrackerStatusFilter; + if (m_useSeparateTrackerStatusFilter) createTrackerStatusItem(); else removeTrackerStatusItem(); diff --git a/src/gui/transferlistfilterswidget.h b/src/gui/transferlistfilterswidget.h index 1d69d8e9f..2498cea51 100644 --- a/src/gui/transferlistfilterswidget.h +++ b/src/gui/transferlistfilterswidget.h @@ -53,4 +53,5 @@ public: private: TransferListWidget *m_transferList = nullptr; TrackersFilterWidget *m_trackersFilterWidget = nullptr; + bool m_useSeparateTrackerStatusFilter = false; };