aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs')
-rw-r--r--Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs53
1 files changed, 31 insertions, 22 deletions
diff --git a/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs b/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs
index bc8e6450..a9bb38ee 100644
--- a/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs
+++ b/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs
@@ -1047,8 +1047,11 @@ namespace Ryujinx.Ava.Ui.ViewModels
if (!ulong.TryParse(selection.TitleId, NumberStyles.HexNumber, CultureInfo.InvariantCulture,
out ulong titleIdNumber))
{
- ContentDialogHelper.CreateErrorDialog(_owner,
- LocaleManager.Instance["DialogRyujinxErrorMessage"], LocaleManager.Instance["DialogInvalidTitleIdErrorMessage"]);
+ Dispatcher.UIThread.Post(async () =>
+ {
+ await ContentDialogHelper.CreateErrorDialog(_owner,
+ LocaleManager.Instance["DialogRyujinxErrorMessage"], LocaleManager.Instance["DialogInvalidTitleIdErrorMessage"]);
+ });
return;
}
@@ -1155,7 +1158,7 @@ namespace Ryujinx.Ava.Ui.ViewModels
}
catch (Exception e)
{
- ContentDialogHelper.CreateErrorDialog(_owner, string.Format(LocaleManager.Instance["DialogPPTCDeletionErrorMessage"], file.Name, e));
+ await ContentDialogHelper.CreateErrorDialog(_owner, string.Format(LocaleManager.Instance["DialogPPTCDeletionErrorMessage"], file.Name, e));
}
}
}
@@ -1216,7 +1219,7 @@ namespace Ryujinx.Ava.Ui.ViewModels
}
catch (Exception e)
{
- ContentDialogHelper.CreateErrorDialog(_owner, string.Format(LocaleManager.Instance["DialogPPTCDeletionErrorMessage"], directory.Name, e));
+ await ContentDialogHelper.CreateErrorDialog(_owner, string.Format(LocaleManager.Instance["DialogPPTCDeletionErrorMessage"], directory.Name, e));
}
}
}
@@ -1229,7 +1232,7 @@ namespace Ryujinx.Ava.Ui.ViewModels
}
catch (Exception e)
{
- ContentDialogHelper.CreateErrorDialog(_owner, string.Format(LocaleManager.Instance["ShaderCachePurgeError"], file.Name, e));
+ await ContentDialogHelper.CreateErrorDialog(_owner, string.Format(LocaleManager.Instance["ShaderCachePurgeError"], file.Name, e));
}
}
}
@@ -1310,8 +1313,11 @@ namespace Ryujinx.Ava.Ui.ViewModels
if (!ulong.TryParse(selection.TitleId, NumberStyles.HexNumber, CultureInfo.InvariantCulture,
out ulong titleIdNumber))
{
- ContentDialogHelper.CreateErrorDialog(_owner,
- LocaleManager.Instance["DialogRyujinxErrorMessage"], LocaleManager.Instance["DialogInvalidTitleIdErrorMessage"]);
+ Dispatcher.UIThread.Post(async () =>
+ {
+ await ContentDialogHelper.CreateErrorDialog(_owner,
+ LocaleManager.Instance["DialogRyujinxErrorMessage"], LocaleManager.Instance["DialogInvalidTitleIdErrorMessage"]);
+ });
return;
}
@@ -1333,8 +1339,11 @@ namespace Ryujinx.Ava.Ui.ViewModels
if (!ulong.TryParse(selection.TitleId, NumberStyles.HexNumber, CultureInfo.InvariantCulture,
out ulong titleIdNumber))
{
- ContentDialogHelper.CreateErrorDialog(_owner,
- LocaleManager.Instance["DialogRyujinxErrorMessage"], LocaleManager.Instance["DialogInvalidTitleIdErrorMessage"]);
+ Dispatcher.UIThread.Post(async () =>
+ {
+ await ContentDialogHelper.CreateErrorDialog(_owner,
+ LocaleManager.Instance["DialogRyujinxErrorMessage"], LocaleManager.Instance["DialogInvalidTitleIdErrorMessage"]);
+ });
return;
}
@@ -1350,30 +1359,30 @@ namespace Ryujinx.Ava.Ui.ViewModels
ApplicationHelper.OpenSaveDir(in filter, titleId, data.ControlHolder, data.TitleName);
}
- private void ExtractLogo()
+ private async void ExtractLogo()
{
var selection = SelectedApplication;
if (selection != null)
{
- ApplicationHelper.ExtractSection(NcaSectionType.Logo, selection.Path);
+ await ApplicationHelper.ExtractSection(NcaSectionType.Logo, selection.Path);
}
}
- private void ExtractRomFs()
+ private async void ExtractRomFs()
{
var selection = SelectedApplication;
if (selection != null)
{
- ApplicationHelper.ExtractSection(NcaSectionType.Data, selection.Path);
+ await ApplicationHelper.ExtractSection(NcaSectionType.Data, selection.Path);
}
}
- private void ExtractExeFs()
+ private async void ExtractExeFs()
{
var selection = SelectedApplication;
if (selection != null)
{
- ApplicationHelper.ExtractSection(NcaSectionType.Code, selection.Path);
+ await ApplicationHelper.ExtractSection(NcaSectionType.Code, selection.Path);
}
}
@@ -1382,7 +1391,7 @@ namespace Ryujinx.Ava.Ui.ViewModels
_owner.Close();
}
- private async void HandleFirmwareInstallation(string path)
+ private async Task HandleFirmwareInstallation(string path)
{
try
{
@@ -1392,7 +1401,7 @@ namespace Ryujinx.Ava.Ui.ViewModels
if (firmwareVersion == null)
{
- ContentDialogHelper.CreateErrorDialog(_owner, string.Format(LocaleManager.Instance["DialogFirmwareInstallerFirmwareNotFoundErrorMessage"], filename));
+ await ContentDialogHelper.CreateErrorDialog(_owner, string.Format(LocaleManager.Instance["DialogFirmwareInstallerFirmwareNotFoundErrorMessage"], filename));
return;
}
@@ -1457,11 +1466,11 @@ namespace Ryujinx.Ava.Ui.ViewModels
}
catch (Exception ex)
{
- Dispatcher.UIThread.InvokeAsync(() =>
+ Dispatcher.UIThread.InvokeAsync(async () =>
{
waitingDialog.Close();
- ContentDialogHelper.CreateErrorDialog(_owner, ex.Message);
+ await ContentDialogHelper.CreateErrorDialog(_owner, ex.Message);
});
}
finally
@@ -1482,7 +1491,7 @@ namespace Ryujinx.Ava.Ui.ViewModels
}
catch (Exception ex)
{
- ContentDialogHelper.CreateErrorDialog(_owner, ex.Message);
+ await ContentDialogHelper.CreateErrorDialog(_owner, ex.Message);
}
}
@@ -1497,7 +1506,7 @@ namespace Ryujinx.Ava.Ui.ViewModels
if (file != null && file.Length > 0)
{
- HandleFirmwareInstallation(file[0]);
+ await HandleFirmwareInstallation(file[0]);
}
}
@@ -1509,7 +1518,7 @@ namespace Ryujinx.Ava.Ui.ViewModels
if (!string.IsNullOrWhiteSpace(folder))
{
- HandleFirmwareInstallation(folder);
+ await HandleFirmwareInstallation(folder);
}
}
}