Skip to content

Commit 8e4e532

Browse files
Added option to set current directory setup as the default (#9754)
1 parent fa481b0 commit 8e4e532

File tree

4 files changed

+29
-28
lines changed

4 files changed

+29
-28
lines changed

src/Files.Uwp/Strings/en-US/Resources.resw

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2792,4 +2792,7 @@ We use App Center to track which settings are being used, find bugs, and fix cra
27922792
<data name="ReviewFilesContent" xml:space="preserve">
27932793
<value>Would you like to review Files?</value>
27942794
</data>
2795+
<data name="SetAsDefault" xml:space="preserve">
2796+
<value>Set as default</value>
2797+
</data>
27952798
</root>

src/Files.Uwp/ViewModels/FolderSettingsViewModel.cs

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public FolderSettingsViewModel()
4242

4343
ChangeGroupOptionCommand = new RelayCommand<GroupOption>(ChangeGroupOption);
4444
}
45-
public FolderSettingsViewModel(FolderLayoutModes modeOverride) : this()
45+
public FolderSettingsViewModel(FolderLayoutModes modeOverride) : this()
4646
=> (rootLayoutMode, LayoutPreference.IsAdaptiveLayoutOverridden) = (modeOverride, true);
4747

4848
private readonly FolderLayoutModes? rootLayoutMode;
@@ -391,30 +391,12 @@ private static LayoutPreferences GetDefaultLayoutPreferences(string folderPath)
391391
if (folderPath == CommonPaths.DownloadsPath)
392392
{
393393
// Default for downloads folder is to group by date created
394-
return new LayoutPreferences
395-
{
396-
LayoutMode = userSettingsService.LayoutSettingsService.DefaultLayoutMode,
397-
GridViewSize = userSettingsService.LayoutSettingsService.DefaultGridViewSize,
398-
DirectorySortOption = userSettingsService.LayoutSettingsService.DefaultDirectorySortOption,
399-
DirectorySortDirection = userSettingsService.LayoutSettingsService.DefaultDirectorySortDirection,
400-
SortDirectoriesAlongsideFiles = userSettingsService.LayoutSettingsService.DefaultSortDirectoriesAlongsideFiles,
401-
ColumnsViewModel = new ColumnsViewModel(),
402-
DirectoryGroupOption = GroupOption.DateCreated,
403-
};
394+
return new LayoutPreferences() { DirectoryGroupOption = GroupOption.DateCreated };
404395
}
405396
else if (LibraryHelper.IsLibraryPath(folderPath))
406397
{
407398
// Default for libraries is to group by folder path
408-
return new LayoutPreferences
409-
{
410-
LayoutMode = userSettingsService.LayoutSettingsService.DefaultLayoutMode,
411-
GridViewSize = userSettingsService.LayoutSettingsService.DefaultGridViewSize,
412-
DirectorySortOption = userSettingsService.LayoutSettingsService.DefaultDirectorySortOption,
413-
DirectorySortDirection = userSettingsService.LayoutSettingsService.DefaultDirectorySortDirection,
414-
SortDirectoriesAlongsideFiles = userSettingsService.LayoutSettingsService.DefaultSortDirectoriesAlongsideFiles,
415-
ColumnsViewModel = new ColumnsViewModel(),
416-
DirectoryGroupOption = GroupOption.FolderPath,
417-
};
399+
return new LayoutPreferences() { DirectoryGroupOption = GroupOption.FolderPath };
418400
}
419401
else
420402
{
@@ -553,5 +535,16 @@ public void OnDefaultPreferencesChanged(string folderPath, string settingsName)
553535
break;
554536
}
555537
}
538+
539+
public void SetDefaultLayoutPreferences(ColumnsViewModel columns)
540+
{
541+
IUserSettingsService userSettingsService = Ioc.Default.GetService<IUserSettingsService>();
542+
userSettingsService.LayoutSettingsService.ShowDateColumn = !columns.DateModifiedColumn.UserCollapsed;
543+
userSettingsService.LayoutSettingsService.ShowDateCreatedColumn = !columns.DateCreatedColumn.UserCollapsed;
544+
userSettingsService.LayoutSettingsService.ShowTypeColumn = !columns.ItemTypeColumn.UserCollapsed;
545+
userSettingsService.LayoutSettingsService.ShowSizeColumn = !columns.SizeColumn.UserCollapsed;
546+
userSettingsService.LayoutSettingsService.ShowFileTagColumn = !columns.TagColumn.UserCollapsed;
547+
//TODO: save column sizes
548+
}
556549
}
557550
}

