Skip to content

Commit 3fb2618

Browse files
authored
Fix: Fixed an issue where sorting preferences didn't save when changed in the columns layout (#16302)
1 parent 239f4bc commit 3fb2618

File tree

3 files changed

+11
-31
lines changed

3 files changed

+11
-31
lines changed

src/Files.App/Views/Shells/BaseShellPage.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -699,8 +699,14 @@ protected void FilesystemViewModel_ItemLoadStatusChanged(object sender, ItemLoad
699699
}
700700
}
701701

702-
protected virtual void FolderSettings_LayoutPreferencesUpdateRequired(object sender, LayoutPreferenceEventArgs e)
702+
private void FolderSettings_LayoutPreferencesUpdateRequired(object sender, LayoutPreferenceEventArgs e)
703703
{
704+
if (ShellViewModel is null)
705+
return;
706+
707+
LayoutPreferencesManager.SetLayoutPreferencesForPath(ShellViewModel.WorkingDirectory, e.LayoutPreference);
708+
if (e.IsAdaptiveLayoutUpdateRequired)
709+
AdaptiveLayoutHelpers.ApplyAdaptativeLayout(InstanceViewModel.FolderSettings, ShellViewModel.FilesAndFolders.ToList());
704710
}
705711

706712
protected virtual void ViewModel_WorkingDirectoryModified(object sender, WorkingDirectoryModifiedEventArgs e)

src/Files.App/Views/Shells/ColumnShellPage.xaml.cs

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ protected override void ShellPage_NavigationRequested(object sender, PathNavigat
6161

6262
protected override void OnNavigationParamsChanged()
6363
{
64+
if (ColumnParams.NavPathParam is not null)
65+
// This method call is required to load the sorting preferences.
66+
InstanceViewModel.FolderSettings.GetLayoutType(ColumnParams.NavPathParam);
67+
6468
ItemDisplayFrame.Navigate(
6569
typeof(ColumnLayoutPage),
6670
new NavigationArguments()
@@ -183,25 +187,5 @@ public override void NavigateHome()
183187

184188
public override Task WhenIsCurrent()
185189
=> Task.WhenAll(_IsCurrentInstanceTCS.Task, this.FindAscendant<ColumnsLayoutPage>()?.ParentShellPageInstance?.WhenIsCurrent() ?? Task.CompletedTask);
186-
187-
public void RemoveLastPageFromBackStack()
188-
{
189-
ItemDisplayFrame.BackStack.Remove(ItemDisplayFrame.BackStack.Last());
190-
}
191-
192-
public void SubmitSearch(string query)
193-
{
194-
ShellViewModel.CancelSearch();
195-
InstanceViewModel.CurrentSearchQuery = query;
196-
ItemDisplayFrame.Navigate(typeof(ColumnLayoutPage), new NavigationArguments()
197-
{
198-
AssociatedTabInstance = this,
199-
IsSearchResultPage = true,
200-
SearchPathParam = ShellViewModel.WorkingDirectory,
201-
SearchQuery = query,
202-
});
203-
204-
//this.FindAscendant<ColumnViewBrowser>().SetSelectedPathOrNavigate(null, typeof(ColumnViewBase), navArgs);
205-
}
206190
}
207191
}

src/Files.App/Views/Shells/ModernShellPage.xaml.cs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,16 +58,6 @@ private void ModernShellPage_RefreshWidgetsRequested(object sender, EventArgs e)
5858
currentPage.ViewModel.RefreshWidgetList();
5959
}
6060

61-
protected override void FolderSettings_LayoutPreferencesUpdateRequired(object sender, LayoutPreferenceEventArgs e)
62-
{
63-
if (ShellViewModel is null)
64-
return;
65-
66-
LayoutPreferencesManager.SetLayoutPreferencesForPath(ShellViewModel.WorkingDirectory, e.LayoutPreference);
67-
if (e.IsAdaptiveLayoutUpdateRequired)
68-
AdaptiveLayoutHelpers.ApplyAdaptativeLayout(InstanceViewModel.FolderSettings, ShellViewModel.FilesAndFolders.ToList());
69-
}
70-
7161
protected override void OnNavigatedTo(NavigationEventArgs eventArgs)
7262
{
7363
base.OnNavigatedTo(eventArgs);

0 commit comments

Comments
 (0)