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; };