diff --git a/src/Files.App/Services/Settings/GeneralSettingsService.cs b/src/Files.App/Services/Settings/GeneralSettingsService.cs index 5e14182b07cb..ac36d7d0c1c4 100644 --- a/src/Files.App/Services/Settings/GeneralSettingsService.cs +++ b/src/Files.App/Services/Settings/GeneralSettingsService.cs @@ -99,7 +99,7 @@ public bool ShowDrivesWidget public bool ShowNetworkLocationsWidget { - get => Get(false); + get => Get(true); set => Set(value); } @@ -129,7 +129,7 @@ public bool DrivesWidgetExpanded public bool NetworkLocationsWidgetExpanded { - get => Get(true); + get => Get(false); set => Set(value); } diff --git a/src/Files.App/ViewModels/HomeViewModel.cs b/src/Files.App/ViewModels/HomeViewModel.cs index 82885ad4d356..05bcde789625 100644 --- a/src/Files.App/ViewModels/HomeViewModel.cs +++ b/src/Files.App/ViewModels/HomeViewModel.cs @@ -29,72 +29,78 @@ public HomeViewModel() // Methods - public void ReloadWidgets() + private void ReloadWidgets() { var reloadQuickAccessWidget = WidgetsHelpers.TryGetWidget(this); var reloadDrivesWidget = WidgetsHelpers.TryGetWidget(this); var reloadNetworkLocationsWidget = WidgetsHelpers.TryGetWidget(this); var reloadFileTagsWidget = WidgetsHelpers.TryGetWidget(this); var reloadRecentFilesWidget = WidgetsHelpers.TryGetWidget(this); + var insertIndex = 0; if (reloadQuickAccessWidget) { var quickAccessWidget = new QuickAccessWidget(); - AddWidget( + InsertWidget( new( quickAccessWidget, quickAccessWidget.ViewModel, (value) => UserSettingsService.GeneralSettingsService.FoldersWidgetExpanded = value, - () => UserSettingsService.GeneralSettingsService.FoldersWidgetExpanded)); + () => UserSettingsService.GeneralSettingsService.FoldersWidgetExpanded), + insertIndex++); } if (reloadDrivesWidget) { var drivesWidget = new DrivesWidget(); - AddWidget( + InsertWidget( new( drivesWidget, drivesWidget.ViewModel, (value) => UserSettingsService.GeneralSettingsService.DrivesWidgetExpanded = value, - () => UserSettingsService.GeneralSettingsService.DrivesWidgetExpanded)); + () => UserSettingsService.GeneralSettingsService.DrivesWidgetExpanded), + insertIndex++); } if (reloadNetworkLocationsWidget) { var networkLocationsWidget = new NetworkLocationsWidget(); - AddWidget( + InsertWidget( new( networkLocationsWidget, networkLocationsWidget.ViewModel, (value) => UserSettingsService.GeneralSettingsService.NetworkLocationsWidgetExpanded = value, - () => UserSettingsService.GeneralSettingsService.NetworkLocationsWidgetExpanded)); + () => UserSettingsService.GeneralSettingsService.NetworkLocationsWidgetExpanded), + insertIndex++); } if (reloadFileTagsWidget) { var fileTagsWidget = new FileTagsWidget(); - AddWidget( + InsertWidget( new( fileTagsWidget, fileTagsWidget.ViewModel, (value) => UserSettingsService.GeneralSettingsService.FileTagsWidgetExpanded = value, - () => UserSettingsService.GeneralSettingsService.FileTagsWidgetExpanded)); + () => UserSettingsService.GeneralSettingsService.FileTagsWidgetExpanded), + insertIndex++); } if (reloadRecentFilesWidget) { var recentFilesWidget = new RecentFilesWidget(); - AddWidget( + InsertWidget( new( recentFilesWidget, recentFilesWidget.ViewModel, (value) => UserSettingsService.GeneralSettingsService.RecentFilesWidgetExpanded = value, - () => UserSettingsService.GeneralSettingsService.RecentFilesWidgetExpanded)); + () => UserSettingsService.GeneralSettingsService.RecentFilesWidgetExpanded), + insertIndex++); } } @@ -109,12 +115,7 @@ public void RefreshWidgetList() ReloadWidgets(); } - public bool AddWidget(WidgetContainerItem widgetModel) - { - return InsertWidget(widgetModel, WidgetItems.Count + 1); - } - - public bool InsertWidget(WidgetContainerItem widgetModel, int atIndex) + private bool InsertWidget(WidgetContainerItem widgetModel, int atIndex) { // The widget must not be null and must implement IWidgetItemModel if (widgetModel.WidgetItemModel is not IWidgetViewModel widgetItemModel) @@ -145,7 +146,7 @@ public bool CanAddWidget(string widgetName) return !(WidgetItems.Any((item) => item.WidgetItemModel.WidgetName == widgetName)); } - public void RemoveWidgetAt(int index) + private void RemoveWidgetAt(int index) { if (index < 0) {