From 5a99a800acb21615e71d9a4d392c049bb22d0176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81d=C3=A1m=20Kov=C3=A1cs?= Date: Tue, 8 Mar 2022 20:12:20 +0100 Subject: [PATCH] Nuget updates, bugfixes --- src/Core/FileTime.Core/FileTime.Core.csproj | 2 +- .../FileTime.Avalonia/Application/AppState.cs | 2 +- .../FileTime.Avalonia/Application/TabContainer.cs | 3 ++- .../FileTime.Avalonia/FileTime.Avalonia.csproj | 14 +++++++------- src/GuiApp/FileTime.Avalonia/Program.cs | 8 +++++--- .../ViewModels/ParallelCommandViewModel.cs | 14 ++++++++++---- .../FileTime.Avalonia/Views/MainWindow.axaml | 2 +- .../FileTime.Providers.Local.csproj | 6 +++--- 8 files changed, 30 insertions(+), 21 deletions(-) diff --git a/src/Core/FileTime.Core/FileTime.Core.csproj b/src/Core/FileTime.Core/FileTime.Core.csproj index e8c7c35..f9390b6 100644 --- a/src/Core/FileTime.Core/FileTime.Core.csproj +++ b/src/Core/FileTime.Core/FileTime.Core.csproj @@ -1,7 +1,7 @@ - + diff --git a/src/GuiApp/FileTime.Avalonia/Application/AppState.cs b/src/GuiApp/FileTime.Avalonia/Application/AppState.cs index e185eaf..8ffb105 100644 --- a/src/GuiApp/FileTime.Avalonia/Application/AppState.cs +++ b/src/GuiApp/FileTime.Avalonia/Application/AppState.cs @@ -53,7 +53,7 @@ namespace FileTime.Avalonia.Application private List _favoriteElements; public List PreviousKeys { get; } = new(); - + public ObservableCollection TimelineCommands { get; } = new(); partial void OnInitialize() diff --git a/src/GuiApp/FileTime.Avalonia/Application/TabContainer.cs b/src/GuiApp/FileTime.Avalonia/Application/TabContainer.cs index 2b073d3..b7c5722 100644 --- a/src/GuiApp/FileTime.Avalonia/Application/TabContainer.cs +++ b/src/GuiApp/FileTime.Avalonia/Application/TabContainer.cs @@ -18,6 +18,7 @@ using FileTime.Core.Services; using FileTime.Core.ContainerSizeScanner; using System.Collections.Generic; using FileTime.Core.Providers; +using Avalonia.Threading; namespace FileTime.Avalonia.Application { @@ -122,7 +123,7 @@ namespace FileTime.Avalonia.Application catch { } } - History = newHistory; + await Dispatcher.UIThread.InvokeAsync(() => History = newHistory); } private async Task TimeRunnerContainerRefreshed(object? sender, AbsolutePath container, CancellationToken token = default) diff --git a/src/GuiApp/FileTime.Avalonia/FileTime.Avalonia.csproj b/src/GuiApp/FileTime.Avalonia/FileTime.Avalonia.csproj index 1fccfac..2c9ca32 100644 --- a/src/GuiApp/FileTime.Avalonia/FileTime.Avalonia.csproj +++ b/src/GuiApp/FileTime.Avalonia/FileTime.Avalonia.csproj @@ -27,18 +27,18 @@ - - + + - - + + - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/GuiApp/FileTime.Avalonia/Program.cs b/src/GuiApp/FileTime.Avalonia/Program.cs index b24088b..fad1123 100644 --- a/src/GuiApp/FileTime.Avalonia/Program.cs +++ b/src/GuiApp/FileTime.Avalonia/Program.cs @@ -56,13 +56,15 @@ namespace FileTime.Avalonia [STAThread] public static void Main(string[] args) { +#if DEBUG +#else try { - BuildAvaloniaApp().StartWithClassicDesktopLifetime(args); - } +#endif + BuildAvaloniaApp().StartWithClassicDesktopLifetime(args); #if DEBUG - finally { } #else + } catch (Exception e) { var message = $"Ciritcal error cought in {nameof(Program)}"; diff --git a/src/GuiApp/FileTime.Avalonia/ViewModels/ParallelCommandViewModel.cs b/src/GuiApp/FileTime.Avalonia/ViewModels/ParallelCommandViewModel.cs index 3d1e83d..60c6854 100644 --- a/src/GuiApp/FileTime.Avalonia/ViewModels/ParallelCommandViewModel.cs +++ b/src/GuiApp/FileTime.Avalonia/ViewModels/ParallelCommandViewModel.cs @@ -1,7 +1,10 @@ using System; +using System.Reactive.Linq; +using System.Reactive.Subjects; using System.Threading; using System.Threading.Tasks; using AsyncEvent; +using Avalonia.Threading; using FileTime.Core.Command; using FileTime.Core.Timeline; using MvvmGen; @@ -16,8 +19,10 @@ namespace FileTime.Avalonia.ViewModels [Property] private ReadOnlyCommandTimeState _commandTimeState; + private readonly BehaviorSubject _progressSubject = new BehaviorSubject(0); + [Property] - private int _progress; + private IObservable _progress; [Property] private bool _isSelected; @@ -31,12 +36,13 @@ namespace FileTime.Avalonia.ViewModels { _commandTimeState = commandTimeState; _commandTimeState.Command.ProgressChanged.Add(HandleProgressChange); + + _progress = _progressSubject.Throttle(TimeSpan.FromSeconds(1)); } - private Task HandleProgressChange(object? sender, AsyncEventArgs e, CancellationToken token = default) + private async Task HandleProgressChange(object? sender, AsyncEventArgs e, CancellationToken token = default) { - Progress = _commandTimeState.Command.Progress; - return Task.CompletedTask; + await Dispatcher.UIThread.InvokeAsync(() => _progressSubject.OnNext(_commandTimeState.Command.Progress)); } public void Destroy() diff --git a/src/GuiApp/FileTime.Avalonia/Views/MainWindow.axaml b/src/GuiApp/FileTime.Avalonia/Views/MainWindow.axaml index 04ac18a..248de3f 100644 --- a/src/GuiApp/FileTime.Avalonia/Views/MainWindow.axaml +++ b/src/GuiApp/FileTime.Avalonia/Views/MainWindow.axaml @@ -232,7 +232,7 @@ - + diff --git a/src/Providers/FileTime.Providers.Local/FileTime.Providers.Local.csproj b/src/Providers/FileTime.Providers.Local/FileTime.Providers.Local.csproj index acdcfd5..e9efd12 100644 --- a/src/Providers/FileTime.Providers.Local/FileTime.Providers.Local.csproj +++ b/src/Providers/FileTime.Providers.Local/FileTime.Providers.Local.csproj @@ -1,10 +1,10 @@ - + - - + +