diff --git a/src/UniGetUI/MainWindow.xaml.cs b/src/UniGetUI/MainWindow.xaml.cs index 0620655a7..2d665e1bc 100644 --- a/src/UniGetUI/MainWindow.xaml.cs +++ b/src/UniGetUI/MainWindow.xaml.cs @@ -399,16 +399,12 @@ private void LoadTrayMenu() TrayIcon = new TaskbarIcon(); ContentRoot.Children.Add(TrayIcon); Closed += (_, _) => TrayIcon.Dispose(); - TrayIcon.ContextMenuMode = H.NotifyIcon.ContextMenuMode.PopupMenu; + TrayIcon.ContextMenuMode = ContextMenuMode.PopupMenu; XamlUICommand ShowHideCommand = new(); ShowHideCommand.ExecuteRequested += (_, _) => { - if (MainApp.Instance.TooltipStatus.AvailableUpdates > 0) - { - MainApp.Instance?.MainWindow?.NavigationPage?.UpdatesNavButton?.ForceClick(); - } - + NavigationPage?.LoadDefaultPage(); Activate(); }; diff --git a/src/UniGetUI/Pages/MainView.xaml.cs b/src/UniGetUI/Pages/MainView.xaml.cs index 4fd4428cd..d6f3624bb 100644 --- a/src/UniGetUI/Pages/MainView.xaml.cs +++ b/src/UniGetUI/Pages/MainView.xaml.cs @@ -55,7 +55,7 @@ public MainView() PageButtonReference.Add(SettingsPage, SettingsNavButton); PageButtonReference.Add(BundlesPage, BundlesNavButton); - DiscoverNavButton.ForceClick(); + LoadDefaultPage(); if (CoreTools.IsAdministrator() && !Settings.Get("AlreadyWarnedAboutAdmin")) { @@ -137,25 +137,45 @@ public MainView() }; } - private void DiscoverNavButton_Click(object sender, EventArgs e) + public void LoadDefaultPage() { - NavigateToPage(DiscoverPage); + switch (Settings.GetValue("StartupPage")) + { + case "discover": + NavigateToPage(DiscoverPage); + break; + case "updates": + NavigateToPage(UpdatesPage); + break; + case "installed": + NavigateToPage(InstalledPage); + break; + case "bundles": + NavigateToPage(BundlesPage); + break; + case "settings": + NavigateToPage(SettingsPage); + break; + default: + if (MainApp.Instance.TooltipStatus.AvailableUpdates > 0) + NavigateToPage(UpdatesPage); + else + NavigateToPage(DiscoverPage); + break; + } } + private void DiscoverNavButton_Click(object sender, EventArgs e) + => NavigateToPage(DiscoverPage); + private void InstalledNavButton_Click(object sender, EventArgs e) - { - NavigateToPage(InstalledPage); - } + => NavigateToPage(InstalledPage); private void UpdatesNavButton_Click(object sender, EventArgs e) - { - NavigateToPage(UpdatesPage); - } + => NavigateToPage(UpdatesPage); private void BundlesNavButton_Click(object sender, EventArgs e) - { - NavigateToPage(BundlesPage); - } + => NavigateToPage(BundlesPage); private void MoreNavButton_Click(object sender, EventArgs e) { @@ -180,9 +200,7 @@ private void MoreNavButton_Click(object sender, EventArgs e) } private void SettingsNavButton_Click(object sender, EventArgs e) - { - NavigateToPage(SettingsPage); - } + => NavigateToPage(SettingsPage); private async void AboutNavButton_Click(object sender, EventArgs e) { @@ -202,6 +220,8 @@ private async void AboutNavButton_Click(object sender, EventArgs e) private void NavigateToPage(Page TargetPage) { + if (CurrentPage == TargetPage) return; + if (!PageButtonReference.TryGetValue(TargetPage, out var pageButton)) { PageButtonReference.Add(TargetPage, MoreNavButton); @@ -211,7 +231,6 @@ private void NavigateToPage(Page TargetPage) } foreach (NavButton button in MainApp.Instance.MainWindow.NavButtonList) { - button.ToggleButton.IsChecked = button == pageButton; } @@ -229,9 +248,7 @@ private void NavigateToPage(Page TargetPage) } private void ReleaseNotesMenu_Click(object sender, RoutedEventArgs e) - { - DialogHelper.ShowReleaseNotes(); - } + => DialogHelper.ShowReleaseNotes(); private void OperationHistoryMenu_Click(object sender, RoutedEventArgs e) { @@ -252,15 +269,9 @@ private void HelpMenu_Click(object sender, RoutedEventArgs e) { ShowHelp(); } - public void ShowHelp() - { - if (HelpPage is null) - { - HelpPage = new HelpDialog(); - } - NavigateToPage(HelpPage); - } + public void ShowHelp() + => NavigateToPage(HelpPage ??= new HelpDialog()); private void QuitUniGetUI_Click(object sender, RoutedEventArgs e) { diff --git a/src/UniGetUI/Pages/SettingsPage.xaml b/src/UniGetUI/Pages/SettingsPage.xaml index c34c9a70e..53289ee88 100644 --- a/src/UniGetUI/Pages/SettingsPage.xaml +++ b/src/UniGetUI/Pages/SettingsPage.xaml @@ -110,9 +110,10 @@ SettingName="PreferredTheme" ValueChanged="ThemeSelector_ValueChanged" /> - + diff --git a/src/UniGetUI/Pages/SettingsPage.xaml.cs b/src/UniGetUI/Pages/SettingsPage.xaml.cs index 32d062cef..93b96d184 100644 --- a/src/UniGetUI/Pages/SettingsPage.xaml.cs +++ b/src/UniGetUI/Pages/SettingsPage.xaml.cs @@ -31,7 +31,7 @@ public sealed partial class SettingsInterface : Page private readonly HyperlinkButton ResetBackupDirectory; private readonly HyperlinkButton OpenBackupDirectory; private readonly TextBlock BackupDirectoryLabel; - private bool InterfaceLoaded = false; + private bool InterfaceLoaded; public SettingsInterface() { @@ -51,7 +51,7 @@ public SettingsInterface() bool isFirst = true; foreach (KeyValuePair entry in lang_dict) { - LanguageSelector.AddItem(entry.Value, entry.Key.ToString(), isFirst); + LanguageSelector.AddItem(entry.Value, entry.Key, isFirst); isFirst = false; } LanguageSelector.ShowAddedItems(); @@ -89,9 +89,13 @@ public SettingsInterface() ThemeSelector.AddItem(CoreTools.AutoTranslated("Follow system color scheme"), "auto"); ThemeSelector.ShowAddedItems(); - // UI Section - // DisableIconsOnPackageLists.Text = "[EXPERIMENTAL] " + CoreTools.Translate("Show package icons on package lists"); - + StartupPageSelector.AddItem(CoreTools.AutoTranslated("Default"), "default"); + StartupPageSelector.AddItem(CoreTools.AutoTranslated("Discover Packages"), "discover"); + StartupPageSelector.AddItem(CoreTools.AutoTranslated("Software Updates"), "updates"); + StartupPageSelector.AddItem(CoreTools.AutoTranslated("Installed Packages"), "installed"); + StartupPageSelector.AddItem(CoreTools.AutoTranslated("Package Bundles"), "bundles"); + StartupPageSelector.AddItem(CoreTools.AutoTranslated("Settings"), "settings"); + StartupPageSelector.ShowAddedItems(); // Backup Section BackupDirectoryLabel = (TextBlock)((StackPanel)ChangeBackupDirectory.Description).Children.ElementAt(0);