Skip to content

Commit ce68d1d

Browse files
committed
Added setting
1 parent be90633 commit ce68d1d

File tree

6 files changed

+70
-0
lines changed

6 files changed

+70
-0
lines changed

src/Files.App/Data/Contracts/IFoldersSettingsService.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,5 +89,10 @@ public interface IFoldersSettingsService : IBaseSettingsService, INotifyProperty
8989
/// Gets or sets a value indicating which format to use when displaying item sizes.
9090
/// </summary>
9191
SizeUnitTypes SizeUnitFormat { get; set; }
92+
93+
/// <summary>
94+
/// Gets or sets a value indicating which action to take when typing characters.
95+
/// </summary>
96+
KeyboardTypingAction KeyboardTypingAction { get; set; }
9297
}
9398
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Copyright (c) Files Community
2+
// Licensed under the MIT License.
3+
4+
namespace Files.App.Data.Enums
5+
{
6+
public enum KeyboardTypingAction
7+
{
8+
/// <summary>
9+
/// Jump to matching item.
10+
/// </summary>
11+
JumpToFile,
12+
13+
/// <summary>
14+
/// Filter items.
15+
/// </summary>
16+
FilterItems
17+
}
18+
}

src/Files.App/Services/Settings/FoldersSettingsService.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,13 @@ public SizeUnitTypes SizeUnitFormat
114114
set => Set(value);
115115
}
116116

117+
/// <inheritdoc/>
118+
public KeyboardTypingAction KeyboardTypingAction
119+
{
120+
get => (KeyboardTypingAction)Get((long)KeyboardTypingAction.JumpToFile);
121+
set => Set((long)value);
122+
}
123+
117124
protected override void RaiseOnSettingChangedEvent(object sender, SettingChangedEventArgs e)
118125
{
119126
base.RaiseOnSettingChangedEvent(sender, e);

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4272,5 +4272,14 @@
42724272
</data>
42734273
<data name="Filename" xml:space="preserve">
42744274
<value>Filename</value>
4275+
</data>
4276+
<data name="TypeToAction" xml:space="preserve">
4277+
<value>Behavior when typing in the file area</value>
4278+
</data>
4279+
<data name="JumpToFile" xml:space="preserve">
4280+
<value>Jump to file</value>
4281+
</data>
4282+
<data name="FilterItems" xml:space="preserve">
4283+
<value>Filter items</value>
42754284
</data>
42764285
</root>

src/Files.App/ViewModels/Settings/FoldersViewModel.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public sealed partial class FoldersViewModel : ObservableObject
99

1010

1111
public Dictionary<SizeUnitTypes, string> SizeUnitsOptions { get; private set; } = [];
12+
public Dictionary<KeyboardTypingAction, string> KeyboardTypingActions { get; private set; } = [];
1213

1314
public FoldersViewModel()
1415
{
@@ -18,6 +19,11 @@ public FoldersViewModel()
1819
SizeUnitsOptions.Add(SizeUnitTypes.BinaryUnits, Strings.Binary.GetLocalizedResource());
1920
SizeUnitsOptions.Add(SizeUnitTypes.DecimalUnits, Strings.Decimal.GetLocalizedResource());
2021
SizeUnitFormat = SizeUnitsOptions[UserSettingsService.FoldersSettingsService.SizeUnitFormat];
22+
23+
// Size unit format
24+
KeyboardTypingActions.Add(Data.Enums.KeyboardTypingAction.JumpToFile, Strings.JumpToFile.GetLocalizedResource());
25+
KeyboardTypingActions.Add(Data.Enums.KeyboardTypingAction.FilterItems, Strings.FilterItems.GetLocalizedResource());
26+
KeyboardTypingAction = KeyboardTypingActions[UserSettingsService.FoldersSettingsService.KeyboardTypingAction];
2127
}
2228

2329
// Properties
@@ -274,5 +280,18 @@ public string SizeUnitFormat
274280
}
275281
}
276282
}
283+
284+
private string keyboardTypingAction;
285+
public string KeyboardTypingAction
286+
{
287+
get => keyboardTypingAction;
288+
set
289+
{
290+
if (SetProperty(ref keyboardTypingAction, value))
291+
{
292+
UserSettingsService.FoldersSettingsService.KeyboardTypingAction = KeyboardTypingActions.First(e => e.Value == value).Key;
293+
}
294+
}
295+
}
277296
}
278297
}

src/Files.App/Views/Settings/FoldersPage.xaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,18 @@
178178
SelectedItem="{x:Bind ViewModel.SizeUnitFormat, Mode=TwoWay}" />
179179
</wctcontrols:SettingsCard>
180180

181+
<!-- Typing behavior -->
182+
<wctcontrols:SettingsCard Header="{helpers:ResourceString Name=TypeToAction}">
183+
<wctcontrols:SettingsCard.HeaderIcon>
184+
<FontIcon Glyph="&#xE765;" />
185+
</wctcontrols:SettingsCard.HeaderIcon>
186+
187+
<uc:ComboBoxEx
188+
AutomationProperties.Name="{helpers:ResourceString Name=TypeToAction}"
189+
ItemsSource="{x:Bind ViewModel.KeyboardTypingActions.Values}"
190+
SelectedItem="{x:Bind ViewModel.KeyboardTypingAction, Mode=TwoWay}" />
191+
</wctcontrols:SettingsCard>
192+
181193
<!-- Calculate folder sizes -->
182194
<wctcontrols:SettingsExpander Header="{helpers:ResourceString Name=CalculateFolderSizes}" IsExpanded="True">
183195
<wctcontrols:SettingsExpander.HeaderIcon>

0 commit comments

Comments
 (0)