Skip to content

Commit 9de871b

Browse files
committed
Added text boxes to examine validity
1 parent a63d2cd commit 9de871b

File tree

5 files changed

+85
-13
lines changed

5 files changed

+85
-13
lines changed

src/Files.App.Controls/Omnibar/Omnibar.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
FontStretch="{TemplateBinding FontStretch}"
6868
FontWeight="{TemplateBinding FontWeight}"
6969
Foreground="{TemplateBinding Foreground}"
70-
PlaceholderText="{Binding CurrentSelectedMode.TextPlaceholder, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}"
70+
PlaceholderText="{Binding CurrentSelectedMode.PlaceholderText, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}"
7171
ScrollViewer.BringIntoViewOnFocusChange="False"
7272
Style="{StaticResource DefaultOmnibarTextBoxStyle}"
7373
Text="{Binding CurrentSelectedMode.Text, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"

src/Files.App.Controls/Omnibar/OmnibarMode.Properties.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public partial class OmnibarMode
1414
public partial bool IsDefault { get; set; }
1515

1616
[GeneratedDependencyProperty]
17-
public partial string? TextPlaceholder { get; set; }
17+
public partial string? PlaceholderText { get; set; }
1818

1919
[GeneratedDependencyProperty]
2020
public partial string? ModeName { get; set; }

src/Files.App.Controls/Omnibar/OmnibarMode.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
namespace Files.App.Controls
55
{
6+
[DebuggerDisplay("{" + nameof(ToString) + "(),nq}")]
67
public partial class OmnibarMode : Control
78
{
89
// Constants
@@ -49,5 +50,10 @@ public void SetOwner(Omnibar owner)
4950
{
5051
_ownerRef = new(owner);
5152
}
53+
54+
public override string ToString()
55+
{
56+
return ModeName ?? string.Empty;
57+
}
5258
}
5359
}

tests/Files.App.UITests/Views/OmnibarPage.xaml

Lines changed: 47 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,17 @@
1515
<controls:SamplePanel Header="Default usage">
1616
<controls:SamplePanel.MainContent>
1717
<Grid>
18-
<controls:Omnibar x:Name="Omnibar1">
18+
<controls:Omnibar
19+
x:Name="Omnibar1"
20+
QuerySubmitted="Omnibar1_QuerySubmitted"
21+
SuggestionChosen="Omnibar1_SuggestionChosen"
22+
TextChanged="Omnibar1_TextChanged">
1923

2024
<controls:OmnibarMode
2125
IsDefault="True"
2226
ModeName="Path"
23-
Text="Path..."
24-
TextPlaceholder="Enter text...">
27+
PlaceholderText="Enter text..."
28+
Text="Path...">
2529
<controls:OmnibarMode.IconOnActive>
2630
<controls:ThemedIcon IsFilled="True" Style="{StaticResource App.ThemedIcons.Omnibar.Path}" />
2731
</controls:OmnibarMode.IconOnActive>
@@ -31,8 +35,8 @@
3135
<controls:OmnibarMode.ContentOnInactive>
3236
<controls:BreadcrumbBar
3337
x:Name="BreadcrumbBar1"
34-
ItemDropDownFlyoutClosed="BreadcrumbBar1_ItemDropDownFlyoutClosed"
35-
ItemDropDownFlyoutOpening="BreadcrumbBar1_ItemDropDownFlyoutOpening"
38+
ItemDropDownFlyoutClosed="Omnibar1_BreadcrumbBar_ItemDropDownFlyoutClosed"
39+
ItemDropDownFlyoutOpening="Omnibar1_BreadcrumbBar_ItemDropDownFlyoutOpening"
3640
ItemsSource="{x:Bind Omnibar1_BreadcrumbBarItems, Mode=OneWay}">
3741
<controls:BreadcrumbBar.RootItem>
3842
<Image
@@ -52,8 +56,8 @@
5256
<controls:OmnibarMode
5357
DisplayMemberPath="Title"
5458
ModeName="Palette"
55-
SuggestionItemsSource="{x:Bind Omnibar1_PaletteSuggestions, Mode=OneWay}"
56-
TextPlaceholder="Enter a palette command...">
59+
PlaceholderText="Enter a palette command..."
60+
SuggestionItemsSource="{x:Bind Omnibar1_PaletteSuggestions, Mode=OneWay}">
5761
<controls:OmnibarMode.IconOnActive>
5862
<controls:ThemedIcon IsFilled="True" Style="{StaticResource App.ThemedIcons.Omnibar.Commands}" />
5963
</controls:OmnibarMode.IconOnActive>
@@ -95,7 +99,7 @@
9599
</controls:OmnibarMode.SuggestionItemTemplate>
96100
</controls:OmnibarMode>
97101

