diff --git a/Aaru.Gui/Aaru.Gui.csproj b/Aaru.Gui/Aaru.Gui.csproj index 5b14b5275..5caea1759 100644 --- a/Aaru.Gui/Aaru.Gui.csproj +++ b/Aaru.Gui/Aaru.Gui.csproj @@ -19,305 +19,305 @@ true - - - - - - - - + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + %(Filename) Designer - + Designer @@ -336,9 +336,15 @@ EncodingsDialog.xaml + + Designer + + + PluginsDialog.xaml + - + diff --git a/Aaru.Gui/Dialogs/dlgPlugins.xeto b/Aaru.Gui/Dialogs/dlgPlugins.xeto deleted file mode 100644 index 745c7e6ea..000000000 --- a/Aaru.Gui/Dialogs/dlgPlugins.xeto +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Aaru.Gui/Dialogs/dlgPlugins.xeto.cs b/Aaru.Gui/Dialogs/dlgPlugins.xeto.cs deleted file mode 100644 index 151e925ad..000000000 --- a/Aaru.Gui/Dialogs/dlgPlugins.xeto.cs +++ /dev/null @@ -1,511 +0,0 @@ -// /*************************************************************************** -// Aaru Data Preservation Suite -// ---------------------------------------------------------------------------- -// -// Filename : dlgPlugins.xeto.cs -// Author(s) : Natalia Portillo -// -// Component : Plugins dialog. -// -// --[ Description ] ---------------------------------------------------------- -// -// Implements the plugins list dialog. -// -// --[ License ] -------------------------------------------------------------- -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General public License for more details. -// -// You should have received a copy of the GNU General public License -// along with this program. If not, see . -// -// ---------------------------------------------------------------------------- -// Copyright © 2011-2020 Natalia Portillo -// ****************************************************************************/ - -using System; -using System.Collections.ObjectModel; -using System.Reflection; -using Aaru.CommonTypes.Interfaces; -using Aaru.Core; -using Aaru.Partitions; -using Eto.Forms; -using Eto.Serialization.Xaml; - -namespace Aaru.Gui.Dialogs -{ - public class dlgPlugins : Dialog - { - readonly ObservableCollection filesystems; - readonly ObservableCollection filters; - readonly ObservableCollection floppyImages; - readonly ObservableCollection mediaImages; - readonly ObservableCollection partitions; - readonly ObservableCollection readOnlyFilesystems; - readonly ObservableCollection writableFloppyImages; - readonly ObservableCollection writableImages; - - public dlgPlugins() - { - XamlReader.Load(this); - - DefaultButton = btnClose; - DisplayMode = DialogDisplayMode.Attached; - - filters = new ObservableCollection(); - floppyImages = new ObservableCollection(); - mediaImages = new ObservableCollection(); - partitions = new ObservableCollection(); - filesystems = new ObservableCollection(); - readOnlyFilesystems = new ObservableCollection(); - writableFloppyImages = new ObservableCollection(); - writableImages = new ObservableCollection(); - - grdFilters.DataStore = filters; - - grdFilters.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Name) - }, - HeaderText = "Name", Sortable = true - }); - - grdFilters.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => $"{r.Uuid}") - }, - HeaderText = "UUID", Sortable = true - }); - - grdFilters.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Version) - }, - HeaderText = "Version", Sortable = true - }); - - grdFilters.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Author) - }, - HeaderText = "Author", Sortable = true - }); - - grdFilters.AllowMultipleSelection = false; - grdFilters.AllowColumnReordering = true; - - grdReadableMediaImages.DataStore = mediaImages; - - grdReadableMediaImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Name) - }, - HeaderText = "Name", Sortable = true - }); - - grdReadableMediaImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => $"{r.Uuid}") - }, - HeaderText = "UUID", Sortable = true - }); - - grdReadableMediaImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Version) - }, - HeaderText = "Version", Sortable = true - }); - - grdReadableMediaImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Author) - }, - HeaderText = "Author", Sortable = true - }); - - grdReadableMediaImages.AllowMultipleSelection = false; - grdReadableMediaImages.AllowColumnReordering = true; - - grdPartitions.DataStore = partitions; - - grdPartitions.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Name) - }, - HeaderText = "Name", Sortable = true - }); - - grdPartitions.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => $"{r.Uuid}") - }, - HeaderText = "UUID", Sortable = true - }); - - grdPartitions.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Version) - }, - HeaderText = "Version", Sortable = true - }); - - grdPartitions.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Author) - }, - HeaderText = "Author", Sortable = true - }); - - grdPartitions.AllowMultipleSelection = false; - grdPartitions.AllowColumnReordering = true; - - grdFilesystem.DataStore = filesystems; - - grdFilesystem.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Name) - }, - HeaderText = "Name", Sortable = true - }); - - grdFilesystem.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => $"{r.Uuid}") - }, - HeaderText = "UUID", Sortable = true - }); - - grdFilesystem.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Version) - }, - HeaderText = "Version", Sortable = true - }); - - grdFilesystem.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Author) - }, - HeaderText = "Author", Sortable = true - }); - - grdFilesystem.AllowMultipleSelection = false; - grdFilesystem.AllowColumnReordering = true; - - grdReadOnlyFilesystem.DataStore = readOnlyFilesystems; - - grdReadOnlyFilesystem.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Name) - }, - HeaderText = "Name", Sortable = true - }); - - grdReadOnlyFilesystem.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => $"{r.Uuid}") - }, - HeaderText = "UUID", Sortable = true - }); - - grdReadOnlyFilesystem.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Version) - }, - HeaderText = "Version", Sortable = true - }); - - grdReadOnlyFilesystem.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Author) - }, - HeaderText = "Author", Sortable = true - }); - - grdReadOnlyFilesystem.AllowMultipleSelection = false; - grdReadOnlyFilesystem.AllowColumnReordering = true; - - grdReadableFloppyImages.DataStore = floppyImages; - - grdReadableFloppyImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Name) - }, - HeaderText = "Name", Sortable = true - }); - - grdReadableFloppyImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => $"{r.Uuid}") - }, - HeaderText = "UUID", Sortable = true - }); - - grdReadableFloppyImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Version) - }, - HeaderText = "Version", Sortable = true - }); - - grdReadableFloppyImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Author) - }, - HeaderText = "Author", Sortable = true - }); - - grdReadableFloppyImages.AllowMultipleSelection = false; - grdReadableFloppyImages.AllowColumnReordering = true; - - grdWritableFloppyImages.DataStore = writableFloppyImages; - - grdWritableFloppyImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Name) - }, - HeaderText = "Name", Sortable = true - }); - - grdWritableFloppyImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => $"{r.Uuid}") - }, - HeaderText = "UUID", Sortable = true - }); - - grdWritableFloppyImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Version) - }, - HeaderText = "Version", Sortable = true - }); - - grdWritableFloppyImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Author) - }, - HeaderText = "Author", Sortable = true - }); - - grdWritableFloppyImages.AllowMultipleSelection = false; - grdWritableFloppyImages.AllowColumnReordering = true; - - grdWritableMediaImages.DataStore = writableImages; - - grdWritableMediaImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Name) - }, - HeaderText = "Name", Sortable = true - }); - - grdWritableMediaImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => $"{r.Uuid}") - }, - HeaderText = "UUID", Sortable = true - }); - - grdWritableMediaImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Version) - }, - HeaderText = "Version", Sortable = true - }); - - grdWritableMediaImages.Columns.Add(new GridColumn - { - DataCell = new TextBoxCell - { - Binding = Binding.Property(r => r.Author) - }, - HeaderText = "Author", Sortable = true - }); - - grdWritableMediaImages.AllowMultipleSelection = false; - grdWritableMediaImages.AllowColumnReordering = true; - } - - protected override void OnLoadComplete(EventArgs e) - { - base.OnLoadComplete(e); - - filters.Clear(); - floppyImages.Clear(); - mediaImages.Clear(); - partitions.Clear(); - filesystems.Clear(); - readOnlyFilesystems.Clear(); - writableFloppyImages.Clear(); - writableImages.Clear(); - - foreach(IFilter filter in GetPluginBase.Instance.Filters.Values) - filters.Add(new PluginEntry - { - Name = filter.Name, Uuid = filter.Id, - Version = Assembly.GetAssembly(filter.GetType())?.GetName().Version.ToString(), - Author = filter.Author - }); - - foreach(IFloppyImage floppyImage in GetPluginBase.Instance.FloppyImages.Values) - floppyImages.Add(new PluginEntry - { - Name = floppyImage.Name, Uuid = floppyImage.Id, - Version = Assembly.GetAssembly(floppyImage.GetType())?.GetName().Version.ToString(), - Author = floppyImage.Author - }); - - foreach(IMediaImage mediaImage in GetPluginBase.Instance.ImagePluginsList.Values) - mediaImages.Add(new PluginEntry - { - Name = mediaImage.Name, Uuid = mediaImage.Id, - Version = Assembly.GetAssembly(mediaImage.GetType())?.GetName().Version.ToString(), - Author = mediaImage.Author - }); - - foreach(IPartition partition in GetPluginBase.Instance.PartPluginsList.Values) - partitions.Add(new PluginEntry - { - Name = partition.Name, Uuid = partition.Id, - Version = Assembly.GetAssembly(partition.GetType())?.GetName().Version.ToString(), - Author = partition.Author - }); - - foreach(IFilesystem filesystem in GetPluginBase.Instance.PluginsList.Values) - filesystems.Add(new PluginEntry - { - Name = filesystem.Name, Uuid = filesystem.Id, - Version = Assembly.GetAssembly(filesystem.GetType())?.GetName().Version.ToString(), - Author = filesystem.Author - }); - - foreach(IReadOnlyFilesystem readOnlyFilesystem in GetPluginBase.Instance.ReadOnlyFilesystems.Values) - readOnlyFilesystems.Add(new PluginEntry - { - Name = readOnlyFilesystem.Name, Uuid = readOnlyFilesystem.Id, - Version = Assembly.GetAssembly(readOnlyFilesystem.GetType())?.GetName().Version.ToString(), - Author = readOnlyFilesystem.Author - }); - - foreach(IWritableFloppyImage writableFloppyImage in GetPluginBase.Instance.WritableFloppyImages.Values) - writableFloppyImages.Add(new PluginEntry - { - Name = writableFloppyImage.Name, Uuid = writableFloppyImage.Id, - Version = Assembly.GetAssembly(writableFloppyImage.GetType())?.GetName().Version.ToString(), - Author = writableFloppyImage.Author - }); - - foreach(IWritableImage writableImage in GetPluginBase.Instance.WritableImages.Values) - writableImages.Add(new PluginEntry - { - Name = writableImage.Name, Uuid = writableImage.Id, - Version = Assembly.GetAssembly(writableImage.GetType())?.GetName().Version.ToString(), - Author = writableImage.Author - }); - } - - protected void OnBtnClose(object sender, EventArgs e) => Close(); - - class PluginEntry - { - public string Name { get; set; } - public Guid Uuid { get; set; } - public string Version { get; set; } - public string Author { get; set; } - } - - #region XAML controls - TabPage tabFilters; - GridView grdFilters; - TabPage tabPartitions; - GridView grdPartitions; - TabPage tabFilesystems; - GroupBox grpFilesystemIdentifyOnly; - GridView grdFilesystem; - GroupBox grpFilesystemReadable; - GridView grdReadOnlyFilesystem; - TabPage tabMediaImages; - GroupBox grpReadableMediaImages; - GridView grdReadableMediaImages; - GroupBox grpWritableMediaImages; - GridView grdWritableMediaImages; - Button btnClose; - TabPage tabFloppyImages; - GroupBox grpReadableFloppyImages; - GridView grdReadableFloppyImages; - GroupBox grpWritableFloppyImages; - GridView grdWritableFloppyImages; - #endregion - } -} \ No newline at end of file diff --git a/Aaru.Gui/Forms/frmMain.xeto.cs b/Aaru.Gui/Forms/frmMain.xeto.cs index 81dcd9980..cc2cf28fd 100644 --- a/Aaru.Gui/Forms/frmMain.xeto.cs +++ b/Aaru.Gui/Forms/frmMain.xeto.cs @@ -684,8 +684,6 @@ namespace Aaru.Gui.Forms protected void OnMenuConsole(object sender, EventArgs e) => new frmConsole().Show(); - protected void OnMenuPlugins(object sender, EventArgs e) => new dlgPlugins().ShowModal(this); - protected void OnMenuStatistics(object sender, EventArgs e) { var ctx = AaruContext.Create(Settings.Settings.LocalDbPath); diff --git a/Aaru.Gui/Models/PluginModel.cs b/Aaru.Gui/Models/PluginModel.cs new file mode 100644 index 000000000..18ef880fa --- /dev/null +++ b/Aaru.Gui/Models/PluginModel.cs @@ -0,0 +1,12 @@ +using System; + +namespace Aaru.Gui.Models +{ + public class PluginModel + { + public string Name { get; set; } + public Guid Uuid { get; set; } + public string Version { get; set; } + public string Author { get; set; } + } +} \ No newline at end of file diff --git a/Aaru.Gui/ViewModels/EncodingsDialogViewModel.cs b/Aaru.Gui/ViewModels/EncodingsDialogViewModel.cs index 9017af113..cc8f59ad0 100644 --- a/Aaru.Gui/ViewModels/EncodingsDialogViewModel.cs +++ b/Aaru.Gui/ViewModels/EncodingsDialogViewModel.cs @@ -13,7 +13,6 @@ namespace Aaru.Gui.ViewModels public class EncodingsDialogViewModel : ViewModelBase { readonly EncodingsDialog _view; - string _versionText; public EncodingsDialogViewModel(EncodingsDialog view) { diff --git a/Aaru.Gui/ViewModels/MainWindowViewModel.cs b/Aaru.Gui/ViewModels/MainWindowViewModel.cs index b4e56240a..ef7b667c9 100644 --- a/Aaru.Gui/ViewModels/MainWindowViewModel.cs +++ b/Aaru.Gui/ViewModels/MainWindowViewModel.cs @@ -15,6 +15,7 @@ namespace Aaru.Gui.ViewModels { AboutCommand = ReactiveCommand.Create(ExecuteAboutCommand); EncodingsCommand = ReactiveCommand.Create(ExecuteEncodingsCommand); + PluginsCommand = ReactiveCommand.Create(ExecutePluginsCommand); _view = view; } @@ -26,6 +27,7 @@ namespace Aaru.Gui.ViewModels public ReactiveCommand AboutCommand { get; } public ReactiveCommand EncodingsCommand { get; } + public ReactiveCommand PluginsCommand { get; } internal void ExecuteAboutCommand() { @@ -40,5 +42,12 @@ namespace Aaru.Gui.ViewModels dialog.DataContext = new EncodingsDialogViewModel(dialog); dialog.ShowDialog(_view); } + + internal void ExecutePluginsCommand() + { + var dialog = new PluginsDialog(); + dialog.DataContext = new PluginsDialogViewModel(dialog); + dialog.ShowDialog(_view); + } } } \ No newline at end of file diff --git a/Aaru.Gui/ViewModels/PluginsDialogViewModel.cs b/Aaru.Gui/ViewModels/PluginsDialogViewModel.cs new file mode 100644 index 000000000..add9b9d48 --- /dev/null +++ b/Aaru.Gui/ViewModels/PluginsDialogViewModel.cs @@ -0,0 +1,118 @@ +using System.Collections.ObjectModel; +using System.Reactive; +using System.Reflection; +using Aaru.CommonTypes.Interfaces; +using Aaru.Core; +using Aaru.Gui.Models; +using Aaru.Gui.Views; +using Aaru.Partitions; +using ReactiveUI; + +namespace Aaru.Gui.ViewModels +{ + public class PluginsDialogViewModel : ViewModelBase + { + readonly PluginsDialog _view; + + public PluginsDialogViewModel(PluginsDialog view) + { + _view = view; + Filters = new ObservableCollection(); + PartitionSchemes = new ObservableCollection(); + Filesystems = new ObservableCollection(); + ReadOnlyFilesystems = new ObservableCollection(); + Images = new ObservableCollection(); + WritableImages = new ObservableCollection(); + FloppyImages = new ObservableCollection(); + WritableFloppyImages = new ObservableCollection(); + CloseCommand = ReactiveCommand.Create(ExecuteCloseCommand); + + // TODO: Takes too much time + foreach(IFilter filter in GetPluginBase.Instance.Filters.Values) + Filters.Add(new PluginModel + { + Name = filter.Name, Uuid = filter.Id, + Version = Assembly.GetAssembly(filter.GetType())?.GetName().Version?.ToString(), + Author = filter.Author + }); + + foreach(IFloppyImage floppyImage in GetPluginBase.Instance.FloppyImages.Values) + FloppyImages.Add(new PluginModel + { + Name = floppyImage.Name, Uuid = floppyImage.Id, + Version = Assembly.GetAssembly(floppyImage.GetType())?.GetName().Version?.ToString(), + Author = floppyImage.Author + }); + + foreach(IMediaImage mediaImage in GetPluginBase.Instance.ImagePluginsList.Values) + Images.Add(new PluginModel + { + Name = mediaImage.Name, Uuid = mediaImage.Id, + Version = Assembly.GetAssembly(mediaImage.GetType())?.GetName().Version?.ToString(), + Author = mediaImage.Author + }); + + foreach(IPartition partition in GetPluginBase.Instance.PartPluginsList.Values) + PartitionSchemes.Add(new PluginModel + { + Name = partition.Name, Uuid = partition.Id, + Version = Assembly.GetAssembly(partition.GetType())?.GetName().Version?.ToString(), + Author = partition.Author + }); + + foreach(IFilesystem filesystem in GetPluginBase.Instance.PluginsList.Values) + Filesystems.Add(new PluginModel + { + Name = filesystem.Name, Uuid = filesystem.Id, + Version = Assembly.GetAssembly(filesystem.GetType())?.GetName().Version?.ToString(), + Author = filesystem.Author + }); + + foreach(IReadOnlyFilesystem readOnlyFilesystem in GetPluginBase.Instance.ReadOnlyFilesystems.Values) + ReadOnlyFilesystems.Add(new PluginModel + { + Name = readOnlyFilesystem.Name, Uuid = readOnlyFilesystem.Id, + Version = Assembly.GetAssembly(readOnlyFilesystem.GetType())?.GetName().Version?.ToString(), + Author = readOnlyFilesystem.Author + }); + + foreach(IWritableFloppyImage writableFloppyImage in GetPluginBase.Instance.WritableFloppyImages.Values) + WritableFloppyImages.Add(new PluginModel + { + Name = writableFloppyImage.Name, Uuid = writableFloppyImage.Id, + Version = Assembly.GetAssembly(writableFloppyImage.GetType())?.GetName().Version?.ToString(), + Author = writableFloppyImage.Author + }); + + foreach(IWritableImage writableImage in GetPluginBase.Instance.WritableImages.Values) + WritableImages.Add(new PluginModel + { + Name = writableImage.Name, Uuid = writableImage.Id, + Version = Assembly.GetAssembly(writableImage.GetType())?.GetName().Version?.ToString(), + Author = writableImage.Author + }); + } + + public string Title => "Plugins"; + public string FiltersLabel => "Filters"; + public string PartitionsLabel => "Partitions"; + public string FilesystemsLabel => "Filesystems"; + public string IdentifyLabel => "Identify only:"; + public string ImagesLabel => "Media images"; + public string FloppyImagesLabel => "Floppy images"; + public string ReadableLabel => "Readable:"; + public string WritableLabel => "Writable:"; + public string CloseLabel => "Close"; + public ReactiveCommand CloseCommand { get; } + public ObservableCollection Filters { get; } + public ObservableCollection PartitionSchemes { get; } + public ObservableCollection Filesystems { get; } + public ObservableCollection ReadOnlyFilesystems { get; } + public ObservableCollection Images { get; } + public ObservableCollection WritableImages { get; } + public ObservableCollection FloppyImages { get; } + public ObservableCollection WritableFloppyImages { get; } + + void ExecuteCloseCommand() => _view.Close(); + } +} \ No newline at end of file diff --git a/Aaru.Gui/Views/MainWindow.xaml b/Aaru.Gui/Views/MainWindow.xaml index 42bc4d91b..e0303e487 100644 --- a/Aaru.Gui/Views/MainWindow.xaml +++ b/Aaru.Gui/Views/MainWindow.xaml @@ -20,8 +20,9 @@ - - + + + diff --git a/Aaru.Gui/Views/PluginsDialog.xaml b/Aaru.Gui/Views/PluginsDialog.xaml new file mode 100644 index 000000000..9821d6c98 --- /dev/null +++ b/Aaru.Gui/Views/PluginsDialog.xaml @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Aaru.Gui/Views/PluginsDialog.xaml.cs b/Aaru.Gui/Views/PluginsDialog.xaml.cs new file mode 100644 index 000000000..dc604af0d --- /dev/null +++ b/Aaru.Gui/Views/PluginsDialog.xaml.cs @@ -0,0 +1,19 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace Aaru.Gui.Views +{ + public class PluginsDialog : Window + { + public PluginsDialog() + { + InitializeComponent(); + #if DEBUG + this.AttachDevTools(); + #endif + } + + void InitializeComponent() => AvaloniaXamlLoader.Load(this); + } +} \ No newline at end of file