@@ -15,6 +15,56 @@ public sealed partial class HomeViewModel : ObservableObject, IDisposable
1515
1616 public ObservableCollection < WidgetContainerItem > WidgetItems { get ; } = [ ] ;
1717
18+ public bool ShowQuickAccessWidget
19+ {
20+ get => UserSettingsService . GeneralSettingsService . ShowQuickAccessWidget ;
21+ set
22+ {
23+ if ( value != UserSettingsService . GeneralSettingsService . ShowQuickAccessWidget )
24+ UserSettingsService . GeneralSettingsService . ShowQuickAccessWidget = value ;
25+ }
26+ }
27+
28+ public bool ShowDrivesWidget
29+ {
30+ get => UserSettingsService . GeneralSettingsService . ShowDrivesWidget ;
31+ set
32+ {
33+ if ( value != UserSettingsService . GeneralSettingsService . ShowDrivesWidget )
34+ UserSettingsService . GeneralSettingsService . ShowDrivesWidget = value ;
35+ }
36+ }
37+
38+ public bool ShowNetworkLocationsWidget
39+ {
40+ get => UserSettingsService . GeneralSettingsService . ShowNetworkLocationsWidget ;
41+ set
42+ {
43+ if ( value != UserSettingsService . GeneralSettingsService . ShowNetworkLocationsWidget )
44+ UserSettingsService . GeneralSettingsService . ShowNetworkLocationsWidget = value ;
45+ }
46+ }
47+
48+ public bool ShowFileTagsWidget
49+ {
50+ get => UserSettingsService . GeneralSettingsService . ShowFileTagsWidget ;
51+ set
52+ {
53+ if ( value != UserSettingsService . GeneralSettingsService . ShowFileTagsWidget )
54+ UserSettingsService . GeneralSettingsService . ShowFileTagsWidget = value ;
55+ }
56+ }
57+
58+ public bool ShowRecentFilesWidget
59+ {
60+ get => UserSettingsService . GeneralSettingsService . ShowRecentFilesWidget ;
61+ set
62+ {
63+ if ( value != UserSettingsService . GeneralSettingsService . ShowRecentFilesWidget )
64+ UserSettingsService . GeneralSettingsService . ShowRecentFilesWidget = value ;
65+ }
66+ }
67+
1868 // Commands
1969
2070 public ICommand ReloadWidgetsCommand { get ; }
@@ -24,6 +74,30 @@ public sealed partial class HomeViewModel : ObservableObject, IDisposable
2474 public HomeViewModel ( )
2575 {
2676 ReloadWidgetsCommand = new AsyncRelayCommand ( ExecuteReloadWidgetsCommand ) ;
77+
78+ UserSettingsService . GeneralSettingsService . PropertyChanged += GeneralSettingsService_PropertyChanged ;
79+ }
80+
81+ private void GeneralSettingsService_PropertyChanged ( object ? sender , PropertyChangedEventArgs e )
82+ {
83+ switch ( e . PropertyName )
84+ {
85+ case nameof ( IGeneralSettingsService . ShowQuickAccessWidget ) :
86+ OnPropertyChanged ( nameof ( ShowQuickAccessWidget ) ) ;
87+ break ;
88+ case nameof ( IGeneralSettingsService . ShowDrivesWidget ) :
89+ OnPropertyChanged ( nameof ( ShowDrivesWidget ) ) ;
90+ break ;
91+ case nameof ( IGeneralSettingsService . ShowNetworkLocationsWidget ) :
92+ OnPropertyChanged ( nameof ( ShowNetworkLocationsWidget ) ) ;
93+ break ;
94+ case nameof ( IGeneralSettingsService . ShowFileTagsWidget ) :
95+ OnPropertyChanged ( nameof ( ShowFileTagsWidget ) ) ;
96+ break ;
97+ case nameof ( IGeneralSettingsService . ShowRecentFilesWidget ) :
98+ OnPropertyChanged ( nameof ( ShowRecentFilesWidget ) ) ;
99+ break ;
100+ }
27101 }
28102
29103 // Methods
@@ -213,6 +287,8 @@ private async Task ExecuteReloadWidgetsCommand()
213287
214288 public void Dispose ( )
215289 {
290+ UserSettingsService . GeneralSettingsService . PropertyChanged -= GeneralSettingsService_PropertyChanged ;
291+
216292 MainWindow . Instance . DispatcherQueue . EnqueueOrInvokeAsync ( ( ) =>
217293 {
218294 for ( int i = 0 ; i < WidgetItems . Count ; i ++ )
0 commit comments