Skip to content

Commit 8f68687

Browse files
authored
Merge pull request #3837 from marticliment/new-searchbox
2 parents c02d77f + 90f5e8d commit 8f68687

File tree

8 files changed

+247
-172
lines changed

8 files changed

+247
-172
lines changed

src/UniGetUI.PackageEngine.Serializable.Tests/TestSerializablePackage.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ public void ToAndFromJsonNode(string id, string name, string version, string man
7373
"UNKNOWN_VAL3": 22,
7474
"UNKNOWN_VAL4": "hehe",
7575
"InstallationOptions" : {
76-
"SkipHashCheck": true
76+
"SkipHashCheck": true,
77+
"OverridesNextLevelOpts": false
7778
}
7879
}
7980
""", "", "", "false", "Rodolfo Chikilicuatre", "lol", true, "")]

src/UniGetUI/MainWindow.xaml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,27 @@
3434
Title="UniGetUI"
3535
Grid.Row="0"
3636
Margin="0,0,0,-4"
37+
HorizontalContentAlignment="Center"
3738
BackRequested="TitleBar_OnBackRequested"
3839
IsBackButtonVisible="False"
3940
IsPaneToggleButtonVisible="True"
4041
PaneToggleRequested="TitleBar_PaneToggleRequested"
42+
SizeChanged="TitleBar_SizeChanged"
4143
Visibility="Collapsed">
4244
<winex:TitleBar.IconSource>
4345
<ImageIconSource ImageSource="ms-appx:///Assets/Images/icon.png" />
4446
</winex:TitleBar.IconSource>
45-
<!--winex:TitleBar.Content>
46-
<UserControl Height="10" />
47-
</winex:TitleBar.Content-->
47+
<winex:TitleBar.Content>
48+
<AutoSuggestBox
49+
x:Name="GlobalSearchBox"
50+
Width="400"
51+
Height="32"
52+
HorizontalAlignment="Stretch"
53+
x:FieldModifier="public"
54+
QueryIcon="Find" />
55+
</winex:TitleBar.Content>
4856
<winex:TitleBar.Footer>
49-
<services:UserAvatar />
57+
<services:UserAvatar Margin="0,0,-44,0" />
5058
</winex:TitleBar.Footer>
5159
</winex:TitleBar>
5260
<StackPanel

src/UniGetUI/MainWindow.xaml.cs

Lines changed: 49 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
using WinUIEx;
2727
using TitleBar = WinUIEx.TitleBar;
2828
using WindowExtensions = H.NotifyIcon.WindowExtensions;
29+
using System.Diagnostics;
30+
using Windows.UI.Text.Core;
2931

3032
namespace UniGetUI.Interface
3133
{
@@ -62,7 +64,7 @@ public MainWindow()
6264
DismissableNotification.CloseButtonContent = CoreTools.Translate("Close");
6365

6466
ExtendsContentIntoTitleBar = true;
65-
// AppWindow.TitleBar.PreferredHeightOption = TitleBarHeightOption.Tall;
67+
AppWindow.TitleBar.PreferredHeightOption = TitleBarHeightOption.Tall;
6668
try
6769
{
6870
SetTitleBar(MainContentGrid);
@@ -213,10 +215,11 @@ public static void ApplyProxyVariableToProcess()
213215

214216
private void AddToSubtitle(string line)
215217
{
216-
if (TitleBar.Subtitle.Length > 0)
217-
TitleBar.Subtitle += " - ";
218-
TitleBar.Subtitle += line;
219-
Title = "UniGetUI - " + TitleBar.Subtitle;
218+
if (subtitleBackup.Length > 0)
219+
subtitleBackup += " - ";
220+
subtitleBackup += line;
221+
Title = "UniGetUI - " + subtitleBackup;
222+
TitleBar.Subtitle = subtitleCollapsed is true? "": subtitleBackup;
220223
}
221224

222225
private void ClearSubtitle()
@@ -649,7 +652,7 @@ public void SwitchToInterface()
649652
TitleBar.Visibility = Visibility.Visible;
650653
SetTitleBar(TitleBar);
651654

652-
NavigationPage = new MainView();
655+
NavigationPage = new MainView(GlobalSearchBox);
653656
NavigationPage.CanGoBackChanged += (_, can) => TitleBar.IsBackButtonVisible = can;
654657

655658
object? control = MainContentFrame.Content as Grid;
@@ -786,7 +789,9 @@ public async Task<ContentDialogResult> ShowDialogAsync(ContentDialog dialog, boo
786789
}
787790

788791
dialog.RequestedTheme = MainContentGrid.RequestedTheme;
792+
AppWindow.TitleBar.PreferredHeightOption = TitleBarHeightOption.Standard;
789793
ContentDialogResult result = await dialog.ShowAsync();
794+
AppWindow.TitleBar.PreferredHeightOption = TitleBarHeightOption.Tall;
790795
DialogQueue.Remove(dialog);
791796
return result;
792797
}
@@ -979,6 +984,44 @@ private void TitleBar_OnBackRequested(TitleBar sender, object args)
979984
{
980985
NavigationPage?.NavigateBack();
981986
}
987+
988+
989+
private bool? subtitleCollapsed;
990+
private bool? titleCollapsed;
991+
private string subtitleBackup = "";
992+
private void TitleBar_SizeChanged(object sender, SizeChangedEventArgs e)
993+
{
994+
if(TitleBar.ActualWidth <= 750)
995+
{
996+
GlobalSearchBox.Width = Math.Max(50, 400 - (750 - TitleBar.ActualWidth));
997+
}
998+
999+
if (TitleBar.ActualWidth < 870 && titleCollapsed is not true)
1000+
{
1001+
TitleBar.Title = "";
1002+
titleCollapsed = true;
1003+
}
1004+
else if (TitleBar.ActualWidth > 870 && titleCollapsed is not false)
1005+
{
1006+
TitleBar.Title = "UniGetUI";
1007+
GlobalSearchBox.Width = 400;
1008+
titleCollapsed = false;
1009+
}
1010+
1011+
if (TitleBar.ActualWidth < 1200 && subtitleCollapsed is not true)
1012+
{
1013+
subtitleBackup = TitleBar.Subtitle;
1014+
TitleBar.Subtitle = "";
1015+
subtitleCollapsed = true;
1016+
}
1017+
else if (TitleBar.ActualWidth > 1200 && subtitleCollapsed is not false)
1018+
{
1019+
TitleBar.Subtitle = subtitleBackup;
1020+
GlobalSearchBox.Width = 400;
1021+
subtitleCollapsed = false;
1022+
}
1023+
// Debug.WriteLine(TitleBar.ActualWidth);
1024+
}
9821025
}
9831026

9841027
public static class NativeHelpers

src/UniGetUI/Pages/MainView.xaml.cs

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
using UniGetUI.Controls;
2020
using UniGetUI.PackageEngine;
2121
using UniGetUI.PackageEngine.PackageLoader;
22+
using UniGetUI.Pages.PageInterfaces;
2223

2324
// To learn more about WinUI, the WinUI project structure,
2425
// and more about our project templates, see: http://aka.ms/winui-project-info.
@@ -57,11 +58,13 @@ public sealed partial class MainView : UserControl
5758
private PageType CurrentPage_t = PageType.Null;
5859
private List<PageType> NavigationHistory = new();
5960

61+
AutoSuggestBox MainTextBlock;
6062
public event EventHandler<bool>? CanGoBackChanged;
6163

62-
public MainView()
64+
public MainView(AutoSuggestBox mainTextBlock)
6365
{
6466
InitializeComponent();
67+
MainTextBlock = mainTextBlock;
6568
OperationList.ItemContainerTransitions = null;
6669
OperationList.ItemsSource = MainApp.Operations._operationList;
6770
DiscoverPage = new DiscoverSoftwarePage();
@@ -278,6 +281,13 @@ public void NavigateTo(PageType NewPage_t, bool toHistory = true)
278281
CurrentPage_t = NewPage_t;
279282

280283
(oldPage as IEnterLeaveListener)?.OnLeave();
284+
if(oldPage is ISearchBoxPage oldSPage)
285+
{
286+
MainTextBlock.TextChanged -= oldSPage.SearchBox_TextChanged;
287+
MainTextBlock.QuerySubmitted -= oldSPage.SearchBox_QuerySubmitted;
288+
oldSPage.QueryBackup = MainTextBlock.Text;
289+
}
290+
281291
if (toHistory && OldPage_t is not PageType.Null)
282292
{
283293
NavigationHistory.Add(OldPage_t);
@@ -287,6 +297,21 @@ public void NavigateTo(PageType NewPage_t, bool toHistory = true)
287297
(NewPage as AbstractPackagesPage)?.FocusPackageList();
288298
(NewPage as AbstractPackagesPage)?.FilterPackages();
289299
(NewPage as IEnterLeaveListener)?.OnEnter();
300+
301+
if (NewPage is ISearchBoxPage newSPage)
302+
{
303+
MainTextBlock.TextChanged += newSPage.SearchBox_TextChanged;
304+
MainTextBlock.QuerySubmitted += newSPage.SearchBox_QuerySubmitted;
305+
MainTextBlock.Text = newSPage.QueryBackup;
306+
MainTextBlock.PlaceholderText = newSPage.SearchBoxPlaceholder;
307+
MainTextBlock.IsEnabled = true;
308+
}
309+
else
310+
{
311+
MainTextBlock.Text = "";
312+
MainTextBlock.PlaceholderText = "";
313+
MainTextBlock.IsEnabled = false;
314+
}
290315
}
291316

292317
public void NavigateBack()
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using System;
2+
using Microsoft.UI.Xaml.Controls;
3+
using Microsoft.UI.Xaml.Input;
4+
5+
namespace UniGetUI.Pages.PageInterfaces;
6+
internal interface ISearchBoxPage
7+
{
8+
public string QueryBackup { get; set; }
9+
public string SearchBoxPlaceholder { get; }
10+
public void SearchBox_TextChanged(object? sender, AutoSuggestBoxTextChangedEventArgs args);
11+
public void SearchBox_QuerySubmitted(object? sender, AutoSuggestBoxQuerySubmittedEventArgs args);
12+
}

0 commit comments

Comments
 (0)