Update Avalonia to 11.0.4.

This commit is contained in:
2023-09-25 22:58:48 +01:00
parent 500970b7a4
commit 9abb0368ee
36 changed files with 100 additions and 97 deletions

View File

@@ -30,19 +30,23 @@
<NrtShowRevision>true</NrtShowRevision>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Avalonia.Controls.DataGrid" Version="0.10.18"/>
<PackageReference Include="Avalonia.Diagnostics" Version="0.10.18"/>
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.0.4"/>
<PackageReference Include="Avalonia.Diagnostics" Version="11.0.4"/>
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.4" />
<PackageReference Include="Claunia.Encoding" Version="1.9.2"/>
<PackageReference Include="JetBrains.Annotations" Version="2023.2.0" />
<PackageReference Include="MessageBox.Avalonia" Version="2.1.0"/>
<!-- TODO: Abandoned project need to find replacement
<PackageReference Include="OxyPlot.Avalonia-alpha-2020-04-15" Version="1.0.0"/>
-->
<PackageReference Include="System.Text.Encoding.CodePages" Version="8.0.0-rc.1.23419.4" />
<PackageReference Include="Unclassified.NetRevisionTask" Version="0.4.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Avalonia" Version="0.10.18"/>
<PackageReference Include="Avalonia.Desktop" Version="0.10.18"/>
<PackageReference Include="Avalonia.ReactiveUI" Version="0.10.18"/>
<PackageReference Include="Avalonia" Version="11.0.4"/>
<PackageReference Include="Avalonia.Desktop" Version="11.0.4"/>
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.4"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Aaru.Core\Aaru.Core.csproj"/>

View File

@@ -37,16 +37,16 @@
<gui:ViewLocator />
</Application.DataTemplates>
<Application.Styles>
<StyleInclude Source="avares://Avalonia.Themes.Default/DefaultTheme.xaml" />
<StyleInclude Source="avares://Avalonia.Themes.Default/Accents/BaseLight.xaml" />
<StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Default.xaml" />
<FluentTheme />
<!-- TODO: Abandoned project need to find replacement
<StyleInclude Source="resm:OxyPlot.Avalonia.Themes.Default.xaml?assembly=OxyPlot.Avalonia" />
-->
</Application.Styles>
<NativeMenu.Menu>
<NativeMenu>
<NativeMenuItem Header="_About" Clicked="OnAboutClicked" />
<NativeMenuItem Header="_Preferences" Clicked="OnPreferencesClicked" />
<NativeMenuItem Header="_Quit" Clicked="OnQuitClicked" />
<NativeMenuItem Header="_About" Click="OnAboutClicked" />
<NativeMenuItem Header="_Preferences" Click="OnPreferencesClicked" />
<NativeMenuItem Header="_Quit" Click="OnQuitClicked" />
</NativeMenu>
</NativeMenu.Menu>
</Application>

View File

@@ -30,6 +30,7 @@
// Copyright © 2011-2023 Natalia Portillo
// ****************************************************************************/
/* TODO: Doesn't compile with Avalonia 11.0, but it didn't work previously so pending rewriting
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
@@ -486,3 +487,4 @@ public sealed class BlockMap : ItemsControl
base.OnDetachedFromLogicalTree(e);
}
}
*/

View File

@@ -43,6 +43,6 @@ public static class Main
}
// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure<App>().UsePlatformDetect().LogToDebug().
public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure<App>().UsePlatformDetect().
UseReactiveUI().UseManagedSystemDialogs();
}

View File

