[GUI] Use compiled bindings.

This commit is contained in:
2025-11-19 05:26:14 +00:00
parent 98345425f8
commit 363cdbdd37
38 changed files with 53 additions and 12 deletions

View File

@@ -5,6 +5,7 @@
<Title>Aaru Data Preservation Suite</Title>
<NoWarn>CS0649,CS0169</NoWarn>
<Authors>Natalia Portillo &lt;claunia@claunia.com&gt;</Authors>
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<NoWarn>CS1591;CS1574</NoWarn>

View File

@@ -32,6 +32,7 @@
using System.Collections.ObjectModel;
using Aaru.CommonTypes.Interfaces;
using Avalonia.Media;
using Avalonia.Media.Imaging;
namespace Aaru.Gui.Models;

View File

@@ -199,6 +199,8 @@ public sealed partial class DeviceInfoViewModel : ViewModelBase
[ObservableProperty]
bool _removable;
[ObservableProperty]
bool _removableChecked;
[ObservableProperty]
string _revision;
[ObservableProperty]
bool _saveUsbDescriptorsEnabled;
@@ -213,6 +215,8 @@ public sealed partial class DeviceInfoViewModel : ViewModelBase
[ObservableProperty]
SdMmcInfo _sdMmcInfo;
[ObservableProperty]
string _sdMmcText;
[ObservableProperty]
string _secureDigital;
[ObservableProperty]
string _serial;

View File

