mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
Fix size slider not working correctly with rounding
This commit is contained in:
parent
95ff0dac6d
commit
58d0fdc9c3
@ -72,8 +72,6 @@ namespace Wabbajack
|
|||||||
|
|
||||||
[Reactive] public List<GameTypeEntry> GameTypeEntries { get; set; }
|
[Reactive] public List<GameTypeEntry> GameTypeEntries { get; set; }
|
||||||
private bool _filteringOnGame;
|
private bool _filteringOnGame;
|
||||||
private bool _filteringOnMinSize;
|
|
||||||
private bool _filteringOnMaxSize;
|
|
||||||
private GameTypeEntry _selectedGameTypeEntry = null;
|
private GameTypeEntry _selectedGameTypeEntry = null;
|
||||||
|
|
||||||
public GameTypeEntry SelectedGameTypeEntry
|
public GameTypeEntry SelectedGameTypeEntry
|
||||||
@ -181,16 +179,20 @@ namespace Wabbajack
|
|||||||
.Select(v => v.Value)
|
.Select(v => v.Value)
|
||||||
.Select<double, Func<ModListMetadataVM, bool>>(minSize =>
|
.Select<double, Func<ModListMetadataVM, bool>>(minSize =>
|
||||||
{
|
{
|
||||||
_filteringOnMinSize = true;
|
return item =>
|
||||||
return item => item.Metadata.DownloadMetadata.TotalSize > (minSize * Math.Pow(1024, 3));
|
{
|
||||||
|
return item.Metadata.DownloadMetadata.TotalSize >= minSize;
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
var maxSizeFilter = this.ObservableForProperty(vm => vm.MaxSizeFilter)
|
var maxSizeFilter = this.ObservableForProperty(vm => vm.MaxSizeFilter)
|
||||||
.Select(v => v.Value)
|
.Select(v => v.Value)
|
||||||
.Select<double, Func<ModListMetadataVM, bool>>(maxSize =>
|
.Select<double, Func<ModListMetadataVM, bool>>(maxSize =>
|
||||||
{
|
{
|
||||||
_filteringOnMaxSize = true;
|
return item =>
|
||||||
return item => item.Metadata.DownloadMetadata.TotalSize < (maxSize * Math.Pow(1024, 3));
|
{
|
||||||
|
return item.Metadata.DownloadMetadata.TotalSize <= maxSize;
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@ -222,16 +224,8 @@ namespace Wabbajack
|
|||||||
var nextEntry = GameTypeEntries.FirstOrDefault(gte => previousGameType == gte.GameIdentifier);
|
var nextEntry = GameTypeEntries.FirstOrDefault(gte => previousGameType == gte.GameIdentifier);
|
||||||
SelectedGameTypeEntry = nextEntry != default ? nextEntry : GameTypeEntries.FirstOrDefault(gte => GameType == ALL_GAME_IDENTIFIER);
|
SelectedGameTypeEntry = nextEntry != default ? nextEntry : GameTypeEntries.FirstOrDefault(gte => GameType == ALL_GAME_IDENTIFIER);
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
if (!_filteringOnMinSize)
|
|
||||||
MinSizeModlist = ModLists.MinBy(ml => ml.Metadata.DownloadMetadata.TotalSize);
|
|
||||||
if(!_filteringOnMaxSize)
|
|
||||||
MaxSizeModlist = ModLists.MaxBy(ml => ml.Metadata.DownloadMetadata.TotalSize);
|
|
||||||
*/
|
|
||||||
|
|
||||||
_filteringOnGame = false;
|
_filteringOnGame = false;
|
||||||
_filteringOnMinSize = false;
|
|
||||||
_filteringOnMaxSize = false;
|
|
||||||
})
|
})
|
||||||
.DisposeWith(disposables);
|
.DisposeWith(disposables);
|
||||||
});
|
});
|
||||||
|
@ -15,24 +15,19 @@ namespace Wabbajack
|
|||||||
|
|
||||||
this.WhenActivated(dispose =>
|
this.WhenActivated(dispose =>
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
this.WhenAny(x => x.ViewModel.BackCommand)
|
|
||||||
.BindToStrict(this, x => x.BackButton.Command)
|
|
||||||
.DisposeWith(dispose);
|
|
||||||
*/
|
|
||||||
this.WhenAny(x => x.ViewModel.ModLists)
|
this.WhenAny(x => x.ViewModel.ModLists)
|
||||||
.BindToStrict(this, x => x.ModListGalleryControl.ItemsSource)
|
.BindToStrict(this, x => x.ModListGalleryControl.ItemsSource)
|
||||||
.DisposeWith(dispose);
|
.DisposeWith(dispose);
|
||||||
|
|
||||||
this.WhenAny(x => x.ViewModel.MinSizeModlist)
|
this.WhenAny(x => x.ViewModel.MinSizeModlist)
|
||||||
.Where(x => x != null)
|
.Where(x => x != null)
|
||||||
.Select(modlist => Math.Round(modlist.Metadata.DownloadMetadata.TotalSize / Math.Pow(1024, 3), 1))
|
.Select(x => x.Metadata.DownloadMetadata.TotalSize / Math.Pow(1024, 3))
|
||||||
.BindToStrict(this, x => x.SizeSliderFilter.Minimum)
|
.BindToStrict(this, x => x.SizeSliderFilter.Minimum)
|
||||||
.DisposeWith(dispose);
|
.DisposeWith(dispose);
|
||||||
|
|
||||||
this.WhenAny(x => x.ViewModel.MaxSizeModlist)
|
this.WhenAny(x => x.ViewModel.MaxSizeModlist)
|
||||||
.Where(x => x != null)
|
.Where(x => x != null)
|
||||||
.Select(modlist => Math.Round(modlist.Metadata.DownloadMetadata.TotalSize / Math.Pow(1024, 3), 1))
|
.Select(x => x.Metadata.DownloadMetadata.TotalSize / Math.Pow(1024, 3))
|
||||||
.BindToStrict(this, x => x.SizeSliderFilter.Maximum)
|
.BindToStrict(this, x => x.SizeSliderFilter.Maximum)
|
||||||
.DisposeWith(dispose);
|
.DisposeWith(dispose);
|
||||||
|
|
||||||
@ -59,14 +54,6 @@ namespace Wabbajack
|
|||||||
.DisposeWith(dispose);
|
.DisposeWith(dispose);
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
this.WhenAnyValue(x => x.ViewModel.Search)
|
|
||||||
.Throttle(TimeSpan.FromSeconds(0.25), RxApp.TaskpoolScheduler)
|
|
||||||
.Select(x => x?.Trim())
|
|
||||||
.BindToStrict(this, x => x.SearchBox.Text)
|
|
||||||
.DisposeWith(dispose);
|
|
||||||
*/
|
|
||||||
|
|
||||||
this.BindStrict(ViewModel, vm => vm.Search, x => x.SearchBox.Text)
|
this.BindStrict(ViewModel, vm => vm.Search, x => x.SearchBox.Text)
|
||||||
.DisposeWith(dispose);
|
.DisposeWith(dispose);
|
||||||
this.BindStrict(ViewModel, vm => vm.OnlyInstalled, x => x.OnlyInstalledCheckbox.IsChecked)
|
this.BindStrict(ViewModel, vm => vm.OnlyInstalled, x => x.OnlyInstalledCheckbox.IsChecked)
|
||||||
@ -75,10 +62,21 @@ namespace Wabbajack
|
|||||||
.DisposeWith(dispose);
|
.DisposeWith(dispose);
|
||||||
this.BindStrict(ViewModel, vm => vm.ShowUnofficialLists, x => x.ShowUnofficialLists.IsChecked)
|
this.BindStrict(ViewModel, vm => vm.ShowUnofficialLists, x => x.ShowUnofficialLists.IsChecked)
|
||||||
.DisposeWith(dispose);
|
.DisposeWith(dispose);
|
||||||
|
|
||||||
|
this.WhenAny(x => x.SizeSliderFilter.LowerValue)
|
||||||
|
.Select(x => x * Math.Pow(1024, 3))
|
||||||
|
.BindToStrict(ViewModel, vm => vm.MinSizeFilter)
|
||||||
|
.DisposeWith(dispose);
|
||||||
|
this.WhenAny(x => x.SizeSliderFilter.UpperValue)
|
||||||
|
.Select(x => x * Math.Pow(1024, 3))
|
||||||
|
.BindToStrict(ViewModel, vm => vm.MaxSizeFilter)
|
||||||
|
.DisposeWith(dispose);
|
||||||
|
/*
|
||||||
this.BindStrict(ViewModel, vm => vm.MinSizeFilter, x => x.SizeSliderFilter.LowerValue)
|
this.BindStrict(ViewModel, vm => vm.MinSizeFilter, x => x.SizeSliderFilter.LowerValue)
|
||||||
.DisposeWith(dispose);
|
.DisposeWith(dispose);
|
||||||
this.BindStrict(ViewModel, vm => vm.MaxSizeFilter, x => x.SizeSliderFilter.UpperValue)
|
this.BindStrict(ViewModel, vm => vm.MaxSizeFilter, x => x.SizeSliderFilter.UpperValue)
|
||||||
.DisposeWith(dispose);
|
.DisposeWith(dispose);
|
||||||
|
*/
|
||||||
|
|
||||||
this.WhenAny(x => x.ViewModel.ClearFiltersCommand)
|
this.WhenAny(x => x.ViewModel.ClearFiltersCommand)
|
||||||
.BindToStrict(this, x => x.ClearFiltersButton.Command)
|
.BindToStrict(this, x => x.ClearFiltersButton.Command)
|
||||||
|
Loading…
Reference in New Issue
Block a user