From ae66ff92eef2fd92ee69690d414e2dc39cdab20c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81d=C3=A1m=20Kov=C3=A1cs?= Date: Tue, 10 May 2022 22:29:39 +0200 Subject: [PATCH] Fix marked&selected items in non-main pane, UI glitch --- .../FileTime.App.Core/ViewModels/ItemViewModel.cs | 14 +++++++++++--- .../FileTime.GuiApp/Views/MainWindow.axaml | 4 ++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/AppCommon/FileTime.App.Core/ViewModels/ItemViewModel.cs b/src/AppCommon/FileTime.App.Core/ViewModels/ItemViewModel.cs index 93551a0..6671b95 100644 --- a/src/AppCommon/FileTime.App.Core/ViewModels/ItemViewModel.cs +++ b/src/AppCommon/FileTime.App.Core/ViewModels/ItemViewModel.cs @@ -55,10 +55,18 @@ public abstract partial class ItemViewModel : IItemViewModel BaseItem = item; DisplayName = _appState.SearchText.Select(s => _itemNameConverterService.GetDisplayName(item.DisplayName, s)); DisplayNameText = item.DisplayName; - IsMarked = parentTab.MarkedItems.ToCollection().Select(m => m.Any(i => i.Path.Path == item.FullName?.Path)); - IsSelected = parentTab.CurrentSelectedItem.Select(EqualsTo); + + IsMarked = itemViewModelType is ItemViewModelType.Main + ? parentTab.MarkedItems.ToCollection().Select(m => m.Any(i => i.Path.Path == item.FullName?.Path)) + : Observable.Return(false); + + IsSelected = itemViewModelType is ItemViewModelType.Main + ? parentTab.CurrentSelectedItem.Select(EqualsTo) + : Observable.Return(false); + IsAlternative = sourceCollection.Select(c => c?.Index().FirstOrDefault(i => EqualsTo(i.Value)).Key % 2 == 0); - ViewMode = Observable.CombineLatest(IsMarked, IsSelected, IsAlternative, GenerateViewMode); + + ViewMode = Observable.CombineLatest(IsMarked, IsSelected, IsAlternative, GenerateViewMode).Throttle(TimeSpan.FromMilliseconds(10)); Attributes = item.Attributes; CreatedAt = item.CreatedAt; } diff --git a/src/GuiApp/Avalonia/FileTime.GuiApp/Views/MainWindow.axaml b/src/GuiApp/Avalonia/FileTime.GuiApp/Views/MainWindow.axaml index 09216fc..595b91c 100644 --- a/src/GuiApp/Avalonia/FileTime.GuiApp/Views/MainWindow.axaml +++ b/src/GuiApp/Avalonia/FileTime.GuiApp/Views/MainWindow.axaml @@ -182,7 +182,7 @@ + IsVisible="{Binding AppState.SelectedTab^.SelectedsChildrenCollection.Collection, Converter={x:Static ObjectConverters.IsNotNull}, FallbackValue=False}">