Fix multiple items selected

This commit is contained in:
Aleh Khantsevich
2024-08-19 17:15:59 +02:00
parent 9a97a27c8a
commit f57c27e755

View File

@@ -40,11 +40,9 @@ namespace Wino.Views
IRecipient<ShellStateUpdated>, IRecipient<ShellStateUpdated>,
IRecipient<DisposeRenderingFrameRequested> IRecipient<DisposeRenderingFrameRequested>
{ {
private const string NarrowVisualStateKey = "NarrowState";
private const string AdaptivenessStatesKey = "AdaptiveStates";
private const int RENDERING_COLUMN_MIN_WIDTH = 300; private const int RENDERING_COLUMN_MIN_WIDTH = 300;
private IStatePersistanceService StatePersistanceService { get; } = App.Current.Services.GetService<IStatePersistanceService>(); private IStatePersistanceService StatePersistenceService { get; } = App.Current.Services.GetService<IStatePersistanceService>();
private IPreferencesService PreferencesService { get; } = App.Current.Services.GetService<IPreferencesService>(); private IPreferencesService PreferencesService { get; } = App.Current.Services.GetService<IPreferencesService>();
private IKeyPressService KeyPressService { get; } = App.Current.Services.GetService<IKeyPressService>(); private IKeyPressService KeyPressService { get; } = App.Current.Services.GetService<IKeyPressService>();
@@ -259,7 +257,7 @@ namespace Wino.Views
} }
} }
UpdateAdaptiveness1(); UpdateAdaptiveness();
} }
private bool IsRenderingPageActive() => RenderingFrame.Content is MailRenderingPage; private bool IsRenderingPageActive() => RenderingFrame.Content is MailRenderingPage;
@@ -309,7 +307,7 @@ namespace Wino.Views
public void Receive(ActiveMailFolderChangedEvent message) public void Receive(ActiveMailFolderChangedEvent message)
{ {
UpdateAdaptiveness1(); UpdateAdaptiveness();
} }
public async void Receive(SelectMailItemContainerEvent message) public async void Receive(SelectMailItemContainerEvent message)
@@ -363,7 +361,7 @@ namespace Wino.Views
public void Receive(ShellStateUpdated message) public void Receive(ShellStateUpdated message)
{ {
UpdateAdaptiveness1(); UpdateAdaptiveness();
} }
private void SearchBoxFocused(object sender, RoutedEventArgs e) private void SearchBoxFocused(object sender, RoutedEventArgs e)
@@ -488,18 +486,23 @@ namespace Wino.Views
{ {
ViewModel.MaxMailListLength = e.NewSize.Width - RENDERING_COLUMN_MIN_WIDTH; ViewModel.MaxMailListLength = e.NewSize.Width - RENDERING_COLUMN_MIN_WIDTH;
StatePersistanceService.IsReaderNarrowed = e.NewSize.Width < StatePersistanceService.MailListPaneLength + RENDERING_COLUMN_MIN_WIDTH; StatePersistenceService.IsReaderNarrowed = e.NewSize.Width < StatePersistenceService.MailListPaneLength + RENDERING_COLUMN_MIN_WIDTH;
UpdateAdaptiveness1(); UpdateAdaptiveness();
} }
private void UpdateAdaptiveness1() private void PropertySizer_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
{
StatePersistenceService.MailListPaneLength = ViewModel.MailListLength;
}
private void UpdateAdaptiveness()
{ {
bool shouldDisplayNoMessagePanel, shouldDisplayMailingList, shouldDisplayRenderingFrame; bool shouldDisplayNoMessagePanel, shouldDisplayMailingList, shouldDisplayRenderingFrame;
// This is the smallest state UI can get. // This is the smallest state UI can get.
// Either mailing list or rendering grid is visible. // Either mailing list or rendering grid is visible.
if (StatePersistanceService.IsReaderNarrowed) if (StatePersistenceService.IsReaderNarrowed)
{ {
// Start visibility checks by no message panel. // Start visibility checks by no message panel.
@@ -520,9 +523,9 @@ namespace Wino.Views
RenderingFrame.Visibility = shouldDisplayRenderingFrame ? Visibility.Visible : Visibility.Collapsed; RenderingFrame.Visibility = shouldDisplayRenderingFrame ? Visibility.Visible : Visibility.Collapsed;
NoMailSelectedPanel.Visibility = shouldDisplayNoMessagePanel ? Visibility.Visible : Visibility.Collapsed; NoMailSelectedPanel.Visibility = shouldDisplayNoMessagePanel ? Visibility.Visible : Visibility.Collapsed;
if (StatePersistanceService.IsReaderNarrowed == true) if (StatePersistenceService.IsReaderNarrowed == true)
{ {
if (ViewModel.HasSelectedItems) if (ViewModel.HasSingleItemSelection)
{ {
MailListColumn.Width = new GridLength(0); MailListColumn.Width = new GridLength(0);
RendererColumn.Width = new GridLength(1, GridUnitType.Star); RendererColumn.Width = new GridLength(1, GridUnitType.Star);
@@ -544,7 +547,7 @@ namespace Wino.Views
} }
else else
{ {
MailListColumn.Width = new GridLength(StatePersistanceService.MailListPaneLength); MailListColumn.Width = new GridLength(StatePersistenceService.MailListPaneLength);
RendererColumn.Width = new GridLength(1, GridUnitType.Star); RendererColumn.Width = new GridLength(1, GridUnitType.Star);
Grid.SetColumn(MailListContainer, 0); Grid.SetColumn(MailListContainer, 0);
@@ -556,10 +559,5 @@ namespace Wino.Views
RenderingGrid.Visibility = Visibility.Visible; RenderingGrid.Visibility = Visibility.Visible;
} }
} }
private void PropertySizer_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
{
StatePersistanceService.MailListPaneLength = ViewModel.MailListLength;
}
} }
} }