[GUI] Change how errors are shown in device list window.

This commit is contained in:
2025-11-19 13:08:51 +00:00
parent 8c97cb5ccb
commit cd699f46de

View File

@@ -34,6 +34,7 @@ using System;
using System.Collections.ObjectModel;
using System.IO;
using System.Net.Sockets;
using System.Threading.Tasks;
using Aaru.Devices;
using Aaru.Devices.Remote;
using Aaru.Devices.Windows;
@@ -41,6 +42,7 @@ using Aaru.Gui.Models;
using Aaru.Gui.Views.Windows;
using Aaru.Localization;
using Aaru.Logging;
using Avalonia.Threading;
using CommunityToolkit.Mvvm.ComponentModel;
using JetBrains.Annotations;
using MsBox.Avalonia;
@@ -73,7 +75,7 @@ public partial class DeviceListViewModel : ViewModelBase
if(_remotePath != null)
#pragma warning restore MVVMTK0034
{
LoadRemote();
_ = Task.Run(LoadRemote);
return;
}
@@ -125,12 +127,17 @@ public partial class DeviceListViewModel : ViewModelBase
{
AaruLogging.Error(UI.Invalid_remote_protocol);
Dispatcher.UIThread.Invoke(() =>
{
IMsBox<ButtonResult> msbox = MessageBoxManager.GetMessageBoxStandard(UI.Title_Error,
UI.Invalid_remote_protocol,
ButtonEnum.Ok,
Icon.Error);
_ = msbox.ShowWindowDialogAsync(_window);
_ = msbox.ShowAsync();
_window.Close();
});
}
using var remote = new Remote(aaruUri);
@@ -155,13 +162,18 @@ public partial class DeviceListViewModel : ViewModelBase
catch(SocketException ex)
{
if(ex.SocketErrorCode == SocketError.HostNotFound)
{
Dispatcher.UIThread.Invoke(() =>
{
IMsBox<ButtonResult> msbox = MessageBoxManager.GetMessageBoxStandard(UI.Title_Error,
UI.Host_not_found,
ButtonEnum.Ok,
Icon.Error);
_ = msbox.ShowWindowDialogAsync(_window);
_ = msbox.ShowAsync();
_window.Close();
});
}
else
{
@@ -170,33 +182,48 @@ public partial class DeviceListViewModel : ViewModelBase
AaruLogging.Exception(ex, UI.Error_connecting_to_host);
AaruLogging.Error(UI.Error_connecting_to_host);
Dispatcher.UIThread.Invoke(() =>
{
IMsBox<ButtonResult> msbox = MessageBoxManager.GetMessageBoxStandard(UI.Title_Error,
Markup.Remove(UI.Error_connecting_to_host),
ButtonEnum.Ok,
Icon.Error);
_ = msbox.ShowWindowDialogAsync(_window);
_ = msbox.ShowAsync();
_window.Close();
});
}
}
// ReSharper disable once UncatchableException
catch(ArgumentException)
{
Dispatcher.UIThread.Invoke(() =>
{
IMsBox<ButtonResult> msbox = MessageBoxManager.GetMessageBoxStandard(UI.Title_Error,
UI.Server_sent_invalid_data,
ButtonEnum.Ok,
Icon.Error);
_ = msbox.ShowWindowDialogAsync(_window);
_ = msbox.ShowAsync();
_window.Close();
});
}
catch(IOException)
{
Dispatcher.UIThread.Invoke(() =>
{
IMsBox<ButtonResult> msbox = MessageBoxManager.GetMessageBoxStandard(UI.Title_Error,
UI.Unknown_network_error,
ButtonEnum.Ok,
Icon.Error);
_ = msbox.ShowWindowDialogAsync(_window);
_ = msbox.ShowAsync();
_window.Close();
});
}
catch(Exception ex)
{
@@ -205,12 +232,17 @@ public partial class DeviceListViewModel : ViewModelBase
AaruLogging.Exception(ex, UI.Error_connecting_to_host);
AaruLogging.Error(UI.Error_connecting_to_host);
Dispatcher.UIThread.Invoke(() =>
{
IMsBox<ButtonResult> msbox = MessageBoxManager.GetMessageBoxStandard(UI.Title_Error,
Markup.Remove(UI.Error_connecting_to_host),
ButtonEnum.Ok,
Icon.Error);
_ = msbox.ShowWindowDialogAsync(_window);
_ = msbox.ShowAsync();
_window.Close();
});
}
}
}