98-
<controls:OmnibarMode ModeName="Search" TextPlaceholder="Enter a search query...">
102+
<controls:OmnibarMode ModeName="Search" PlaceholderText="Enter a search query...">
99103
<controls:OmnibarMode.IconOnActive>
100104
<controls:ThemedIcon IsFilled="True" Style="{StaticResource App.ThemedIcons.Omnibar.Search}" />
101105
</controls:OmnibarMode.IconOnActive>
@@ -107,6 +111,41 @@
107111
</controls:Omnibar>
108112
</Grid>
109113
</controls:SamplePanel.MainContent>
114+
<controls:SamplePanel.SideContent>
115+
<StackPanel Spacing="8">
116+
117+
<TextBox
118+
Header="Current mode:"
119+
IsReadOnly="True"
120+
Text="{x:Bind Omnibar1.CurrentSelectedMode, Mode=OneWay}" />
121+
122+
<TextBox
123+
Header="Text:"
124+
IsReadOnly="True"
125+
Text="{x:Bind Omnibar1_Text, Mode=OneWay}" />
126+
127+
<Grid ColumnSpacing="8">
128+
<Grid.ColumnDefinitions>
129+
<ColumnDefinition Width="*" />
130+
<ColumnDefinition Width="*" />
131+
</Grid.ColumnDefinitions>
132+
133+
<TextBox
134+
Grid.Column="0"
135+
Header="Suggestion index:"
136+
IsReadOnly="True"
137+
Text="{x:Bind Omnibar1_ChosenSuggestionIndex, Mode=OneWay}" />
138+
139+
<TextBox
140+
Grid.Column="1"
141+
Header="Submitted query:"
142+
IsReadOnly="True"
143+
Text="{x:Bind Omnibar1_SubmittedQuery, Mode=OneWay}" />
144+
145+
</Grid>
146+
147+
</StackPanel>
148+
</controls:SamplePanel.SideContent>
110149
</controls:SamplePanel>
111150

112151
</StackPanel>

tests/Files.App.UITests/Views/OmnibarPage.xaml.cs

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (c) Files Community
22
// Licensed under the MIT License.
33

4+
using CommunityToolkit.WinUI;
45
using Files.App.Controls;
56
using Files.App.UITests.Data;
67
using Microsoft.UI.Xaml;
@@ -12,9 +13,17 @@ namespace Files.App.UITests.Views
1213
public sealed partial class OmnibarPage : Page
1314
{
1415
private readonly ObservableCollection<OmnibarPaletteSuggestionItem> Omnibar1_PaletteSuggestions;
15-
1616
private readonly ObservableCollection<BreadcrumbBarItemModel> Omnibar1_BreadcrumbBarItems;
1717

18+
[GeneratedDependencyProperty(DefaultValue = "")]
19+
private partial string Omnibar1_Text { get; set; }
20+
21+
[GeneratedDependencyProperty]
22+
private partial int Omnibar1_ChosenSuggestionIndex { get; set; }
23+
24+
[GeneratedDependencyProperty(DefaultValue = "")]
25+
private partial string Omnibar1_SubmittedQuery { get; set; }
26+
1827
public OmnibarPage()
1928
{
2029
InitializeComponent();
@@ -44,16 +53,34 @@ public OmnibarPage()
4453
];
4554
}
4655

47-
private void BreadcrumbBar1_ItemDropDownFlyoutOpening(object sender, BreadcrumbBarItemDropDownFlyoutEventArgs e)
56+
private void Omnibar1_BreadcrumbBar_ItemDropDownFlyoutOpening(object sender, BreadcrumbBarItemDropDownFlyoutEventArgs e)
4857
{
4958
e.Flyout.Items.Add(new MenuFlyoutItem { Icon = new FontIcon() { Glyph = "\uE8B7" }, Text = "Item 1" });
5059
e.Flyout.Items.Add(new MenuFlyoutItem { Icon = new FontIcon() { Glyph = "\uE8B7" }, Text = "Item 2" });
5160
e.Flyout.Items.Add(new MenuFlyoutItem { Icon = new FontIcon() { Glyph = "\uE8B7" }, Text = "Item 3" });
5261
}
5362

54-
private void BreadcrumbBar1_ItemDropDownFlyoutClosed(object sender, BreadcrumbBarItemDropDownFlyoutEventArgs e)
63+
private void Omnibar1_BreadcrumbBar_ItemDropDownFlyoutClosed(object sender, BreadcrumbBarItemDropDownFlyoutEventArgs e)
5564
{
5665
e.Flyout.Items.Clear();
5766
}
67+
68+
private void Omnibar1_QuerySubmitted(Omnibar sender, OmnibarQuerySubmittedEventArgs args)
69+
{
70+
Omnibar1_ChosenSuggestionIndex = args.Item is null ? -1 : 0;
71+
Omnibar1_SubmittedQuery = args.Mode.Text ?? string.Empty;
72+
}
73+
74+
private void Omnibar1_TextChanged(Omnibar sender, OmnibarTextChangedEventArgs args)
75+
{
76+
Omnibar1_ChosenSuggestionIndex = -1;
77+
Omnibar1_Text = args.Mode.Text ?? string.Empty;
78+
}
79+
80+
private void Omnibar1_SuggestionChosen(Omnibar sender, OmnibarSuggestionChosenEventArgs args)
81+
{
82+
Omnibar1_ChosenSuggestionIndex = 0;
83+
Omnibar1_SubmittedQuery = args.Mode.Text ?? string.Empty;
84+
}
5885
}
5986
}

0 commit comments

Comments
 (0)