@@ -116,11 +116,11 @@ public sealed class SubdirectoryViewModel
Name = dirent,
Stat = stat,
Color =
new SolidColorBrush(Color.Parse(DirColorsParser.Instance.ExtensionColors
.TryGetValue(Path.GetExtension(dirent),
out string hex)
? hex
: DirColorsParser.Instance.NormalColor))
new SolidColorBrush(Avalonia.Media.Color.Parse(DirColorsParser.Instance.ExtensionColors
.TryGetValue(Path.GetExtension(dirent),
out string hex)
? hex
: DirColorsParser.Instance.NormalColor))
});
}
@@ -130,6 +130,7 @@ public sealed class SubdirectoryViewModel
public ObservableCollection<FileModel> Entries { get; }
public List<FileModel> SelectedEntries { get; }
public ICommand ExtractFilesCommand { get; }
public IBrush Color { get; }
async Task ExtractFiles()
{

View File

@@ -46,6 +46,7 @@
x:Class="Aaru.Gui.Views.Dialogs.About"
Icon="/Assets/aaru-logo.png"
CanResize="False"
x:DataType="dialogs:AboutViewModel"
Title="{x:Static localization:UI.Title_About_Aaru}">
<Design.DataContext>
<dialogs:AboutViewModel />

View File

@@ -45,6 +45,7 @@
Height="450"
x:Class="Aaru.Gui.Views.Dialogs.Console"
Icon="/Assets/aaru-logo.png"
x:DataType="dialogs:ConsoleViewModel"
Title="{x:Static localization:UI.Title_Console}">
<Design.DataContext>
<dialogs:ConsoleViewModel />

View File

@@ -46,6 +46,7 @@
x:Class="Aaru.Gui.Views.Dialogs.Encodings"
Icon="/Assets/aaru-logo.png"
CanResize="False"
x:DataType="dialogs:EncodingsViewModel"
Title="{x:Static localization:UI.Encodings}">
<Design.DataContext>
<dialogs:EncodingsViewModel />

View File

@@ -46,6 +46,7 @@
x:Class="Aaru.Gui.Views.Dialogs.LicenseDialog"
Icon="/Assets/aaru-logo.png"
CanResize="False"
x:DataType="dialogs:LicenseViewModel"
Title="{x:Static localization:UI.Title_Aaru_license}">
<Design.DataContext>
<dialogs:LicenseViewModel />

View File

@@ -45,6 +45,7 @@
Height="600"
x:Class="Aaru.Gui.Views.Dialogs.PluginsDialog"
Icon="/Assets/aaru-logo.png"
x:DataType="dialogs:PluginsViewModel"
Title="{x:Static localization:UI.Title_Plugins}">
<Design.DataContext>
<dialogs:PluginsViewModel />

View File

@@ -45,6 +45,7 @@
x:Class="Aaru.Gui.Views.Dialogs.SettingsDialog"
Icon="/Assets/aaru-logo.png"
CanResize="False"
x:DataType="dialogs:SettingsViewModel"
Title="{x:Static localization:UI.Title_Settings}">
<Design.DataContext>
<dialogs:SettingsViewModel />

View File

@@ -46,6 +46,7 @@
x:Class="Aaru.Gui.Views.Dialogs.StatisticsDialog"
Icon="/Assets/aaru-logo.png"
CanResize="False"
x:DataType="dialogs:StatisticsViewModel"
Title="{x:Static localization:UI.Title_Statistics}">
<Design.DataContext>
<dialogs:StatisticsViewModel />

View File

@@ -40,6 +40,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="panels:DeviceInfoViewModel"
x:Class="Aaru.Gui.Views.Panels.DeviceInfo">
<Design.DataContext>
<panels:DeviceInfoViewModel />

View File

@@ -41,6 +41,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="panels:FileSystemViewModel"
x:Class="Aaru.Gui.Views.Panels.FileSystem">
<Design.DataContext>
<panels:FileSystemViewModel />

View File

@@ -41,6 +41,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="panels:ImageInfoViewModel"
x:Class="Aaru.Gui.Views.Panels.ImageInfo">
<Design.DataContext>
<panels:ImageInfoViewModel />

View File

@@ -40,6 +40,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="panels:MediaInfoViewModel"
x:Class="Aaru.Gui.Views.Panels.MediaInfo">
<Design.DataContext>
<panels:MediaInfoViewModel />

View File

@@ -40,6 +40,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="panels:PartitionViewModel"
x:Class="Aaru.Gui.Views.Panels.Partition">
<Design.DataContext>
<panels:PartitionViewModel />

View File

@@ -41,6 +41,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="panels:SubdirectoryViewModel"
x:Class="Aaru.Gui.Views.Panels.Subdirectory">
<Design.DataContext>
<panels:SubdirectoryViewModel />

View File

@@ -41,6 +41,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="tabs:AtaInfoViewModel"
x:Class="Aaru.Gui.Views.Tabs.AtaInfo">
<Design.DataContext>
<tabs:AtaInfoViewModel />

View File

@@ -41,6 +41,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="tabs:BlurayInfoViewModel"
x:Class="Aaru.Gui.Views.Tabs.BlurayInfo">
<Design.DataContext>
<tabs:BlurayInfoViewModel />

View File

@@ -41,6 +41,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="tabs:CompactDiscInfoViewModel"
x:Class="Aaru.Gui.Views.Tabs.CompactDiscInfo">
<Design.DataContext>
<tabs:CompactDiscInfoViewModel />

View File

@@ -41,6 +41,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="tabs:DvdInfoViewModel"
x:Class="Aaru.Gui.Views.Tabs.DvdInfo">
<Design.DataContext>
<tabs:DvdInfoViewModel />

View File

@@ -41,6 +41,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="tabs:DvdWritableInfoViewModel"
x:Class="Aaru.Gui.Views.Tabs.DvdWritableInfo">
<Design.DataContext>
<tabs:DvdWritableInfoViewModel />

View File

@@ -41,6 +41,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="tabs:PcmciaInfoViewModel"
x:Class="Aaru.Gui.Views.Tabs.PcmciaInfo">
<Design.DataContext>
<tabs:PcmciaInfoViewModel />

View File

@@ -41,6 +41,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="tabs:ScsiInfoViewModel"
x:Class="Aaru.Gui.Views.Tabs.ScsiInfo">
<Design.DataContext>
<tabs:ScsiInfoViewModel />

View File

@@ -41,6 +41,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="tabs:SdMmcInfoViewModel"
x:Class="Aaru.Gui.Views.Tabs.SdMmcInfo">
<Design.DataContext>
<tabs:SdMmcInfoViewModel />

View File

@@ -40,6 +40,7 @@
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:DataType="tabs:XboxInfoViewModel"
x:Class="Aaru.Gui.Views.Tabs.XboxInfo">
<Design.DataContext>
<tabs:XboxInfoViewModel />

View File

@@ -45,6 +45,7 @@
Height="480"
x:Class="Aaru.Gui.Views.Windows.DecodeMediaTags"
Icon="/Assets/aaru-logo.png"
x:DataType="windows:DecodeMediaTagsViewModel"
Title="{x:Static localization:UI.Title_Decode_media_tags}">
<Design.DataContext>
<windows:DecodeMediaTagsViewModel />

View File

@@ -9,6 +9,7 @@
d:DesignWidth="800"
d:DesignHeight="450"
x:Class="Aaru.Gui.Views.Windows.IbgLogView"
x:DataType="windows:IbgLogViewModel"
Title="{x:Static localization:UI.Title_IMGBurn_log_viewer}">
<Design.DataContext>
<windows:IbgLogViewModel />

View File

@@ -45,6 +45,7 @@
Height="600"
x:Class="Aaru.Gui.Views.Windows.ImageChecksum"
Icon="/Assets/aaru-logo.png"
x:DataType="windows:ImageChecksumViewModel"
Title="{x:Static localization:UI.Title_Checksum_image_contents}">
<Design.DataContext>
<windows:ImageChecksumViewModel />

View File

@@ -45,6 +45,7 @@
Height="832"
x:Class="Aaru.Gui.Views.Windows.ImageConvert"
Icon="/Assets/aaru-logo.png"
x:DataType="windows:ImageConvertViewModel"
Title="{x:Static localization:UI.Title_Convert_image}">
<Design.DataContext>
<windows:ImageConvertViewModel />

View File

@@ -45,6 +45,7 @@
Height="320"
x:Class="Aaru.Gui.Views.Windows.ImageEntropy"
Icon="/Assets/aaru-logo.png"
x:DataType="windows:ImageEntropyViewModel"
Title="{x:Static localization:UI.Title_Calculating_entropy}">
<Design.DataContext>
<windows:ImageEntropyViewModel />

View File

@@ -46,6 +46,7 @@
x:Class="Aaru.Gui.Views.Windows.ImageSidecar"
Icon="/Assets/aaru-logo.png"
CanResize="False"
x:DataType="windows:ImageSidecarViewModel"
Title="Image sidecar creation">
<Design.DataContext>
<windows:ImageSidecarViewModel />

View File

@@ -45,6 +45,7 @@
Height="400"
x:Class="Aaru.Gui.Views.Windows.ImageVerify"
Icon="/Assets/aaru-logo.png"
x:DataType="windows:ImageVerifyViewModel"
Title="{x:Static localization:UI.Title_Verify_image}">
<Design.DataContext>
<windows:ImageVerifyViewModel />

View File

@@ -10,6 +10,7 @@
d:DesignHeight="450"
x:Class="Aaru.Gui.Views.Windows.MainWindow"
Icon="/Assets/aaru-logo.png"
x:DataType="windows:MainWindowViewModel"
Title="{Binding Title, Mode=OneWay}">
<Design.DataContext>
<windows:MainWindowViewModel />
@@ -86,19 +87,19 @@
<StackPanel.ContextMenu>
<ContextMenu
DataContext="{Binding Path=DataContext, RelativeSource={RelativeSource AncestorType=Window}, Mode=OneWay}">
<MenuItem Command="{Binding CalculateEntropyCommand, Mode=OneWay}"
<MenuItem Command="{Binding $parent[Window].DataContext.CalculateEntropyCommand, Mode=OneWay}"
Header="{x:Static localization:UI.ButtonLabel_Calculate_entropy}" />
<MenuItem Command="{Binding VerifyImageCommand, Mode=OneWay}"
<MenuItem Command="{Binding $parent[Window].DataContext.VerifyImageCommand, Mode=OneWay}"
Header="{x:Static localization:UI.ButtonLabel_Verify}" />
<MenuItem Command="{Binding ChecksumImageCommand, Mode=OneWay}"
<MenuItem Command="{Binding $parent[Window].DataContext.ChecksumImageCommand, Mode=OneWay}"
Header="{x:Static localization:UI.ButtonLabel_Checksum}" />
<MenuItem Command="{Binding ConvertImageCommand, Mode=OneWay}"
<MenuItem Command="{Binding $parent[Window].DataContext.ConvertImageCommand, Mode=OneWay}"
Header="{x:Static localization:UI.ButtonLabel_Convert_to}" />
<MenuItem Command="{Binding CreateSidecarCommand, Mode=OneWay}"
<MenuItem Command="{Binding $parent[Window].DataContext.CreateSidecarCommand, Mode=OneWay}"
Header="{x:Static localization:UI.ButtonLabel_Create_Aaru_Metadata_sidecar}" />
<MenuItem Command="{Binding ViewImageSectorsCommand, Mode=OneWay}"
<MenuItem Command="{Binding $parent[Window].DataContext.ViewImageSectorsCommand, Mode=OneWay}"
Header="{x:Static localization:UI.ButtonLabel_View_sectors}" />
<MenuItem Command="{Binding DecodeImageMediaTagsCommand, Mode=OneWay}"
<MenuItem Command="{Binding $parent[Window].DataContext.DecodeImageMediaTagsCommand, Mode=OneWay}"
Header="{x:Static localization:UI.ButtonLabel_Decode_media_tags}" />
</ContextMenu>
</StackPanel.ContextMenu>

View File

@@ -42,6 +42,7 @@
d:DesignHeight="450"
x:Class="Aaru.Gui.Views.Windows.MediaDump"
Icon="/Assets/aaru-logo.png"
x:DataType="windows:MediaDumpViewModel"
Title="{Binding Title}">
<Design.DataContext>
<windows:MediaDumpViewModel />

View File

@@ -42,6 +42,7 @@
d:DesignHeight="450"
x:Class="Aaru.Gui.Views.Windows.MediaScan"
Icon="/Assets/aaru-logo.png"
x:DataType="windows:MediaScanViewModel"
Title="{Binding Title}">
<Design.DataContext>
<windows:MediaScanViewModel />

View File

@@ -42,6 +42,7 @@
x:Class="Aaru.Gui.Views.Windows.SplashWindow"
Icon="/Assets/aaru-logo.png"
Title="Aaru"
x:DataType="windows:SplashWindowViewModel"
SystemDecorations="BorderOnly">
<Design.DataContext>
<windows:SplashWindowViewModel />

View File

@@ -45,6 +45,7 @@
Height="480"
x:Class="Aaru.Gui.Views.Windows.ViewSector"
Icon="/Assets/aaru-logo.png"
x:DataType="windows:ViewSectorViewModel"
Title="{x:Static localization:UI.Title_Sector_viewer}">
<Design.DataContext>
<windows:ViewSectorViewModel />