mirror of
https://github.com/claunia/romrepomgr.git
synced 2025-12-16 19:24:51 +00:00
[App] Ensure DAT importer model events run on UI thread.
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Avalonia.Media;
|
using Avalonia.Media;
|
||||||
|
using Avalonia.Threading;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using RomRepoMgr.Core.EventArgs;
|
using RomRepoMgr.Core.EventArgs;
|
||||||
|
|
||||||
@@ -24,7 +25,7 @@ public partial class DatImporter : ObservableObject
|
|||||||
public Task Task { get; set; }
|
public Task Task { get; set; }
|
||||||
public bool Running { get; private set; } = true;
|
public bool Running { get; private set; } = true;
|
||||||
|
|
||||||
internal void OnErrorOccurred(object sender, ErrorEventArgs e)
|
internal void OnErrorOccurred(object sender, ErrorEventArgs e) => Dispatcher.UIThread.Post(() =>
|
||||||
{
|
{
|
||||||
StatusMessage = e.Message;
|
StatusMessage = e.Message;
|
||||||
StatusColor = Colors.Red;
|
StatusColor = Colors.Red;
|
||||||
@@ -33,31 +34,25 @@ public partial class DatImporter : ObservableObject
|
|||||||
|
|
||||||
Indeterminate = false;
|
Indeterminate = false;
|
||||||
Progress = 0;
|
Progress = 0;
|
||||||
}
|
});
|
||||||
|
|
||||||
internal void OnSetIndeterminateProgress(object sender, EventArgs e)
|
internal void OnSetIndeterminateProgress(object sender, EventArgs e) =>
|
||||||
{
|
Dispatcher.UIThread.Post(() => Indeterminate = true);
|
||||||
Indeterminate = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
internal void OnSetMessage(object sender, MessageEventArgs e)
|
internal void OnSetMessage(object sender, MessageEventArgs e) =>
|
||||||
{
|
Dispatcher.UIThread.Post(() => StatusMessage = e.Message);
|
||||||
StatusMessage = e.Message;
|
|
||||||
}
|
|
||||||
|
|
||||||
internal void OnSetProgress(object sender, ProgressEventArgs e)
|
internal void OnSetProgress(object sender, ProgressEventArgs e) =>
|
||||||
{
|
Dispatcher.UIThread.Post(() => Progress = e.Value);
|
||||||
Progress = e.Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
internal void OnSetProgressBounds(object sender, ProgressBoundsEventArgs e)
|
internal void OnSetProgressBounds(object sender, ProgressBoundsEventArgs e) => Dispatcher.UIThread.Post(() =>
|
||||||
{
|
{
|
||||||
Indeterminate = false;
|
Indeterminate = false;
|
||||||
Maximum = e.Maximum;
|
Maximum = e.Maximum;
|
||||||
Minimum = e.Minimum;
|
Minimum = e.Minimum;
|
||||||
}
|
});
|
||||||
|
|
||||||
internal void OnWorkFinished(object sender, MessageEventArgs e)
|
internal void OnWorkFinished(object sender, MessageEventArgs e) => Dispatcher.UIThread.Post(() =>
|
||||||
{
|
{
|
||||||
Indeterminate = false;
|
Indeterminate = false;
|
||||||
Maximum = 1;
|
Maximum = 1;
|
||||||
@@ -65,5 +60,5 @@ public partial class DatImporter : ObservableObject
|
|||||||
Progress = 1;
|
Progress = 1;
|
||||||
StatusMessage = e.Message;
|
StatusMessage = e.Message;
|
||||||
Running = false;
|
Running = false;
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user