|
|
@@ -189,11 +189,19 @@ namespace InABox.Avalonia
|
|
|
|
|
|
public bool FiltersVisible => AvailableFilters.Any();
|
|
|
|
|
|
+ private bool FilterChanged = false;
|
|
|
+
|
|
|
public string? SelectedFilterName => AvailableFilters.FirstOrDefault(x => x.Selected)?.Name;
|
|
|
|
|
|
public void SelectFilter(String? name)
|
|
|
{
|
|
|
+ var currentSelected = AvailableFilters.FirstOrDefault(x => x.Selected);
|
|
|
var definition = AvailableFilters.FirstOrDefault(x => String.Equals(x.Name, name));
|
|
|
+ if(definition is null && name is null)
|
|
|
+ {
|
|
|
+ definition = AvailableFilters.FirstOrDefault(x => x.Name == "All");
|
|
|
+ }
|
|
|
+ FilterChanged = FilterChanged || currentSelected != definition;
|
|
|
foreach (var availableFilter in AvailableFilters)
|
|
|
availableFilter.Selected = definition == availableFilter;
|
|
|
OnPropertyChanged(nameof(AvailableFilters));
|
|
|
@@ -230,6 +238,7 @@ namespace InABox.Avalonia
|
|
|
|
|
|
private void DoRefresh(bool force)
|
|
|
{
|
|
|
+ force = force || FilterChanged;
|
|
|
// force = force || Host.Status == ConnectionStatus.Connected;
|
|
|
|
|
|
var selectedIDs = SelectedItems.Select(x => x.ID).ToHashSet();
|
|
|
@@ -516,6 +525,7 @@ namespace InABox.Avalonia
|
|
|
AfterLoad(_query);
|
|
|
Search();
|
|
|
LastUpdated = DateTime.Now;
|
|
|
+ FilterChanged = false;
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|