Updating core title bar for menu item changes.

This commit is contained in:
Burak Kaan Köse
2026-03-06 11:22:19 +01:00
parent 24f7c26d60
commit 51f64466c2
4 changed files with 39 additions and 0 deletions
@@ -454,6 +454,11 @@ public partial class MailAppShellViewModel : MailBaseViewModel,
StatePersistenceService.CoreWindowTitle = $"{folder.AssignedAccountName} - {folder.FolderName}"; StatePersistenceService.CoreWindowTitle = $"{folder.AssignedAccountName} - {folder.FolderName}";
} }
private void UpdateWindowTitle(string title)
{
StatePersistenceService.CoreWindowTitle = title;
}
private async Task NavigateSpecialFolderAsync(MailAccount account, SpecialFolderType specialFolderType, bool extendAccountMenu) private async Task NavigateSpecialFolderAsync(MailAccount account, SpecialFolderType specialFolderType, bool extendAccountMenu)
{ {
try try
@@ -636,14 +641,17 @@ public partial class MailAppShellViewModel : MailBaseViewModel,
else if (clickedMenuItem is SettingsItem) else if (clickedMenuItem is SettingsItem)
{ {
NavigationService.Navigate(WinoPage.SettingsPage, parameter, NavigationReferenceFrame.InnerShellFrame, NavigationTransitionType.None); NavigationService.Navigate(WinoPage.SettingsPage, parameter, NavigationReferenceFrame.InnerShellFrame, NavigationTransitionType.None);
UpdateWindowTitle(Translator.MenuSettings);
} }
else if (clickedMenuItem is ManageAccountsMenuItem) else if (clickedMenuItem is ManageAccountsMenuItem)
{ {
NavigationService.Navigate(WinoPage.ManageAccountsPage, parameter, NavigationReferenceFrame.InnerShellFrame, NavigationTransitionType.None); NavigationService.Navigate(WinoPage.ManageAccountsPage, parameter, NavigationReferenceFrame.InnerShellFrame, NavigationTransitionType.None);
UpdateWindowTitle(Translator.MenuManageAccounts);
} }
else if (clickedMenuItem is ContactsMenuItem) else if (clickedMenuItem is ContactsMenuItem)
{ {
NavigationService.Navigate(WinoPage.ContactsPage, parameter, NavigationReferenceFrame.InnerShellFrame, NavigationTransitionType.None); NavigationService.Navigate(WinoPage.ContactsPage, parameter, NavigationReferenceFrame.InnerShellFrame, NavigationTransitionType.None);
UpdateWindowTitle(Translator.ContactsPage_Title);
} }
else if (clickedMenuItem is IAccountMenuItem clickedAccountMenuItem) else if (clickedMenuItem is IAccountMenuItem clickedAccountMenuItem)
{ {
@@ -64,6 +64,11 @@ public sealed partial class MailListPage : MailListPageAbstract,
Bindings.Update(); Bindings.Update();
if (ViewModel.ActiveFolder != null)
{
ViewModel.StatePersistenceService.CoreWindowTitle = $"{ViewModel.ActiveFolder.AssignedAccountName} - {ViewModel.ActiveFolder.FolderName}";
}
ViewModel.MailCollection.ItemSelectionChanged += WinoMailCollectionSelectionChanged; ViewModel.MailCollection.ItemSelectionChanged += WinoMailCollectionSelectionChanged;
MailListView.MailDragStateChanged += MailListViewMailDragStateChanged; MailListView.MailDragStateChanged += MailListViewMailDragStateChanged;
@@ -47,6 +47,7 @@ public sealed partial class ManageAccountsPage : ManageAccountsPageAbstract,
var accountManagementPageType = ViewModel.NavigationService.GetPageType(WinoPage.AccountManagementPage); var accountManagementPageType = ViewModel.NavigationService.GetPageType(WinoPage.AccountManagementPage);
AccountPagesFrame.Navigate(accountManagementPageType, null, new SuppressNavigationTransitionInfo()); AccountPagesFrame.Navigate(accountManagementPageType, null, new SuppressNavigationTransitionInfo());
UpdateWindowTitle();
} }
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e) protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
@@ -77,6 +78,7 @@ public sealed partial class ManageAccountsPage : ManageAccountsPageAbstract,
PageHistory.ForEach(a => a.IsActive = false); PageHistory.ForEach(a => a.IsActive = false);
PageHistory.Add(new BreadcrumbNavigationItemViewModel(message, true)); PageHistory.Add(new BreadcrumbNavigationItemViewModel(message, true));
UpdateWindowTitle();
} }
private void AccountPagesFrameNavigated(object sender, NavigationEventArgs e) private void AccountPagesFrameNavigated(object sender, NavigationEventArgs e)
@@ -108,6 +110,7 @@ public sealed partial class ManageAccountsPage : ManageAccountsPageAbstract,
// Update back button visibility after navigation // Update back button visibility after navigation
ViewModel.StatePersistenceService.IsManageAccountsNavigating = AccountPagesFrame.CanGoBack; ViewModel.StatePersistenceService.IsManageAccountsNavigating = AccountPagesFrame.CanGoBack;
UpdateWindowTitle();
} }
} }
@@ -136,6 +139,7 @@ public sealed partial class ManageAccountsPage : ManageAccountsPageAbstract,
DispatcherQueue.TryEnqueue(() => DispatcherQueue.TryEnqueue(() =>
{ {
activePage.Title = message.Account.Name; activePage.Title = message.Account.Name;
UpdateWindowTitle();
}); });
} }
@@ -147,5 +151,14 @@ public sealed partial class ManageAccountsPage : ManageAccountsPageAbstract,
if (activePage == null) return; if (activePage == null) return;
activePage.Title = message.NewName; activePage.Title = message.NewName;
UpdateWindowTitle();
}
private void UpdateWindowTitle()
{
var activeTitle = PageHistory.LastOrDefault()?.Title;
ViewModel.StatePersistenceService.CoreWindowTitle = string.IsNullOrWhiteSpace(activeTitle)
? Translator.MenuManageAccounts
: activeTitle;
} }
} }
@@ -52,6 +52,8 @@ public sealed partial class SettingsPage : SettingsPageAbstract,
break; break;
} }
} }
UpdateWindowTitle();
} }
public override void OnLanguageChanged() public override void OnLanguageChanged()
@@ -65,6 +67,7 @@ public sealed partial class SettingsPage : SettingsPageAbstract,
if (settingsHeader == null) return; if (settingsHeader == null) return;
settingsHeader.Title = Translator.MenuSettings; settingsHeader.Title = Translator.MenuSettings;
UpdateWindowTitle();
} }
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e) protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
@@ -105,6 +108,7 @@ public sealed partial class SettingsPage : SettingsPageAbstract,
PageHistory.ForEach(a => a.IsActive = false); PageHistory.ForEach(a => a.IsActive = false);
PageHistory.Add(new BreadcrumbNavigationItemViewModel(message, true)); PageHistory.Add(new BreadcrumbNavigationItemViewModel(message, true));
UpdateWindowTitle();
} }
private void SettingsFrameNavigated(object sender, NavigationEventArgs e) private void SettingsFrameNavigated(object sender, NavigationEventArgs e)
@@ -136,6 +140,7 @@ public sealed partial class SettingsPage : SettingsPageAbstract,
// Update back button visibility after navigation // Update back button visibility after navigation
ViewModel.StatePersistenceService.IsSettingsNavigating = SettingsFrame.CanGoBack; ViewModel.StatePersistenceService.IsSettingsNavigating = SettingsFrame.CanGoBack;
UpdateWindowTitle();
} }
} }
@@ -154,4 +159,12 @@ public sealed partial class SettingsPage : SettingsPageAbstract,
{ {
GoBackFrame(message.SlideEffect); GoBackFrame(message.SlideEffect);
} }
private void UpdateWindowTitle()
{
var activeTitle = PageHistory.LastOrDefault()?.Title;
ViewModel.StatePersistenceService.CoreWindowTitle = string.IsNullOrWhiteSpace(activeTitle)
? Translator.MenuSettings
: activeTitle;
}
} }