From 544a55a1895b5a7caf144392b4c0919f41a2cd83 Mon Sep 17 00:00:00 2001 From: 0x5BFA <62196528+0x5bfa@users.noreply.github.com> Date: Wed, 21 May 2025 00:00:37 +0900 Subject: [PATCH 01/13] Init --- src/Files.App.Controls/Omnibar/Omnibar.Properties.cs | 7 +------ src/Files.App.Controls/Omnibar/Omnibar.cs | 1 + 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs b/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs index d4d8ff449cab..b2cc6f94766c 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs @@ -24,12 +24,7 @@ public partial class Omnibar partial void OnCurrentSelectedModeChanged(OmnibarMode? newValue) { - CurrentSelectedModeName = newValue?.ModeName; - } - - partial void OnIsFocusedChanged(bool newValue) - { - //_textBox?.Focus(newValue ? FocusState.Programmatic : FocusState.Unfocused); + // TODO: Invoke ChangeMode and make it internal instead in the future. } } } diff --git a/src/Files.App.Controls/Omnibar/Omnibar.cs b/src/Files.App.Controls/Omnibar/Omnibar.cs index fa780da79423..4fce118e19d1 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.cs @@ -145,6 +145,7 @@ public void ChangeMode(OmnibarMode modeToExpand, bool shouldFocus = false, bool AutoSuggestBoxPadding = new(leftPadding, 0, rightPadding, 0); CurrentSelectedMode = modeToExpand; + CurrentSelectedModeName = modeToExpand.ModeName; _textChangeReason = OmnibarTextChangeReason.ProgrammaticChange; ChangeTextBoxText(CurrentSelectedMode.Text ?? string.Empty); From 6c37433937b5523d2f9c8ec31b0c7b603b2a16ec Mon Sep 17 00:00:00 2001 From: 0x5BFA <62196528+0x5bfa@users.noreply.github.com> Date: Wed, 21 May 2025 11:49:00 +0900 Subject: [PATCH 02/13] Finish up --- .../Omnibar/Omnibar.Properties.cs | 10 ++-- src/Files.App.Controls/Omnibar/Omnibar.cs | 55 ++++++++----------- .../Omnibar/OmnibarMode.Events.cs | 2 +- src/Files.App.Controls/Omnibar/OmnibarMode.cs | 5 +- .../UserControls/NavigationToolbar.xaml.cs | 2 +- 5 files changed, 34 insertions(+), 40 deletions(-) diff --git a/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs b/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs index b2cc6f94766c..0deba8e947a6 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs @@ -13,18 +13,18 @@ public partial class Omnibar [GeneratedDependencyProperty] public partial OmnibarMode? CurrentSelectedMode { get; set; } - [GeneratedDependencyProperty] - public partial string? CurrentSelectedModeName { get; set; } - [GeneratedDependencyProperty] public partial Thickness AutoSuggestBoxPadding { get; set; } [GeneratedDependencyProperty] public partial bool IsFocused { get; set; } - partial void OnCurrentSelectedModeChanged(OmnibarMode? newValue) + partial void OnCurrentSelectedModePropertyChanged(DependencyPropertyChangedEventArgs e) { - // TODO: Invoke ChangeMode and make it internal instead in the future. + if (e.NewValue is not OmnibarMode newMode) + return; + + ChangeMode(e.OldValue as OmnibarMode, newMode); } } } diff --git a/src/Files.App.Controls/Omnibar/Omnibar.cs b/src/Files.App.Controls/Omnibar/Omnibar.cs index 4fce118e19d1..75f8f41564e2 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.cs @@ -104,27 +104,24 @@ public void PopulateModes() } } - public void ChangeMode(OmnibarMode modeToExpand, bool shouldFocus = false, bool useTransition = true) + protected void ChangeMode(OmnibarMode? oldMode, OmnibarMode newMode) { - if (_modesHostGrid is null || Modes is null) + if (_modesHostGrid is null || Modes is null || CurrentSelectedMode is null) return; foreach (var mode in Modes) { // Add the reposition transition to the all modes - if (useTransition) - { - mode.Transitions = [new RepositionThemeTransition()]; - mode.UpdateLayout(); - } + mode.Transitions = [new RepositionThemeTransition()]; + mode.UpdateLayout(); mode.OnChangingCurrentMode(false); } - var index = _modesHostGrid.Children.IndexOf(modeToExpand); + var index = _modesHostGrid.Children.IndexOf(newMode); - if (CurrentSelectedMode is not null) - VisualStateManager.GoToState(CurrentSelectedMode, "Unfocused", true); + if (oldMode is not null) + VisualStateManager.GoToState(oldMode, "Unfocused", true); // Reset foreach (var column in _modesHostGrid.ColumnDefinitions) @@ -134,8 +131,8 @@ public void ChangeMode(OmnibarMode modeToExpand, bool shouldFocus = false, bool _modesHostGrid.ColumnDefinitions[index].Width = new(1, GridUnitType.Star); var itemCount = Modes.Count; - var itemIndex = Modes.IndexOf(modeToExpand); - var modeButtonWidth = modeToExpand.ActualWidth; + var itemIndex = Modes.IndexOf(newMode); + var modeButtonWidth = newMode.ActualWidth; var modeSeparatorWidth = itemCount is not 0 or 1 ? _modesHostGrid.Children[1] is FrameworkElement frameworkElement ? frameworkElement.ActualWidth : 0 : 0; var leftPadding = (itemIndex + 1) * modeButtonWidth + modeSeparatorWidth * itemIndex; @@ -144,26 +141,23 @@ public void ChangeMode(OmnibarMode modeToExpand, bool shouldFocus = false, bool // Set the correct AutoSuggestBox cursor position AutoSuggestBoxPadding = new(leftPadding, 0, rightPadding, 0); - CurrentSelectedMode = modeToExpand; - CurrentSelectedModeName = modeToExpand.ModeName; - _textChangeReason = OmnibarTextChangeReason.ProgrammaticChange; - ChangeTextBoxText(CurrentSelectedMode.Text ?? string.Empty); + ChangeTextBoxText(newMode.Text ?? string.Empty); // Move cursor of the TextBox to the tail _textBox.Select(_textBox.Text.Length, 0); - VisualStateManager.GoToState(CurrentSelectedMode, "Focused", true); - CurrentSelectedMode.OnChangingCurrentMode(true); + VisualStateManager.GoToState(newMode, "Focused", true); + newMode.OnChangingCurrentMode(true); if (IsFocused) { - VisualStateManager.GoToState(CurrentSelectedMode, "Focused", true); + VisualStateManager.GoToState(newMode, "Focused", true); VisualStateManager.GoToState(_textBox, "InputAreaVisible", true); } - else if (CurrentSelectedMode?.ContentOnInactive is not null) + else if (newMode?.ContentOnInactive is not null) { - VisualStateManager.GoToState(CurrentSelectedMode, "CurrentUnfocused", true); + VisualStateManager.GoToState(newMode, "CurrentUnfocused", true); VisualStateManager.GoToState(_textBox, "InputAreaCollapsed", true); } else @@ -171,22 +165,21 @@ public void ChangeMode(OmnibarMode modeToExpand, bool shouldFocus = false, bool VisualStateManager.GoToState(_textBox, "InputAreaVisible", true); } - if (shouldFocus) - _textBox.Focus(FocusState.Keyboard); - - TryToggleIsSuggestionsPopupOpen(IsFocused && CurrentSelectedMode?.SuggestionItemsSource is not null); + TryToggleIsSuggestionsPopupOpen(IsFocused && newMode?.SuggestionItemsSource is not null); // Remove the reposition transition from the all modes - if (useTransition) + foreach (var mode in Modes) { - foreach (var mode in Modes) - { - mode.Transitions.Clear(); - mode.UpdateLayout(); - } + mode.Transitions.Clear(); + mode.UpdateLayout(); } } + internal protected void FocusTextBox() + { + _textBox.Focus(FocusState.Keyboard); + } + public bool TryToggleIsSuggestionsPopupOpen(bool wantToOpen) { if (wantToOpen && (!IsFocused || CurrentSelectedMode?.SuggestionItemsSource is null || (CurrentSelectedMode?.SuggestionItemsSource is IList collection && collection.Count is 0))) diff --git a/src/Files.App.Controls/Omnibar/OmnibarMode.Events.cs b/src/Files.App.Controls/Omnibar/OmnibarMode.Events.cs index cf0be5627114..e7f73fd5262c 100644 --- a/src/Files.App.Controls/Omnibar/OmnibarMode.Events.cs +++ b/src/Files.App.Controls/Omnibar/OmnibarMode.Events.cs @@ -31,7 +31,7 @@ private void ModeButton_PointerReleased(object sender, PointerRoutedEventArgs e) VisualStateManager.GoToState(this, "PointerOver", true); // Change the current mode - owner.ChangeMode(this); + owner.CurrentSelectedMode = this; } private void ModeButton_PointerExited(object sender, PointerRoutedEventArgs e) diff --git a/src/Files.App.Controls/Omnibar/OmnibarMode.cs b/src/Files.App.Controls/Omnibar/OmnibarMode.cs index 3fa09c416018..91a88d118098 100644 --- a/src/Files.App.Controls/Omnibar/OmnibarMode.cs +++ b/src/Files.App.Controls/Omnibar/OmnibarMode.cs @@ -54,7 +54,8 @@ protected override void OnKeyUp(KeyRoutedEventArgs args) VisualStateManager.GoToState(this, "PointerPressed", true); // Change the current mode - owner.ChangeMode(this, true); + owner.CurrentSelectedMode = this; + owner.FocusTextBox(); VisualStateManager.GoToState(this, "PointerNormal", true); } @@ -69,7 +70,7 @@ private void OmnibarMode_Loaded(object sender, RoutedEventArgs e) { // Set this mode as the current mode if it is the default mode if (IsDefault && _ownerRef is not null && _ownerRef.TryGetTarget(out var owner)) - owner.ChangeMode(this); + owner.CurrentSelectedMode = this; } public void SetOwner(Omnibar owner) diff --git a/src/Files.App/UserControls/NavigationToolbar.xaml.cs b/src/Files.App/UserControls/NavigationToolbar.xaml.cs index 76d3b353459a..4a9a3143eda5 100644 --- a/src/Files.App/UserControls/NavigationToolbar.xaml.cs +++ b/src/Files.App/UserControls/NavigationToolbar.xaml.cs @@ -291,7 +291,7 @@ await DialogDisplayHelper.ShowDialogAsync(Strings.CommandNotExecutable.GetLocali else await command.ExecuteAsync(); - Omnibar.ChangeMode(OmnibarPathMode); + ViewModel.OmnibarCurrentSelectedMode = OmnibarPathMode; } else if (Omnibar.CurrentSelectedMode == OmnibarSearchMode) { From 97bb411ec9d3eeb43a56bd275d07ac27d0eba3f1 Mon Sep 17 00:00:00 2001 From: 0x5BFA <62196528+0x5bfa@users.noreply.github.com> Date: Wed, 21 May 2025 23:40:21 +0900 Subject: [PATCH 03/13] Improved the focus management from outside --- .../Omnibar/Omnibar.Events.cs | 13 ----------- .../Omnibar/Omnibar.Properties.cs | 22 +++++++++++++++++++ src/Files.App.Controls/Omnibar/Omnibar.cs | 3 ++- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/Files.App.Controls/Omnibar/Omnibar.Events.cs b/src/Files.App.Controls/Omnibar/Omnibar.Events.cs index ebd4f5bcb457..4e791772b25f 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.Events.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.Events.cs @@ -17,11 +17,6 @@ private void Omnibar_SizeChanged(object sender, SizeChangedEventArgs e) private void AutoSuggestBox_GotFocus(object sender, RoutedEventArgs e) { IsFocused = true; - - VisualStateManager.GoToState(CurrentSelectedMode, "Focused", true); - VisualStateManager.GoToState(_textBox, "InputAreaVisible", true); - - TryToggleIsSuggestionsPopupOpen(true); } private void AutoSuggestBox_LostFocus(object sender, RoutedEventArgs e) @@ -31,14 +26,6 @@ private void AutoSuggestBox_LostFocus(object sender, RoutedEventArgs e) return; IsFocused = false; - - if (CurrentSelectedMode?.ContentOnInactive is not null) - { - VisualStateManager.GoToState(CurrentSelectedMode, "CurrentUnfocused", true); - VisualStateManager.GoToState(_textBox, "InputAreaCollapsed", true); - } - - TryToggleIsSuggestionsPopupOpen(false); } private void AutoSuggestBox_KeyDown(object sender, KeyRoutedEventArgs e) diff --git a/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs b/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs index 0deba8e947a6..6a6b3b988dd7 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs @@ -26,5 +26,27 @@ partial void OnCurrentSelectedModePropertyChanged(DependencyPropertyChangedEvent ChangeMode(e.OldValue as OmnibarMode, newMode); } + + partial void OnIsFocusedChanged(bool newValue) + { + if (CurrentSelectedMode is null) + return; + + if (newValue) + { + VisualStateManager.GoToState(CurrentSelectedMode, "Focused", true); + VisualStateManager.GoToState(_textBox, "InputAreaVisible", true); + } + else + { + if (CurrentSelectedMode?.ContentOnInactive is not null) + { + VisualStateManager.GoToState(CurrentSelectedMode, "CurrentUnfocused", true); + VisualStateManager.GoToState(_textBox, "InputAreaCollapsed", true); + } + } + + TryToggleIsSuggestionsPopupOpen(newValue); + } } } diff --git a/src/Files.App.Controls/Omnibar/Omnibar.cs b/src/Files.App.Controls/Omnibar/Omnibar.cs index 75f8f41564e2..cceb1abdaa23 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.cs @@ -182,7 +182,8 @@ internal protected void FocusTextBox() public bool TryToggleIsSuggestionsPopupOpen(bool wantToOpen) { - if (wantToOpen && (!IsFocused || CurrentSelectedMode?.SuggestionItemsSource is null || (CurrentSelectedMode?.SuggestionItemsSource is IList collection && collection.Count is 0))) + if (wantToOpen && (!IsFocused || CurrentSelectedMode?.SuggestionItemsSource is null || (CurrentSelectedMode?.SuggestionItemsSource is IList collection && collection.Count is 0)) || + _textBoxSuggestionsPopup is null) return false; _textBoxSuggestionsPopup.IsOpen = wantToOpen; From fdb593bed72c226e43a1a627fca671da7e92b61c Mon Sep 17 00:00:00 2001 From: Yair <39923744+yaira2@users.noreply.github.com> Date: Wed, 21 May 2025 15:35:55 -0400 Subject: [PATCH 04/13] Auto select text when entering edit mode --- src/Files.App.Controls/Omnibar/Omnibar.Events.cs | 1 + src/Files.App.Controls/Omnibar/Omnibar.cs | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Files.App.Controls/Omnibar/Omnibar.Events.cs b/src/Files.App.Controls/Omnibar/Omnibar.Events.cs index 4e791772b25f..e3742d951592 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.Events.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.Events.cs @@ -17,6 +17,7 @@ private void Omnibar_SizeChanged(object sender, SizeChangedEventArgs e) private void AutoSuggestBox_GotFocus(object sender, RoutedEventArgs e) { IsFocused = true; + _textBox.SelectAll(); } private void AutoSuggestBox_LostFocus(object sender, RoutedEventArgs e) diff --git a/src/Files.App.Controls/Omnibar/Omnibar.cs b/src/Files.App.Controls/Omnibar/Omnibar.cs index cceb1abdaa23..3e2ec3b76ef2 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.cs @@ -144,9 +144,6 @@ protected void ChangeMode(OmnibarMode? oldMode, OmnibarMode newMode) _textChangeReason = OmnibarTextChangeReason.ProgrammaticChange; ChangeTextBoxText(newMode.Text ?? string.Empty); - // Move cursor of the TextBox to the tail - _textBox.Select(_textBox.Text.Length, 0); - VisualStateManager.GoToState(newMode, "Focused", true); newMode.OnChangingCurrentMode(true); From deb0ea18dbc9a26b7ed8eb2b5daf280381db5f7f Mon Sep 17 00:00:00 2001 From: 0x5BFA <62196528+0x5bfa@users.noreply.github.com> Date: Thu, 22 May 2025 08:31:29 +0900 Subject: [PATCH 05/13] Added CurrentSelectedModeName --- .../Omnibar/Omnibar.Properties.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs b/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs index 6a6b3b988dd7..157b54200bc2 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs @@ -13,6 +13,9 @@ public partial class Omnibar [GeneratedDependencyProperty] public partial OmnibarMode? CurrentSelectedMode { get; set; } + [GeneratedDependencyProperty] + public partial string? CurrentSelectedModeName { get; set; } + [GeneratedDependencyProperty] public partial Thickness AutoSuggestBoxPadding { get; set; } @@ -25,6 +28,24 @@ partial void OnCurrentSelectedModePropertyChanged(DependencyPropertyChangedEvent return; ChangeMode(e.OldValue as OmnibarMode, newMode); + CurrentSelectedModeName = newMode.ModeName; + } + + partial void OnCurrentSelectedModeNameChanged(string? newValue) + { + if (string.IsNullOrEmpty(newValue) || + string.IsNullOrEmpty(CurrentSelectedMode?.ModeName) || + CurrentSelectedMode.ModeName.Equals(newValue) || + Modes is null) + return; + + _textBox.Focus(FocusState.Keyboard); + + var newMode = Modes.Where(x => x.ModeName?.Equals(newValue) ?? false).FirstOrDefault(); + if (newMode is null) + return; + + CurrentSelectedMode = newMode; } partial void OnIsFocusedChanged(bool newValue) From 7bd7c2d2d79c28266d76937d0092fc151c5534bc Mon Sep 17 00:00:00 2001 From: 0x5BFA <62196528+0x5bfa@users.noreply.github.com> Date: Thu, 22 May 2025 08:35:35 +0900 Subject: [PATCH 06/13] Update Omnibar.Properties.cs --- src/Files.App.Controls/Omnibar/Omnibar.Properties.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs b/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs index 157b54200bc2..f3409bf028c3 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs @@ -34,14 +34,12 @@ partial void OnCurrentSelectedModePropertyChanged(DependencyPropertyChangedEvent partial void OnCurrentSelectedModeNameChanged(string? newValue) { if (string.IsNullOrEmpty(newValue) || - string.IsNullOrEmpty(CurrentSelectedMode?.ModeName) || - CurrentSelectedMode.ModeName.Equals(newValue) || + string.IsNullOrEmpty(CurrentSelectedMode?.Name) || + CurrentSelectedMode.Name.Equals(newValue) || Modes is null) return; - _textBox.Focus(FocusState.Keyboard); - - var newMode = Modes.Where(x => x.ModeName?.Equals(newValue) ?? false).FirstOrDefault(); + var newMode = Modes.Where(x => x.Name?.Equals(newValue) ?? false).FirstOrDefault(); if (newMode is null) return; From 7a77bbd9159c047af2c649694213e57a8be5f420 Mon Sep 17 00:00:00 2001 From: 0x5BFA <62196528+0x5bfa@users.noreply.github.com> Date: Thu, 22 May 2025 10:17:29 +0900 Subject: [PATCH 07/13] Fix --- src/Files.App.Controls/Omnibar/Omnibar.Properties.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs b/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs index f3409bf028c3..4545564ed50d 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs @@ -48,9 +48,11 @@ partial void OnCurrentSelectedModeNameChanged(string? newValue) partial void OnIsFocusedChanged(bool newValue) { - if (CurrentSelectedMode is null) + if (CurrentSelectedMode is null || _textBox is null) return; + _textBox.Focus(FocusState.Keyboard); + if (newValue) { VisualStateManager.GoToState(CurrentSelectedMode, "Focused", true); From b1ee7a58abf319fb7ac66d4d29c451e6fbeb8ca1 Mon Sep 17 00:00:00 2001 From: Yair <39923744+yaira2@users.noreply.github.com> Date: Wed, 21 May 2025 22:15:03 -0400 Subject: [PATCH 08/13] Connected actions to Omnibar modes --- .../Actions/Global/EditPathAction.cs | 12 ++- src/Files.App/Actions/Global/SearchAction.cs | 2 +- .../Actions/Open/OpenCommandPaletteAction.cs | 2 +- .../Contracts/IAddressToolbarViewModel.cs | 2 +- .../NavigationToolbarViewModel.cs | 97 +++++++++++-------- 5 files changed, 70 insertions(+), 45 deletions(-) diff --git a/src/Files.App/Actions/Global/EditPathAction.cs b/src/Files.App/Actions/Global/EditPathAction.cs index 47584a594d34..928e4658bede 100644 --- a/src/Files.App/Actions/Global/EditPathAction.cs +++ b/src/Files.App/Actions/Global/EditPathAction.cs @@ -5,7 +5,8 @@ namespace Files.App.Actions { internal sealed class EditPathAction : IAction { - private readonly IContentPageContext context; + private readonly IContentPageContext context = Ioc.Default.GetRequiredService(); + private readonly IGeneralSettingsService GeneralSettingsService = Ioc.Default.GetRequiredService(); public string Label => Strings.EditPath.GetLocalizedResource(); @@ -21,13 +22,18 @@ public HotKey SecondHotKey public EditPathAction() { - context = Ioc.Default.GetRequiredService(); + } public Task ExecuteAsync(object? parameter = null) { if (context.ShellPage is not null) - context.ShellPage.ToolbarViewModel.IsEditModeEnabled = true; + { + if (GeneralSettingsService.EnableOmnibar) + context.ShellPage!.ToolbarViewModel.SwitchToPathhMode(); + else + context.ShellPage.ToolbarViewModel.IsEditModeEnabled = true; + } return Task.CompletedTask; } diff --git a/src/Files.App/Actions/Global/SearchAction.cs b/src/Files.App/Actions/Global/SearchAction.cs index 0a47ed957d0a..77ad67222e59 100644 --- a/src/Files.App/Actions/Global/SearchAction.cs +++ b/src/Files.App/Actions/Global/SearchAction.cs @@ -34,7 +34,7 @@ public SearchAction() public Task ExecuteAsync(object? parameter = null) { - context.ShellPage!.ToolbarViewModel.SwitchSearchBoxVisibility(); + context.ShellPage!.ToolbarViewModel.SwitchToSearchMode(); return Task.CompletedTask; } diff --git a/src/Files.App/Actions/Open/OpenCommandPaletteAction.cs b/src/Files.App/Actions/Open/OpenCommandPaletteAction.cs index 723f4c8b21cd..e39b27161a7a 100644 --- a/src/Files.App/Actions/Open/OpenCommandPaletteAction.cs +++ b/src/Files.App/Actions/Open/OpenCommandPaletteAction.cs @@ -23,7 +23,7 @@ public OpenCommandPaletteAction() public Task ExecuteAsync(object? parameter = null) { - _context.ShellPage?.ToolbarViewModel.OpenCommandPalette(); + _context.ShellPage?.ToolbarViewModel.SwitchToCommandPaletteMode(); return Task.CompletedTask; } diff --git a/src/Files.App/Data/Contracts/IAddressToolbarViewModel.cs b/src/Files.App/Data/Contracts/IAddressToolbarViewModel.cs index 051a93829511..42a5f0b7637c 100644 --- a/src/Files.App/Data/Contracts/IAddressToolbarViewModel.cs +++ b/src/Files.App/Data/Contracts/IAddressToolbarViewModel.cs @@ -42,7 +42,7 @@ public interface IAddressToolbarViewModel public event EventHandler RefreshWidgetsRequested; - public void SwitchSearchBoxVisibility(); + public void SwitchToSearchMode(); public ISearchBoxViewModel SearchBox { get; } } diff --git a/src/Files.App/ViewModels/UserControls/NavigationToolbarViewModel.cs b/src/Files.App/ViewModels/UserControls/NavigationToolbarViewModel.cs index 798c63b0cd23..a33a639839c1 100644 --- a/src/Files.App/ViewModels/UserControls/NavigationToolbarViewModel.cs +++ b/src/Files.App/ViewModels/UserControls/NavigationToolbarViewModel.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using CommunityToolkit.WinUI; -using Files.App.Actions; using Files.App.Controls; using Files.Shared.Helpers; using Microsoft.UI.Dispatching; @@ -155,7 +154,7 @@ public sealed partial class NavigationToolbarViewModel : ObservableObject, IAddr private bool _IsDynamicOverflowEnabled; public bool IsDynamicOverflowEnabled { get => _IsDynamicOverflowEnabled; set => SetProperty(ref _IsDynamicOverflowEnabled, value); } - + private bool _IsUpdating; public bool IsUpdating { get => _IsUpdating; set => SetProperty(ref _IsUpdating, value); } @@ -228,7 +227,7 @@ public string? PathText public string? OmnibarCommandPaletteModeText { get => _OmnibarCommandPaletteModeText; set => SetProperty(ref _OmnibarCommandPaletteModeText, value); } private bool _IsOmnibarFocused; - public bool IsOmnibarFocused + public bool IsOmnibarFocused { get => _IsOmnibarFocused; set @@ -237,7 +236,7 @@ public bool IsOmnibarFocused { if (value) { - switch(OmnibarCurrentSelectedMode.Name) + switch (OmnibarCurrentSelectedMode.Name) { case OmnibarPathModeName: PathText = @@ -741,59 +740,79 @@ public void PathBoxItem_PreviewKeyDown(object sender, KeyRoutedEventArgs e) switch (e.Key) { case Windows.System.VirtualKey.Down: - { - var item = e.OriginalSource as ListViewItem; - var button = item?.FindDescendant