src/Files.Uwp/Views/LayoutModes/DetailsLayoutBrowser.xaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,8 @@
289289
IsChecked="{x:Bind ColumnsViewModel.SizeColumn.UserCollapsed, Mode=TwoWay, Converter={StaticResource BoolNegationConverter}}"
290290
Text="{helpers:ResourceString Name=DetailsViewHeaderFlyout_ShowItemSize/Text}"
291291
Visibility="{x:Bind ColumnsViewModel.SizeColumn.IsHidden, Mode=OneWay, Converter={StaticResource NegatedBoolToVisibilityConverter}}" />
292+
<MenuFlyoutSeparator />
293+
<MenuFlyoutItem Click="SetDetailsColumnsAsDefault_Click" Text="{helpers:ResourceString Name=SetAsDefault}" />
292294
</MenuFlyout>
293295
</Grid.ContextFlyout>
294296
<Grid.ColumnDefinitions>

src/Files.Uwp/Views/LayoutModes/DetailsLayoutBrowser.xaml.cs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ protected override void OnNavigatedTo(NavigationEventArgs eventArgs)
193193

194194
if (ParentShellPageInstance.InstanceViewModel?.FolderSettings.ColumnsViewModel != null)
195195
{
196-
ColumnsViewModel = ParentShellPageInstance.InstanceViewModel.FolderSettings.ColumnsViewModel;
196+
ColumnsViewModel = FolderSettings.ColumnsViewModel;
197197
}
198198

199199
currentIconSize = FolderSettings.GetIconSize();
@@ -286,8 +286,6 @@ private void FilesystemViewModel_PageTypeUpdated(object sender, PageTypeUpdatedE
286286
ColumnsViewModel.StatusColumn.Show();
287287
}
288288

289-
ColumnsViewModel.TagColumn.Show();
290-
291289
UpdateSortIndicator();
292290
}
293291

@@ -644,7 +642,7 @@ private void GridSplitter_PreviewKeyUp(object sender, KeyRoutedEventArgs e)
644642
if (e.Key == VirtualKey.Left || e.Key == VirtualKey.Right)
645643
{
646644
UpdateColumnLayout();
647-
ParentShellPageInstance.InstanceViewModel.FolderSettings.ColumnsViewModel = ColumnsViewModel;
645+
FolderSettings.ColumnsViewModel = ColumnsViewModel;
648646
}
649647
}
650648

@@ -670,12 +668,12 @@ private void RootGrid_SizeChanged(object sender, SizeChangedEventArgs e)
670668

671669
private void GridSplitter_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
672670
{
673-
ParentShellPageInstance.InstanceViewModel.FolderSettings.ColumnsViewModel = ColumnsViewModel;
671+
FolderSettings.ColumnsViewModel = ColumnsViewModel;
674672
}
675673

676674
private void ToggleMenuFlyoutItem_Click(object sender, RoutedEventArgs e)
677675
{
678-
ParentShellPageInstance.InstanceViewModel.FolderSettings.ColumnsViewModel = ColumnsViewModel;
676+
FolderSettings.ColumnsViewModel = ColumnsViewModel;
679677
}
680678

681679
private void GridSplitter_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
@@ -754,7 +752,7 @@ private void ResizeColumnToFit(int columnToResize)
754752
column.UserLength = new GridLength(maxFitLength, GridUnitType.Pixel);
755753
}
756754

757-
ParentShellPageInstance.InstanceViewModel.FolderSettings.ColumnsViewModel = ColumnsViewModel;
755+
FolderSettings.ColumnsViewModel = ColumnsViewModel;
758756
}
759757

760758
private double MeasureTextColumnEstimate(int columnIndex, int measureItemsCount, int maxItemLength)
@@ -804,5 +802,10 @@ private void RefreshContainer_RefreshRequested(RefreshContainer sender, RefreshR
804802
{
805803
ParentShellPageInstance.FilesystemViewModel.RefreshItems(ParentShellPageInstance.FilesystemViewModel.WorkingDirectory, SetSelectedItemsOnNavigation);
806804
}
805+
806+
private void SetDetailsColumnsAsDefault_Click(object sender, RoutedEventArgs e)
807+
{
808+
FolderSettings.SetDefaultLayoutPreferences(ColumnsViewModel);
809+
}
807810
}
808811
}

0 commit comments

Comments
 (0)