Skip to content

Commit 0322f79

Browse files
authored
Merge pull request #710 from drowe67/ms-reporter-filter-fix-2
Revert #704 and use alternate solution.
2 parents cd4e3a6 + c56c328 commit 0322f79

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

USER_MANUAL.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -896,7 +896,7 @@ LDPC | Low Density Parity Check Codes - a family of powerful FEC codes
896896
* Fix typo in cardinal directions list. (PR #688)
897897
* Shrink size of callsign list to prevent it from disappearing off the screen. (PR #692)
898898
* Clean up memory leak in FreeDV Reporter window. (PR #705)
899-
* Fix issue causing delayed filter updates when going from tracking band to frequency. (PR #704)
899+
* Fix issue causing delayed filter updates when going from tracking band to frequency. (PR #710)
900900
* Fix hanging issue with footswitch configured. (PR #707)
901901
2. Enhancements:
902902
* Add additional error reporting in case of PortAudio failures. (PR #695)

src/gui/dialogs/freedv_reporter.cpp

+19-10
Original file line numberDiff line numberDiff line change
@@ -765,7 +765,12 @@ void FreeDVReporterDialog::OnFilterTrackingEnable(wxCommandEvent& event)
765765
freq =
766766
(FilterFrequency)wxGetApp().appConfiguration.reportingConfiguration.freedvReporterBandFilter.get();
767767
}
768-
768+
769+
// Force refresh of filters since the user expects this to happen immediately after changing a
770+
// filter setting.
771+
filteredFrequency_ = 0;
772+
currentBandFilter_ = BAND_ALL;
773+
769774
setBandFilter(freq);
770775
}
771776

@@ -1044,18 +1049,22 @@ void FreeDVReporterDialog::refreshQSYButtonState()
10441049

10451050
void FreeDVReporterDialog::setBandFilter(FilterFrequency freq)
10461051
{
1047-
filteredFrequency_ = wxGetApp().appConfiguration.reportingConfiguration.reportingFrequency;
1048-
currentBandFilter_ = freq;
1052+
if (filteredFrequency_ != wxGetApp().appConfiguration.reportingConfiguration.reportingFrequency ||
1053+
currentBandFilter_ != freq)
1054+
{
1055+
filteredFrequency_ = wxGetApp().appConfiguration.reportingConfiguration.reportingFrequency;
1056+
currentBandFilter_ = freq;
10491057

1050-
// Update displayed list based on new filter criteria.
1051-
clearAllEntries_(false);
1058+
// Update displayed list based on new filter criteria.
1059+
clearAllEntries_(false);
10521060

1053-
std::map<int, int> colResizeList;
1054-
for (auto& kvp : allReporterData_)
1055-
{
1056-
addOrUpdateListIfNotFiltered_(kvp.second, colResizeList);
1061+
std::map<int, int> colResizeList;
1062+
for (auto& kvp : allReporterData_)
1063+
{
1064+
addOrUpdateListIfNotFiltered_(kvp.second, colResizeList);
1065+
}
1066+
resizeChangedColumns_(colResizeList);
10571067
}
1058-
resizeChangedColumns_(colResizeList);
10591068
}
10601069

10611070
void FreeDVReporterDialog::sortColumn_(int col)

0 commit comments

Comments
 (0)