diff --git a/FloatTool/Common/Utils.cs b/FloatTool/Common/Utils.cs index e155bf4..6aeef59 100644 --- a/FloatTool/Common/Utils.cs +++ b/FloatTool/Common/Utils.cs @@ -18,6 +18,7 @@ using Newtonsoft.Json; using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Net.Http; @@ -167,6 +168,17 @@ public static string EscapeLocalization(string input) return input; } + + public static void Sort(this ObservableCollection collection, Comparison comparison) + { + var sortableList = new List(collection); + sortableList.Sort(comparison); + + for (int i = 0; i < sortableList.Count; i++) + { + collection.Move(collection.IndexOf(sortableList[i]), i); + } + } } public class UpdateResult diff --git a/FloatTool/ViewModels/MainViewModel.cs b/FloatTool/ViewModels/MainViewModel.cs index c479df9..0ded581 100644 --- a/FloatTool/ViewModels/MainViewModel.cs +++ b/FloatTool/ViewModels/MainViewModel.cs @@ -141,7 +141,7 @@ public int ThreadCount public string CombinationsLabel { - get { return $"{ParsedCombinations}/{TotalCombinations}"; } + get { return $"{ParsedCombinations:n0}/{TotalCombinations}"; } set { OnPropertyChanged(); } } diff --git a/FloatTool/Views/MainWindow.xaml.cs b/FloatTool/Views/MainWindow.xaml.cs index c460f82..49977cc 100644 --- a/FloatTool/Views/MainWindow.xaml.cs +++ b/FloatTool/Views/MainWindow.xaml.cs @@ -41,14 +41,14 @@ public partial class MainWindow : Window public MainViewModel ViewModel; public Settings Settings; private RPCSettingsPersist RPCSettings = new(); - + private static long PassedCombinations; private static List ThreadPool; private static CancellationTokenSource TokenSource = new(); public CancellationToken CancellationToken; private static SoundPlayer CombinationFoundSound; - public void UpdateRichPresence(bool clear=false) + public void UpdateRichPresence(bool clear = false) { if (clear) { @@ -137,6 +137,9 @@ private void Window_KeyUp(object sender, KeyEventArgs e) var link = $"https://steamcommunity.com/market/listings/730/{ViewModel.FullSkinName}"; Process.Start(new ProcessStartInfo { FileName = link, UseShellExecute = true }); break; + case Key.F5: + ViewModel.FoundCombinations.Sort((a, b) => a.Price.CompareTo(b.Price)); + break; case Key.F12: // TODO: Create a dev tools window break;