diff --git a/RetroBar/App.xaml.cs b/RetroBar/App.xaml.cs index 76290d29..3104f1a7 100644 --- a/RetroBar/App.xaml.cs +++ b/RetroBar/App.xaml.cs @@ -1,17 +1,17 @@ -using System; -using ManagedShell; -using RetroBar.Utilities; -using System.Windows; +using ManagedShell; +using ManagedShell.Common.Enums; using ManagedShell.Common.Helpers; +using ManagedShell.Common.Logging; using ManagedShell.Interop; -using Application = System.Windows.Application; -using System.Windows.Interop; -using System.Windows.Media; -using ManagedShell.Common.Enums; +using RetroBar.Utilities; +using System; using System.Diagnostics; -using System.Reflection; -using ManagedShell.Common.Logging; using System.Linq; +using System.Reflection; +using System.Windows; +using System.Windows.Interop; +using System.Windows.Media; +using Application = System.Windows.Application; namespace RetroBar { @@ -89,6 +89,10 @@ private void Settings_PropertyChanged(object sender, System.ComponentModel.Prope { setTaskIconSize(); } + else if (e.PropertyName == nameof(Settings.SortTaskbarByProgramName)) + { + RestartApp(); + } } private void loadTheme() diff --git a/RetroBar/Controls/TaskList.xaml.cs b/RetroBar/Controls/TaskList.xaml.cs index a05ed38d..2843f375 100644 --- a/RetroBar/Controls/TaskList.xaml.cs +++ b/RetroBar/Controls/TaskList.xaml.cs @@ -6,6 +6,8 @@ using System.ComponentModel; using System.Windows; using System.Windows.Controls; +using System.Windows.Data; +using System.Collections; namespace RetroBar.Controls { @@ -21,6 +23,7 @@ public partial class TaskList : UserControl private double TaskButtonLeftMargin; private double TaskButtonRightMargin; private ICollectionView taskbarItems; + private ProgramNameTaskbarSorter programNameTaskbarSorter; public static DependencyProperty ButtonWidthProperty = DependencyProperty.Register(nameof(ButtonWidth), typeof(double), typeof(TaskList), new PropertyMetadata(new double())); @@ -49,6 +52,8 @@ public Taskbar Host public TaskList() { InitializeComponent(); + programNameTaskbarSorter = new ProgramNameTaskbarSorter(); + programNameTaskbarSorter.setSortingList(Settings.Instance.TaskbarSortingFilter); } private void SetStyles() @@ -85,6 +90,14 @@ private void SetTasksCollection() { taskbarItems.CollectionChanged += GroupedWindows_CollectionChanged; taskbarItems.Filter = Tasks_Filter; + + if (taskbarItems is ListCollectionView lcv) + { + /*lcv.CustomSort = (IComparer)(Settings.Instance.SortTaskbarByProgramName + ? programNameTaskbarSorter + : null);*/ + lcv.CustomSort = programNameTaskbarSorter; + } } TasksList.ItemsSource = taskbarItems; diff --git a/RetroBar/PropertiesWindow.xaml b/RetroBar/PropertiesWindow.xaml index 27c78bfe..24d05ac2 100644 --- a/RetroBar/PropertiesWindow.xaml +++ b/RetroBar/PropertiesWindow.xaml @@ -376,6 +376,18 @@ IsChecked="{Binding Source={x:Static Settings:Settings.Instance}, Path=ShowEndTaskButton, UpdateSourceTrigger=PropertyChanged}">