@@ -34,16 +34,17 @@ using System;
using Aaru.Gui.ViewModels;
using Avalonia.Controls;
using Avalonia.Controls.Templates;
using Avalonia.Markup.Xaml.Templates;
using JetBrains.Annotations;
namespace Aaru.Gui;
public sealed class ViewLocator : IDataTemplate
public sealed class ViewLocator : DataTemplate
{
public bool SupportsRecycling => false;
[CanBeNull]
public IControl Build([NotNull] object data)
public Control Build([NotNull] object data)
{
string name = data.GetType().FullName?.Replace("ViewModel", "View");

View File

@@ -80,7 +80,6 @@ public sealed class ImageInfoViewModel : ViewModelBase
_imagePath = imagePath;
_filter = filter;
_imageFormat = imageFormat;
IAssetLoader assets = AvaloniaLocator.Current.GetService<IAssetLoader>();
MediaTagsList = new ObservableCollection<string>();
SectorTagsList = new ObservableCollection<string>();
Sessions = new ObservableCollection<Session>();
@@ -95,18 +94,18 @@ public sealed class ImageInfoViewModel : ViewModelBase
DecodeMediaTagCommand = ReactiveCommand.Create(ExecuteDecodeMediaTagCommand);
var genericHddIcon =
new Bitmap(assets.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/drive-harddisk.png")));
new Bitmap(AssetLoader.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/drive-harddisk.png")));
var genericOpticalIcon =
new Bitmap(assets.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/drive-optical.png")));
new Bitmap(AssetLoader.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/drive-optical.png")));
var genericFolderIcon =
new Bitmap(assets.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/inode-directory.png")));
new Bitmap(AssetLoader.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/inode-directory.png")));
var mediaResource = new Uri($"avares://Aaru.Gui/Assets/Logos/Media/{imageFormat.Info.MediaType}.png");
MediaLogo = assets.Exists(mediaResource)
? new Bitmap(assets.Open(mediaResource))
MediaLogo = AssetLoader.Exists(mediaResource)
? new Bitmap(AssetLoader.Open(mediaResource))
: imageFormat.Info.MetadataMediaType == MetadataMediaType.BlockMedia
? genericHddIcon
: imageFormat.Info.MetadataMediaType == MetadataMediaType.OpticalDisc

View File

@@ -93,13 +93,12 @@ public sealed class MediaInfoViewModel : ViewModelBase
SaveMediumSupportCommand = ReactiveCommand.Create(ExecuteSaveMediumSupportCommand);
DumpCommand = ReactiveCommand.Create(ExecuteDumpCommand);
ScanCommand = ReactiveCommand.Create(ExecuteScanCommand);
IAssetLoader assets = AvaloniaLocator.Current.GetService<IAssetLoader>();
_devicePath = devicePath;
_scsiInfo = scsiInfo;
var mediaResource = new Uri($"avares://Aaru.Gui/Assets/Logos/Media/{scsiInfo.MediaType}.png");
MediaLogo = assets?.Exists(mediaResource) == true ? new Bitmap(assets.Open(mediaResource)) : null;
MediaLogo = AssetLoader.Exists(mediaResource) ? new Bitmap(AssetLoader.Open(mediaResource)) : null;
MediaType = scsiInfo.MediaType.ToString();

View File

@@ -1754,7 +1754,7 @@ public sealed class ImageConvertViewModel : ViewModelBase
if(_cancel)
{
await Dispatcher.UIThread.InvokeAsync(action: async () =>
await Dispatcher.UIThread.InvokeAsync(async () =>
{
await MessageBoxManager.
GetMessageBoxStandardWindow(UI.Title_Error, UI.Operation_canceled_the_output_file_is_not_correct,
@@ -1770,7 +1770,7 @@ public sealed class ImageConvertViewModel : ViewModelBase
if(!outputFormat.Close())
{
await Dispatcher.UIThread.InvokeAsync(action: async () => await MessageBoxManager.
await Dispatcher.UIThread.InvokeAsync(async () => await MessageBoxManager.
GetMessageBoxStandardWindow(UI.Title_Error,
string.
Format(UI.Error_0_closing_output_image_Contents_are_not_correct,
@@ -1782,7 +1782,7 @@ public sealed class ImageConvertViewModel : ViewModelBase
return;
}
await Dispatcher.UIThread.InvokeAsync(action: async () =>
await Dispatcher.UIThread.InvokeAsync(async () =>
{
await MessageBoxManager.
GetMessageBoxStandardWindow(warning ? UI.Title_Warning : UI.Title_Conversion_success,

View File

@@ -72,7 +72,6 @@ namespace Aaru.Gui.ViewModels.Windows;
public sealed class MainWindowViewModel : ViewModelBase
{
readonly IAssetLoader _assets;
readonly DevicesRootModel _devicesRoot;
readonly Bitmap _ejectIcon;
readonly Bitmap _genericFolderIcon;
@@ -109,7 +108,6 @@ public sealed class MainWindowViewModel : ViewModelBase
RefreshDevicesCommand = ReactiveCommand.Create(ExecuteRefreshDevicesCommand);
_view = view;
TreeRoot = new ObservableCollection<RootModel>();
_assets = AvaloniaLocator.Current.GetService<IAssetLoader>();
ContentPanel = Greeting;
_imagesRoot = new ImagesRootModel
@@ -135,32 +133,29 @@ public sealed class MainWindowViewModel : ViewModelBase
break;
}
if(_assets == null)
return;
_genericHddIcon =
new Bitmap(_assets.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/drive-harddisk.png")));
new Bitmap(AssetLoader.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/drive-harddisk.png")));
_genericOpticalIcon =
new Bitmap(_assets.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/drive-optical.png")));
new Bitmap(AssetLoader.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/drive-optical.png")));
_genericTapeIcon =
new Bitmap(_assets.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/media-tape.png")));
new Bitmap(AssetLoader.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/media-tape.png")));
_genericFolderIcon =
new Bitmap(_assets.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/inode-directory.png")));
new Bitmap(AssetLoader.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/inode-directory.png")));
_usbIcon =
new
Bitmap(_assets.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/drive-removable-media-usb.png")));
Bitmap(AssetLoader.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/drive-removable-media-usb.png")));
_removableIcon =
new Bitmap(_assets.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/drive-removable-media.png")));
new Bitmap(AssetLoader.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/drive-removable-media.png")));
_sdIcon =
new Bitmap(_assets.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/media-flash-sd-mmc.png")));
new Bitmap(AssetLoader.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/media-flash-sd-mmc.png")));
_ejectIcon = new Bitmap(_assets.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/media-eject.png")));
_ejectIcon = new Bitmap(AssetLoader.Open(new Uri("avares://Aaru.Gui/Assets/Icons/oxygen/32x32/media-eject.png")));
}
public string FileLabel => UI.Menu_File;
@@ -321,7 +316,7 @@ public sealed class MainWindowViewModel : ViewModelBase
deviceModel.Media.Add(new MediaModel
{
DevicePath = deviceModel.Path,
Icon = _assets.Exists(mediaResource) ? new Bitmap(_assets.Open(mediaResource))
Icon = AssetLoader.Exists(mediaResource) ? new Bitmap(AssetLoader.Open(mediaResource))
: null,
Name = $"{scsiInfo.MediaType}",
ViewModel = new MediaInfoViewModel(scsiInfo, deviceModel.Path, _view)
@@ -575,8 +570,8 @@ public sealed class MainWindowViewModel : ViewModelBase
var imageModel = new ImageModel
{
Path = result[0],
Icon = _assets.Exists(mediaResource)
? new Bitmap(_assets.Open(mediaResource))
Icon = AssetLoader.Exists(mediaResource)
? new Bitmap(AssetLoader.Open(mediaResource))
: imageFormat.Info.MetadataMediaType == MetadataMediaType.BlockMedia
? _genericHddIcon
: imageFormat.Info.MetadataMediaType == MetadataMediaType.OpticalDisc

View File

@@ -45,7 +45,7 @@ using Avalonia.Media;
using Avalonia.Threading;
using MessageBox.Avalonia;
using MessageBox.Avalonia.Enums;
using OxyPlot;
//using OxyPlot;
using ReactiveUI;
namespace Aaru.Gui.ViewModels.Windows;
@@ -105,7 +105,7 @@ public sealed class MediaScanViewModel : ViewModelBase
StartVisible = true;
CloseVisible = true;
BlockMapList = new ObservableCollection<(ulong block, double duration)>();
ChartPoints = new ObservableCollection<DataPoint>();
// ChartPoints = new ObservableCollection<DataPoint>();
StepsX = double.NaN;
StepsY = double.NaN;
AxesColor = Colors.Black;
@@ -132,7 +132,7 @@ public sealed class MediaScanViewModel : ViewModelBase
}
public ObservableCollection<(ulong block, double duration)> BlockMapList { get; }
public ObservableCollection<DataPoint> ChartPoints { get; }
// public ObservableCollection<DataPoint> ChartPoints { get; }
public ulong Blocks
{
@@ -325,7 +325,7 @@ public sealed class MediaScanViewModel : ViewModelBase
CloseVisible = false;
ProgressVisible = true;
ResultsVisible = true;
ChartPoints.Clear();
// ChartPoints.Clear();
new Thread(DoWork).Start();
}
@@ -437,10 +437,12 @@ public sealed class MediaScanViewModel : ViewModelBase
[SuppressMessage("ReSharper", "AsyncVoidMethod")]
async void ScanSpeed(ulong sector, double currentSpeed) => await Dispatcher.UIThread.InvokeAsync(() =>
{
/* TODO: Abandoned project need to find replacement
if(ChartPoints.Count == 0)
ChartPoints.Add(new DataPoint(0, currentSpeed));
ChartPoints.Add(new DataPoint(sector, currentSpeed));
*/
if(currentSpeed > MaxY)
MaxY = currentSpeed + (currentSpeed / 10d);
@@ -589,7 +591,7 @@ public sealed class MediaScanViewModel : ViewModelBase
[SuppressMessage("ReSharper", "AsyncVoidMethod")]
// ReSharper disable once AsyncVoidLambda
async void StoppingErrorMessage(string text) => await Dispatcher.UIThread.InvokeAsync(action: async () =>
async void StoppingErrorMessage(string text) => await Dispatcher.UIThread.InvokeAsync(async () =>
{
ProgressText = text;

View File

@@ -92,7 +92,7 @@
<TabItem.Header>
<TextBlock Text="{Binding LibrariesLabel}" />
</TabItem.Header>
<DataGrid Items="{Binding Assemblies}" HorizontalScrollBarVisibility="Visible">
<DataGrid ItemsSource="{Binding Assemblies}" HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}" Width="Auto" IsReadOnly="True">
<DataGridTextColumn.Header>

View File

@@ -45,7 +45,7 @@
<Grid.RowDefinitions>
<RowDefinition Height="*" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<DataGrid Items="{Binding Entries}">
<DataGrid ItemsSource="{Binding Entries}">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding TimeLabel}" Binding="{Binding Timestamp}" Width="Auto"
IsReadOnly="True" />

View File

@@ -50,7 +50,7 @@ public sealed class Console : Window
void InitializeComponent() => AvaloniaXamlLoader.Load(this);
protected override void OnClosing([NotNull] CancelEventArgs e)
protected override void OnClosing(WindowClosingEventArgs e)
{
e.Cancel = true;
Hide();

View File

@@ -45,7 +45,7 @@
<Grid.RowDefinitions>
<RowDefinition Height="260" /> <RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<DataGrid Items="{Binding Encodings}" HorizontalScrollBarVisibility="Visible">
<DataGrid ItemsSource="{Binding Encodings}" HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding CodeLabel}" Binding="{Binding Name}" Width="Auto"
IsReadOnly="True" />

View File

@@ -49,7 +49,7 @@
<TabItem.Header>
<TextBlock Text="{Binding FiltersLabel}" />
</TabItem.Header>
<DataGrid Items="{Binding Filters}" HorizontalScrollBarVisibility="Visible">
<DataGrid ItemsSource="{Binding Filters}" HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding NameLabel}" Binding="{Binding Name}" Width="Auto"
IsReadOnly="True" />
@@ -66,7 +66,7 @@
<TabItem.Header>
<TextBlock Text="{Binding PartitionsLabel}" />
</TabItem.Header>
<DataGrid Items="{Binding PartitionSchemes}" HorizontalScrollBarVisibility="Visible">
<DataGrid ItemsSource="{Binding PartitionSchemes}" HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding NameLabel}" Binding="{Binding Name}" Width="Auto"
IsReadOnly="True" />
@@ -89,7 +89,7 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="{Binding IdentifyLabel}" FontWeight="Bold" />
<DataGrid Grid.Row="1" Items="{Binding Filesystems}" HorizontalScrollBarVisibility="Visible">
<DataGrid Grid.Row="1" ItemsSource="{Binding Filesystems}" HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding NameLabel}" Binding="{Binding Name}" Width="Auto"
IsReadOnly="True" />
@@ -102,7 +102,7 @@
</DataGrid.Columns>
</DataGrid>
<TextBlock Grid.Row="2" Text="{Binding ReadableLabel}" FontWeight="Bold" />
<DataGrid Grid.Row="3" Items="{Binding ReadOnlyFilesystems}"
<DataGrid Grid.Row="3" ItemsSource="{Binding ReadOnlyFilesystems}"
HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding NameLabel}" Binding="{Binding Name}" Width="Auto"
@@ -127,7 +127,7 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="{Binding ReadableLabel}" FontWeight="Bold" />
<DataGrid Grid.Row="1" Items="{Binding Images}" HorizontalScrollBarVisibility="Visible">
<DataGrid Grid.Row="1" ItemsSource="{Binding Images}" HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding NameLabel}" Binding="{Binding Name}" Width="Auto"
IsReadOnly="True" />
@@ -140,7 +140,7 @@
</DataGrid.Columns>
</DataGrid>
<TextBlock Grid.Row="2" Text="{Binding WritableLabel}" FontWeight="Bold" />
<DataGrid Grid.Row="3" Items="{Binding WritableImages}" HorizontalScrollBarVisibility="Visible">
<DataGrid Grid.Row="3" ItemsSource="{Binding WritableImages}" HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding NameLabel}" Binding="{Binding Name}" Width="Auto"
IsReadOnly="True" />
@@ -164,7 +164,7 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="{Binding ReadableLabel}" FontWeight="Bold" />
<DataGrid Grid.Row="1" Items="{Binding FloppyImages}" HorizontalScrollBarVisibility="Visible">
<DataGrid Grid.Row="1" ItemsSource="{Binding FloppyImages}" HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding NameLabel}" Binding="{Binding Name}" Width="Auto"
IsReadOnly="True" />
@@ -177,7 +177,7 @@
</DataGrid.Columns>
</DataGrid>
<TextBlock Grid.Row="2" Text="{Binding WritableLabel}" FontWeight="Bold" />
<DataGrid Grid.Row="3" Items="{Binding WritableFloppyImages}"
<DataGrid Grid.Row="3" ItemsSource="{Binding WritableFloppyImages}"
HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding NameLabel}" Binding="{Binding Name}" Width="Auto"

View File

@@ -73,7 +73,7 @@
<TabItem.Header>
<TextBlock Text="{Binding FiltersLabel}" />
</TabItem.Header>
<DataGrid Items="{Binding Filters}" HorizontalScrollBarVisibility="Visible">
<DataGrid ItemsSource="{Binding Filters}" HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<!-- TODO: Bind header -->
<DataGridTextColumn Header="{Binding FilterLabel}" Binding="{Binding Name}" Width="Auto"
@@ -87,7 +87,7 @@
<TabItem.Header>
<TextBlock Text="{Binding FormatsLabel}" />
</TabItem.Header>
<DataGrid Items="{Binding Formats}" HorizontalScrollBarVisibility="Visible">
<DataGrid ItemsSource="{Binding Formats}" HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<!-- TODO: Bind header -->
<DataGridTextColumn Header="{Binding FormatLabel}" Binding="{Binding Name}" Width="Auto"
@@ -101,7 +101,7 @@
<TabItem.Header>
<TextBlock Text="{Binding PartitionsLabel}" />
</TabItem.Header>
<DataGrid Items="{Binding Partitions}" HorizontalScrollBarVisibility="Visible">
<DataGrid ItemsSource="{Binding Partitions}" HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<!-- TODO: Bind header -->
<DataGridTextColumn Header="{Binding PartitionLabel}" Binding="{Binding Name}" Width="Auto"
@@ -115,7 +115,7 @@
<TabItem.Header>
<TextBlock Text="{Binding FilesystemsLabel}" />
</TabItem.Header>
<DataGrid Items="{Binding Filesystems}" HorizontalScrollBarVisibility="Visible">
<DataGrid ItemsSource="{Binding Filesystems}" HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<!-- TODO: Bind header -->
<DataGridTextColumn Header="{Binding FilesystemLabel}" Binding="{Binding Name}"
@@ -129,7 +129,7 @@
<TabItem.Header>
<TextBlock Text="{Binding DevicesLabel}" />
</TabItem.Header>
<DataGrid Items="{Binding Devices}" HorizontalScrollBarVisibility="Visible">
<DataGrid ItemsSource="{Binding Devices}" HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<!-- TODO: Bind header -->
<DataGridTextColumn Header="{Binding DeviceLabel}" Binding="{Binding Model}" Width="Auto"
@@ -147,7 +147,7 @@
<TabItem.Header>
<TextBlock Text="{Binding MediasLabel}" />
</TabItem.Header>
<DataGrid Items="{Binding Medias}" HorizontalScrollBarVisibility="Visible">
<DataGrid ItemsSource="{Binding Medias}" HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<!-- TODO: Bind header -->
<DataGridTextColumn Header="{Binding MediaLabel}" Binding="{Binding Name}" Width="Auto"

View File

@@ -84,7 +84,7 @@
<TextBlock Text="{Binding MediaGeometryText}" IsVisible="{Binding !!MediaGeometryText}" />
<TextBlock Text="{Binding ReadableMediaTagsLabel}" FontWeight="Bold"
IsVisible="{Binding !!MediaTagsList.Count}" />
<DataGrid Items="{Binding MediaTagsList}" IsVisible="{Binding !!MediaTagsList.Count}"
<DataGrid ItemsSource="{Binding MediaTagsList}" IsVisible="{Binding !!MediaTagsList.Count}"
IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding TagLabel}" Binding="{Binding .}" Width="Auto"
@@ -93,7 +93,7 @@
</DataGrid>
<TextBlock Text="{Binding ReadableSectorTagsLabel}" FontWeight="Bold"
IsVisible="{Binding !!SectorTagsList.Count}" />
<DataGrid Items="{Binding SectorTagsList}" IsVisible="{Binding !!SectorTagsList.Count}"
<DataGrid ItemsSource="{Binding SectorTagsList}" IsVisible="{Binding !!SectorTagsList.Count}"
IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding TagLabel}" Binding="{Binding .}" Width="Auto"
@@ -106,7 +106,7 @@
<TabItem.Header>
<TextBlock Text="{Binding SessionsLabel}" />
</TabItem.Header>
<DataGrid Items="{Binding Sessions}" IsVisible="{Binding !!Sessions.Count}" IsReadOnly="True">
<DataGrid ItemsSource="{Binding Sessions}" IsVisible="{Binding !!Sessions.Count}" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding SessionLabel}" Binding="{Binding SessionSequence}"
Width="Auto" />
@@ -122,7 +122,7 @@
<TabItem.Header>
<TextBlock Text="{Binding TracksLabel}" />
</TabItem.Header>
<DataGrid Items="{Binding Tracks}" IsVisible="{Binding !!Tracks.Count}" IsReadOnly="True">
<DataGrid ItemsSource="{Binding Tracks}" IsVisible="{Binding !!Tracks.Count}" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding TrackLabel}" Binding="{Binding Sequence}" Width="Auto" />
<DataGridTextColumn Header="{Binding TypeLabel}" Binding="{Binding Type}" Width="Auto" />
@@ -141,7 +141,7 @@
<TabItem.Header>
<TextBlock Text="{Binding DumpHardwareLabel}" />
</TabItem.Header>
<DataGrid Items="{Binding DumpHardwareList}" IsVisible="{Binding !!DumpHardwareList.Count}"
<DataGrid ItemsSource="{Binding DumpHardwareList}" IsVisible="{Binding !!DumpHardwareList.Count}"
IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding ManufacturerLabel}" Binding="{Binding Manufacturer}"

View File

@@ -39,7 +39,7 @@
<Design.DataContext>
<panels:SubdirectoryViewModel />
</Design.DataContext>
<DataGrid Items="{Binding Entries}" IsReadOnly="True" SelectionMode="Extended"> <!-- TODO: SelectedItems="{Binding SelectedEntries}" -->
<DataGrid ItemsSource="{Binding Entries}" IsReadOnly="True" SelectionMode="Extended"> <!-- TODO: SelectedItemsSource="{Binding SelectedEntries}" -->
<DataGrid.ContextMenu>
<ContextMenu>
<Button Command="{Binding ExtractFilesCommand}">

View File

@@ -116,7 +116,7 @@
</StackPanel>
<StackPanel IsVisible="{Binding !!IsrcList.Count}">
<TextBlock Text="{Binding ISRCsLabel}" />
<DataGrid Items="{Binding IsrcList}">
<DataGrid ItemsSource="{Binding IsrcList}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Track}" Header="{Binding TrackLabel}" />
<DataGridTextColumn Binding="{Binding ISRC}" Header="{Binding ISRCLabel}" />

View File

@@ -41,7 +41,7 @@
</Design.DataContext>
<StackPanel>
<StackPanel Orientation="Horizontal">
<DataGrid Items="{Binding CisList}" SelectedItem="{Binding SelectedCis}">
<DataGrid ItemsSource="{Binding CisList}" SelectedItem="{Binding SelectedCis}">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding CisLabel}" Binding="{Binding Code}" />
</DataGrid.Columns>

View File

@@ -63,7 +63,7 @@
</TabItem.Header>
<StackPanel>
<StackPanel Orientation="Horizontal">
<DataGrid HorizontalAlignment="Left" VerticalAlignment="Stretch" Items="{Binding ModeSensePages}"
<DataGrid HorizontalAlignment="Left" VerticalAlignment="Stretch" ItemsSource="{Binding ModeSensePages}"
SelectedItem="{Binding SelectedModeSensePage}" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding PageLabel}" Binding="{Binding Page}" />
@@ -88,7 +88,7 @@
</TabItem.Header>
<StackPanel>
<StackPanel Orientation="Horizontal">
<DataGrid HorizontalAlignment="Left" VerticalAlignment="Stretch" Items="{Binding EvpdPages}"
<DataGrid HorizontalAlignment="Left" VerticalAlignment="Stretch" ItemsSource="{Binding EvpdPages}"
SelectedItem="{Binding SelectedEvpdPage}" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding PageLabel}" Binding="{Binding Page}" />
@@ -110,7 +110,7 @@
</TabItem.Header>
<StackPanel>
<StackPanel Orientation="Horizontal">
<DataGrid HorizontalAlignment="Left" VerticalAlignment="Stretch" Items="{Binding MmcFeatures}"
<DataGrid HorizontalAlignment="Left" VerticalAlignment="Stretch" ItemsSource="{Binding MmcFeatures}"
SelectedItem="{Binding SelectedMmcFeature}" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding FeatureLabel}" Binding="{Binding Page}" />

View File

@@ -43,7 +43,7 @@
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding TagLabel}" />
<ComboBox Items="{Binding TagsList}" SelectedItem="{Binding SelectedTag}">
<ComboBox ItemsSource="{Binding TagsList}" SelectedItem="{Binding SelectedTag}">
<ComboBox.DataTemplates>
<DataTemplate>
<TextBlock Text="{Binding Name}" />

View File

@@ -90,7 +90,7 @@
<StackPanel Orientation="Vertical" IsVisible="{Binding ResultsVisible}">
<StackPanel Orientation="Vertical" IsVisible="{Binding TrackChecksumsVisible}">
<TextBlock Text="{Binding TrackChecksumsLabel}" />
<DataGrid Items="{Binding TrackChecksums}">
<DataGrid ItemsSource="{Binding TrackChecksums}">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding TrackLabel}" Binding="{Binding Track}" />
<DataGridTextColumn Header="{Binding AlgorithmsLabel}" Binding="{Binding Algorithm}" />
@@ -100,7 +100,7 @@
</StackPanel>
<StackPanel Orientation="Vertical" IsVisible="{Binding MediaChecksumsVisible}">
<TextBlock Text="{Binding MediaChecksumsLabel}" />
<DataGrid Items="{Binding MediaChecksums}">
<DataGrid ItemsSource="{Binding MediaChecksums}">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding AlgorithmsLabel}" Binding="{Binding Algorithm}" />
<DataGridTextColumn Header="{Binding HashLabel}" Binding="{Binding Value}" />

View File

@@ -50,7 +50,7 @@ public sealed class ImageChecksum : Window
void InitializeComponent() => AvaloniaXamlLoader.Load(this);
protected override void OnClosing(CancelEventArgs e)
protected override void OnClosing(WindowClosingEventArgs e)
{
(DataContext as ImageChecksumViewModel)?.ExecuteStopCommand();
base.OnClosing(e);

View File

@@ -43,7 +43,7 @@
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding SourceImageLabel}" /> <TextBox Text="{Binding SourceText}" IsReadOnly="True" />
<TextBlock Text="{Binding OutputFormatLabel}" />
<ComboBox Items="{Binding PluginsList}" SelectedItem="{Binding SelectedPlugin}"
<ComboBox ItemsSource="{Binding PluginsList}" SelectedItem="{Binding SelectedPlugin}"
IsEnabled="{Binding FormatReadOnly}">
<ComboBox.ItemTemplate>
<DataTemplate>

View File

@@ -50,7 +50,7 @@ public sealed class ImageConvert : Window
void InitializeComponent() => AvaloniaXamlLoader.Load(this);
protected override void OnClosing(CancelEventArgs e)
protected override void OnClosing(WindowClosingEventArgs e)
{
(DataContext as ImageConvertViewModel)?.ExecuteStopCommand();
base.OnClosing(e);

View File

@@ -58,7 +58,7 @@
<TextBlock Text="{Binding MediaEntropyText}" IsVisible="{Binding MediaEntropyVisible}" />
<TextBlock Text="{Binding MediaUniqueSectorsText}" IsVisible="{Binding MediaUniqueSectorsVisible}" />
<TextBlock Text="{Binding TrackEntropyLabel}" IsVisible="{Binding SeparatedTracksEnabled}" />
<DataGrid IsVisible="{Binding SeparatedTracksEnabled}" Items="{Binding TrackEntropy}">
<DataGrid IsVisible="{Binding SeparatedTracksEnabled}" ItemsSource="{Binding TrackEntropy}">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding TrackLabel}" Binding="{Binding Track}" />
<DataGridTextColumn Header="{Binding EntropyLabel}" Binding="{Binding Entropy}" />

View File

@@ -50,7 +50,7 @@ public sealed class ImageEntropy : Window
void InitializeComponent() => AvaloniaXamlLoader.Load(this);
protected override void OnClosing(CancelEventArgs e)
protected override void OnClosing(WindowClosingEventArgs e)
{
(DataContext as ImageEntropyViewModel)?.ExecuteStopCommand();
base.OnClosing(e);

View File

@@ -54,7 +54,7 @@
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Vertical" IsVisible="{Binding SectorErrorsVisible}">
<TextBlock Text="{Binding SectorErrorsText}" />
<DataGrid Items="{Binding ErrorList}">
<DataGrid ItemsSource="{Binding ErrorList}">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding LBALabel}" Binding="{Binding Lba}" />
</DataGrid.Columns>
@@ -62,7 +62,7 @@
</StackPanel>
<StackPanel Orientation="Vertical" IsVisible="{Binding SectorsUnknownsVisible}">
<TextBlock Text="{Binding SectorsUnknownsText}" />
<DataGrid Items="{Binding UnknownList}">
<DataGrid ItemsSource="{Binding UnknownList}">
<DataGrid.Columns>
<DataGridTextColumn Header="{Binding LBALabel}" Binding="{Binding Lba}" />
</DataGrid.Columns>

View File

@@ -50,7 +50,7 @@ public sealed class ImageVerify : Window
void InitializeComponent() => AvaloniaXamlLoader.Load(this);
protected override void OnClosing(CancelEventArgs e)
protected override void OnClosing(WindowClosingEventArgs e)
{
(DataContext as ImageVerifyViewModel)?.ExecuteStopCommand();
base.OnClosing(e);

View File

@@ -69,7 +69,7 @@
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" /><ColumnDefinition Width="5" /><ColumnDefinition Width="6*" />
</Grid.ColumnDefinitions>
<TreeView Items="{Binding TreeRoot}" SelectedItem="{Binding TreeViewSelectedItem}">
<TreeView ItemsSource="{Binding TreeRoot}" SelectedItem="{Binding TreeViewSelectedItem}">
<TreeView.DataTemplates>
<TreeDataTemplate DataType="models:DevicesRootModel" ItemsSource="{Binding Devices}">
<StackPanel Orientation="Horizontal">

View File

@@ -43,7 +43,7 @@
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Vertical" IsVisible="{Binding OptionsVisible}">
<TextBlock Text="{Binding OutputFormatLabel}" />
<ComboBox Items="{Binding PluginsList}" SelectedItem="{Binding SelectedPlugin}"
<ComboBox ItemsSource="{Binding PluginsList}" SelectedItem="{Binding SelectedPlugin}"
IsEnabled="{Binding FormatReadOnly}">
<ComboBox.ItemTemplate>
<DataTemplate>
@@ -85,7 +85,7 @@
</CheckBox>
<StackPanel IsVisible="{Binding EncodingVisible}">
<TextBox Text="{Binding EncodingLabel}" />
<ComboBox Items="{Binding Encodings}" SelectedItem="{Binding SelectedEncoding}"
<ComboBox ItemsSource="{Binding Encodings}" SelectedItem="{Binding SelectedEncoding}"
IsEnabled="{Binding EncodingEnabled}">
<ComboBox.ItemTemplate>
<DataTemplate>

View File

@@ -50,7 +50,7 @@ public sealed class MediaDump : Window
void InitializeComponent() => AvaloniaXamlLoader.Load(this);
protected override void OnClosing(CancelEventArgs e)
protected override void OnClosing(WindowClosingEventArgs e)
{
(DataContext as MediaDumpViewModel)?.ExecuteStopCommand();
base.OnClosing(e);

View File

@@ -34,8 +34,7 @@
<Window xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:windows="clr-namespace:Aaru.Gui.ViewModels.Windows" xmlns:controls="clr-namespace:Aaru.Gui.Controls"
xmlns:avalonia="http://oxyplot.org/avalonia" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
xmlns:windows="clr-namespace:Aaru.Gui.ViewModels.Windows" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Aaru.Gui.Views.Windows.MediaScan" Icon="/Assets/aaru-logo.png" Title="{Binding Title}">
<Design.DataContext>
<windows:MediaScanViewModel />
@@ -60,16 +59,17 @@
<TabItem.Header>
<TextBlock Text="Graph" />
</TabItem.Header>
<controls:BlockMap Width="750" Height="400" Blocks="{Binding Blocks}" Items="{Binding BlockMapList}" />
<!-- <controls:BlockMap Width="750" Height="400" Blocks="{Binding Blocks}" ItemsSource="{Binding BlockMapList}" /> -->
</TabItem>
<TabItem>
<TabItem.Header>
<TextBlock Text="Chart" />
</TabItem.Header>
<!-- TODO: Abandoned project need to find replacement
<avalonia:Plot Height="300" PlotMargins="50 0 0 0" PlotAreaBorderColor="#999999"
PlotAreaBackground="#2974c1">
<avalonia:Plot.Series>
<avalonia:LineSeries DataFieldX="Index" DataFieldY="Value" Items="{Binding Path=ChartPoints}"
<avalonia:LineSeries DataFieldX="Index" DataFieldY="Value" ItemsSource="{Binding Path=ChartPoints}"
Color="{Binding LineColor}" />
</avalonia:Plot.Series>
<avalonia:Plot.Axes>
@@ -81,6 +81,7 @@
AxislineColor="{Binding AxesColor}" />
</avalonia:Plot.Axes>
</avalonia:Plot>
-->
</TabItem>
</TabControl>
<StackPanel Orientation="Vertical" IsVisible="{Binding ProgressVisible}">

View File

@@ -50,7 +50,7 @@ public sealed class MediaScan : Window
void InitializeComponent() => AvaloniaXamlLoader.Load(this);
protected override void OnClosing(CancelEventArgs e)
protected override void OnClosing(WindowClosingEventArgs e)
{
(DataContext as MediaScanViewModel)?.ExecuteStopCommand();
base.OnClosing(e);

View File

@@ -36,7 +36,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:windows="clr-namespace:Aaru.Gui.ViewModels.Windows" mc:Ignorable="d" d:DesignWidth="800"
d:DesignHeight="450" x:Class="Aaru.Gui.Views.Windows.SplashWindow" Icon="/Assets/aaru-logo.png" Title="Aaru"
HasSystemDecorations="False">
SystemDecorations="BorderOnly">
<Design.DataContext>
<windows:SplashWindowViewModel />
</Design.DataContext>