Updating core title bar for menu item changes.
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user