diff --git a/Aaru.Tui/ViewModels/Dialogs/MainHelpDialogViewModel.cs b/Aaru.Tui/ViewModels/Dialogs/MainHelpDialogViewModel.cs
new file mode 100644
index 000000000..1ab2a440c
--- /dev/null
+++ b/Aaru.Tui/ViewModels/Dialogs/MainHelpDialogViewModel.cs
@@ -0,0 +1,24 @@
+using System.Windows.Input;
+using CommunityToolkit.Mvvm.Input;
+using Iciclecreek.Avalonia.WindowManager;
+
+namespace Aaru.Tui.ViewModels.Dialogs;
+
+public sealed class MainHelpDialogViewModel : ViewModelBase
+{
+ internal ManagedWindow _dialog = null!;
+
+
+ public MainHelpDialogViewModel(ManagedWindow dialog)
+ {
+ _dialog = dialog;
+ OkCommand = new RelayCommand(Ok);
+ }
+
+ public ICommand OkCommand { get; }
+
+ void Ok()
+ {
+ _dialog.Close(true);
+ }
+}
\ No newline at end of file
diff --git a/Aaru.Tui/ViewModels/Windows/MainWindowViewModel.cs b/Aaru.Tui/ViewModels/Windows/MainWindowViewModel.cs
index 5e396e1ce..72c80f1f5 100644
--- a/Aaru.Tui/ViewModels/Windows/MainWindowViewModel.cs
+++ b/Aaru.Tui/ViewModels/Windows/MainWindowViewModel.cs
@@ -73,6 +73,7 @@ public sealed partial class MainWindowViewModel : ViewModelBase
ExitCommand = new RelayCommand(Exit);
SectorViewCommand = new RelayCommand(SectorView);
GoToPathCommand = new AsyncRelayCommand(GoToPathAsync);
+ HelpCommand = new AsyncRelayCommand(HelpAsync);
OpenSelectedFileCommand = new RelayCommand(OpenSelectedFile, CanOpenSelectedFile);
InformationalVersion =
@@ -107,6 +108,7 @@ public sealed partial class MainWindowViewModel : ViewModelBase
public ICommand ExitCommand { get; }
public ICommand SectorViewCommand { get; }
public ICommand GoToPathCommand { get; }
+ public ICommand HelpCommand { get; }
public bool IsFileInfoAvailable => SelectedFile?.FileInfo != null;
public bool SelectedFileIsNotDirectory => SelectedFile?.IsDirectory == false;
public long? SelectedFileLength => SelectedFile?.IsDirectory == false ? SelectedFile?.FileInfo?.Length : 0;
@@ -118,6 +120,19 @@ public sealed partial class MainWindowViewModel : ViewModelBase
public string? SelectedFileInformation => SelectedFile?.Information;
+ Task HelpAsync()
+ {
+ var dialog = new MainHelpDialog
+ {
+ DataContext = new MainHelpDialogViewModel(null!)
+ };
+
+ // Set the dialog reference after creation
+ ((MainHelpDialogViewModel)dialog.DataContext!)._dialog = dialog;
+
+ return dialog.ShowDialog(_view);
+ }
+
async Task GoToPathAsync()
{
var dialog = new GoToPathDialog
diff --git a/Aaru.Tui/Views/Dialogs/MainHelpDialog.axaml b/Aaru.Tui/Views/Dialogs/MainHelpDialog.axaml
new file mode 100644
index 000000000..5a8cbd372
--- /dev/null
+++ b/Aaru.Tui/Views/Dialogs/MainHelpDialog.axaml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Aaru.Tui/Views/Dialogs/MainHelpDialog.axaml.cs b/Aaru.Tui/Views/Dialogs/MainHelpDialog.axaml.cs
new file mode 100644
index 000000000..dcd1bb71a
--- /dev/null
+++ b/Aaru.Tui/Views/Dialogs/MainHelpDialog.axaml.cs
@@ -0,0 +1,11 @@
+using Iciclecreek.Avalonia.WindowManager;
+
+namespace Aaru.Tui.Views.Dialogs;
+
+public partial class MainHelpDialog : ManagedWindow
+{
+ public MainHelpDialog()
+ {
+ InitializeComponent();
+ }
+}
\ No newline at end of file
diff --git a/Aaru.Tui/Views/Windows/MainWindow.axaml b/Aaru.Tui/Views/Windows/MainWindow.axaml
index 1280b0803..ab3382693 100644
--- a/Aaru.Tui/Views/Windows/MainWindow.axaml
+++ b/Aaru.Tui/Views/Windows/MainWindow.axaml
@@ -11,7 +11,10 @@