Skip to content

Feature: Moved widget settings to preferences #10931

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jan 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions src/Files.App/Helpers/WidgetsHelpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ namespace Files.App.Helpers
{
public static class WidgetsHelpers
{
public static TWidget? TryGetWidget<TWidget>(IAppearanceSettingsService appearanceSettingsService, WidgetsListControlViewModel widgetsViewModel, out bool shouldReload, TWidget? defaultValue = default) where TWidget : IWidgetItemModel, new()
public static TWidget? TryGetWidget<TWidget>(IPreferencesSettingsService preferencesSettingsService, WidgetsListControlViewModel widgetsViewModel, out bool shouldReload, TWidget? defaultValue = default) where TWidget : IWidgetItemModel, new()
{
bool canAddWidget = widgetsViewModel.CanAddWidget(typeof(TWidget).Name);
bool isWidgetSettingEnabled = TryGetIsWidgetSettingEnabled<TWidget>(appearanceSettingsService);
bool isWidgetSettingEnabled = TryGetIsWidgetSettingEnabled<TWidget>(preferencesSettingsService);

if (canAddWidget && isWidgetSettingEnabled)
{
Expand All @@ -35,23 +35,23 @@ public static class WidgetsHelpers
return (defaultValue);
}

public static bool TryGetIsWidgetSettingEnabled<TWidget>(IAppearanceSettingsService appearanceSettingsService) where TWidget : IWidgetItemModel
public static bool TryGetIsWidgetSettingEnabled<TWidget>(IPreferencesSettingsService preferencesSettingsService) where TWidget : IWidgetItemModel
{
if (typeof(TWidget) == typeof(FolderWidget))
{
return appearanceSettingsService.ShowFoldersWidget;
return preferencesSettingsService.ShowFoldersWidget;
}
if (typeof(TWidget) == typeof(DrivesWidget))
{
return appearanceSettingsService.ShowDrivesWidget;
return preferencesSettingsService.ShowDrivesWidget;
}
if (typeof(TWidget) == typeof(BundlesWidget))
{
return appearanceSettingsService.ShowBundlesWidget;
return preferencesSettingsService.ShowBundlesWidget;
}
if (typeof(TWidget) == typeof(RecentFilesWidget))
{
return appearanceSettingsService.ShowRecentFilesWidget;
return preferencesSettingsService.ShowRecentFilesWidget;
}

// A custom widget it is - TWidget implements ICustomWidgetItemModel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,53 +80,6 @@ public bool UseCompactStyles
get => Get(false);
set => Set(value);
}
public bool ShowFoldersWidget
{
get => Get(true);
set => Set(value);
}

public bool ShowRecentFilesWidget
{
get => Get(true);
set => Set(value);
}

public bool ShowDrivesWidget
{
get => Get(true);
set => Set(value);
}

public bool ShowBundlesWidget
{
get => Get(false);
set => Set(value);
}

public bool FoldersWidgetExpanded
{
get => Get(true);
set => Set(value);
}

public bool RecentFilesWidgetExpanded
{
get => Get(true);
set => Set(value);
}

public bool DrivesWidgetExpanded
{
get => Get(true);
set => Set(value);
}

public bool BundlesWidgetExpanded
{
get => Get(true);
set => Set(value);
}

/// <inheritdoc/>
public String AppThemeBackgroundColor
Expand Down Expand Up @@ -175,10 +128,6 @@ protected override void RaiseOnSettingChangedEvent(object sender, SettingChanged
case nameof(ShowWslSection):
case nameof(ShowFileTagsSection):
case nameof(UseCompactStyles):
case nameof(ShowFoldersWidget):
case nameof(ShowRecentFilesWidget):
case nameof(ShowDrivesWidget):
case nameof(ShowBundlesWidget):
case nameof(AppThemeBackgroundColor):
case nameof(AppThemeAddressBarBackgroundColor):
case nameof(AppThemeSidebarBackgroundColor):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,55 @@ public bool AlwaysOpenDualPaneInNewTab
get => Get(false);
set => Set(value);
}

public bool ShowFoldersWidget
{
get => Get(true);
set => Set(value);
}

public bool ShowRecentFilesWidget
{
get => Get(true);
set => Set(value);
}

public bool ShowDrivesWidget
{
get => Get(true);
set => Set(value);
}

public bool ShowBundlesWidget
{
get => Get(false);
set => Set(value);
}

public bool FoldersWidgetExpanded
{
get => Get(true);
set => Set(value);
}

public bool RecentFilesWidgetExpanded
{
get => Get(true);
set => Set(value);
}

public bool DrivesWidgetExpanded
{
get => Get(true);
set => Set(value);
}

public bool BundlesWidgetExpanded
{
get => Get(true);
set => Set(value);
}

protected override void RaiseOnSettingChangedEvent(object sender, SettingChangedEventArgs e)
{
switch (e.SettingName)
Expand All @@ -118,6 +167,14 @@ protected override void RaiseOnSettingChangedEvent(object sender, SettingChanged
case nameof(AlwaysOpenNewInstance):
case nameof(IsDualPaneEnabled):
case nameof(AlwaysOpenDualPaneInNewTab):
case nameof(ShowFoldersWidget):
case nameof(ShowRecentFilesWidget):
case nameof(ShowDrivesWidget):
case nameof(ShowBundlesWidget):
case nameof(FoldersWidgetExpanded):
case nameof(RecentFilesWidgetExpanded):
case nameof(BundlesWidgetExpanded):
case nameof(DrivesWidgetExpanded):
Analytics.TrackEvent($"Set {e.SettingName} to {e.NewValue}");
break;
}
Expand Down
12 changes: 0 additions & 12 deletions src/Files.App/Strings/en-US/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -1654,18 +1654,6 @@
<data name="SettingsPreferencesOpenFoldersNewTab.Title" xml:space="preserve">
<value>Open folders in new tab</value>
</data>
<data name="ShowBundlesWidget" xml:space="preserve">
<value>Show Bundles widget</value>
</data>
<data name="ShowDrivesWidget" xml:space="preserve">
<value>Show Drives widget</value>
</data>
<data name="ShowFolderWidget" xml:space="preserve">
<value>Show Folders widget</value>
</data>
<data name="ShowRecentFilesWidget" xml:space="preserve">
<value>Show Recent Files widget</value>
</data>
<data name="SearchUnindexedItemsLabel.Text" xml:space="preserve">
<value>Didn't find what you're looking for?</value>
</data>
Expand Down
2 changes: 1 addition & 1 deletion src/Files.App/UserControls/Widgets/BundlesWidget.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public BundlesViewModel ViewModel

public string WidgetHeader => "Bundles".GetLocalizedResource();

public bool IsWidgetSettingEnabled => UserSettingsService.AppearanceSettingsService.ShowBundlesWidget;
public bool IsWidgetSettingEnabled => UserSettingsService.PreferencesSettingsService.ShowBundlesWidget;

public BundlesWidget()
{
Expand Down
2 changes: 1 addition & 1 deletion src/Files.App/UserControls/Widgets/DrivesWidget.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ public IShellPage AppInstance

public string WidgetHeader => "Drives".GetLocalizedResource();

public bool IsWidgetSettingEnabled => UserSettingsService.AppearanceSettingsService.ShowDrivesWidget;
public bool IsWidgetSettingEnabled => UserSettingsService.PreferencesSettingsService.ShowDrivesWidget;

public DrivesWidget()
{
Expand Down
2 changes: 1 addition & 1 deletion src/Files.App/UserControls/Widgets/FolderWidget.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ public FolderWidget()

public event PropertyChangedEventHandler PropertyChanged;

public bool IsWidgetSettingEnabled => UserSettingsService.AppearanceSettingsService.ShowFoldersWidget;
public bool IsWidgetSettingEnabled => UserSettingsService.PreferencesSettingsService.ShowFoldersWidget;

public ICommand LibraryCardCommand { get; }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public sealed partial class RecentFilesWidget : UserControl, IWidgetItemModel, I

public string WidgetHeader => "RecentFiles".GetLocalizedResource();

public bool IsWidgetSettingEnabled => UserSettingsService.AppearanceSettingsService.ShowRecentFilesWidget;
public bool IsWidgetSettingEnabled => UserSettingsService.PreferencesSettingsService.ShowRecentFilesWidget;

private Visibility emptyRecentsTextVisibility = Visibility.Collapsed;
public Visibility EmptyRecentsTextVisibility
Expand Down
40 changes: 0 additions & 40 deletions src/Files.App/ViewModels/SettingsViewModels/AppearanceViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -218,46 +218,6 @@ public bool ShowFileTagsSection
}
}

public bool ShowFoldersWidget
{
get => UserSettingsService.AppearanceSettingsService.ShowFoldersWidget;
set
{
if (value != UserSettingsService.AppearanceSettingsService.ShowFoldersWidget)
UserSettingsService.AppearanceSettingsService.ShowFoldersWidget = value;
}
}

public bool ShowDrivesWidget
{
get => UserSettingsService.AppearanceSettingsService.ShowDrivesWidget;
set
{
if (value != UserSettingsService.AppearanceSettingsService.ShowDrivesWidget)
UserSettingsService.AppearanceSettingsService.ShowDrivesWidget = value;
}
}

public bool ShowBundlesWidget
{
get => UserSettingsService.AppearanceSettingsService.ShowBundlesWidget;
set
{
if (value != UserSettingsService.AppearanceSettingsService.ShowBundlesWidget)
UserSettingsService.AppearanceSettingsService.ShowBundlesWidget = value;
}
}

public bool ShowRecentFilesWidget
{
get => UserSettingsService.AppearanceSettingsService.ShowRecentFilesWidget;
set
{
if (value != UserSettingsService.AppearanceSettingsService.ShowRecentFilesWidget)
UserSettingsService.AppearanceSettingsService.ShowRecentFilesWidget = value;
}
}

public Color AppThemeBackgroundColor
{
get => ColorHelper.ToColor(UserSettingsService.AppearanceSettingsService.AppThemeBackgroundColor);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,46 @@ public bool SearchUnindexedItems
}
}

public bool ShowFoldersWidget
{
get => UserSettingsService.PreferencesSettingsService.ShowFoldersWidget;
set
{
if (value != UserSettingsService.PreferencesSettingsService.ShowFoldersWidget)
UserSettingsService.PreferencesSettingsService.ShowFoldersWidget = value;
}
}

public bool ShowDrivesWidget
{
get => UserSettingsService.PreferencesSettingsService.ShowDrivesWidget;
set
{
if (value != UserSettingsService.PreferencesSettingsService.ShowDrivesWidget)
UserSettingsService.PreferencesSettingsService.ShowDrivesWidget = value;
}
}

public bool ShowBundlesWidget
{
get => UserSettingsService.PreferencesSettingsService.ShowBundlesWidget;
set
{
if (value != UserSettingsService.PreferencesSettingsService.ShowBundlesWidget)
UserSettingsService.PreferencesSettingsService.ShowBundlesWidget = value;
}
}

public bool ShowRecentFilesWidget
{
get => UserSettingsService.PreferencesSettingsService.ShowRecentFilesWidget;
set
{
if (value != UserSettingsService.PreferencesSettingsService.ShowRecentFilesWidget)
UserSettingsService.PreferencesSettingsService.ShowRecentFilesWidget = value;
}
}

public void Dispose()
{
if (!disposed)
Expand Down
8 changes: 4 additions & 4 deletions src/Files.App/ViewModels/ToolbarViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -386,10 +386,10 @@ private void UserSettingsService_OnSettingChangedEvent(object? sender, SettingCh
{
switch (e.SettingName)
{
case nameof(UserSettingsService.AppearanceSettingsService.ShowFoldersWidget):
case nameof(UserSettingsService.AppearanceSettingsService.ShowDrivesWidget):
case nameof(UserSettingsService.AppearanceSettingsService.ShowBundlesWidget):
case nameof(UserSettingsService.AppearanceSettingsService.ShowRecentFilesWidget):
case nameof(UserSettingsService.PreferencesSettingsService.ShowFoldersWidget): // ToDo: Move this to the widget page, it doesn't belong here.
case nameof(UserSettingsService.PreferencesSettingsService.ShowDrivesWidget):
case nameof(UserSettingsService.PreferencesSettingsService.ShowBundlesWidget):
case nameof(UserSettingsService.PreferencesSettingsService.ShowRecentFilesWidget):
RefreshWidgetsRequested?.Invoke(this, EventArgs.Empty);
OnPropertyChanged(e.SettingName);
break;
Expand Down
37 changes: 0 additions & 37 deletions src/Files.App/Views/SettingsPages/Appearance.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -164,43 +164,6 @@
</local:SettingsBlockControl.ExpandableContent>
</local:SettingsBlockControl>

<local:SettingsBlockControl Title="{helpers:ResourceString Name=Widgets}" HorizontalAlignment="Stretch">
<local:SettingsBlockControl.Icon>
<FontIcon Glyph="&#xF246;" />
</local:SettingsBlockControl.Icon>
<local:SettingsBlockControl.ExpandableContent>
<StackPanel>
<local:SettingsBlockControl Title="{helpers:ResourceString Name=ShowFolderWidget}" HorizontalAlignment="Stretch">
<ToggleSwitch
AutomationProperties.Name="{helpers:ResourceString Name=ShowFolderWidget}"
IsOn="{x:Bind ViewModel.ShowFoldersWidget, Mode=TwoWay}"
Style="{StaticResource RightAlignedToggleSwitchStyle}" />
</local:SettingsBlockControl>

<local:SettingsBlockControl Title="{helpers:ResourceString Name=ShowDrivesWidget}" HorizontalAlignment="Stretch">
<ToggleSwitch
AutomationProperties.Name="{helpers:ResourceString Name=ShowDrivesWidget}"
IsOn="{x:Bind ViewModel.ShowDrivesWidget, Mode=TwoWay}"
Style="{StaticResource RightAlignedToggleSwitchStyle}" />
</local:SettingsBlockControl>

<local:SettingsBlockControl Title="{helpers:ResourceString Name=ShowBundlesWidget}" HorizontalAlignment="Stretch">
<ToggleSwitch
AutomationProperties.Name="{helpers:ResourceString Name=ShowBundlesWidget}"
IsOn="{x:Bind ViewModel.ShowBundlesWidget, Mode=TwoWay}"
Style="{StaticResource RightAlignedToggleSwitchStyle}" />
</local:SettingsBlockControl>

<local:SettingsBlockControl Title="{helpers:ResourceString Name=ShowRecentFilesWidget}" HorizontalAlignment="Stretch">
<ToggleSwitch
AutomationProperties.Name="{helpers:ResourceString Name=ShowRecentFilesWidget}"
IsOn="{x:Bind ViewModel.ShowRecentFilesWidget, Mode=TwoWay}"
Style="{StaticResource RightAlignedToggleSwitchStyle}" />
</local:SettingsBlockControl>
</StackPanel>
</local:SettingsBlockControl.ExpandableContent>
</local:SettingsBlockControl>

<local:SettingsBlockControl Title="{helpers:ResourceString Name=UseCompactStyles}" HorizontalAlignment="Stretch">
<local:SettingsBlockControl.Icon>
<FontIcon Glyph="&#xE14C;" />
Expand Down
Loading