mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-12 21:38:38 +00:00
Fixed separators and replaced obsolete filepicker calls
This commit is contained in:
parent
81a7b0d089
commit
a173f3cc61
@ -1,4 +1,7 @@
|
|||||||
using Avalonia.Controls;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using Avalonia.Controls;
|
||||||
|
using Avalonia.Platform.Storage;
|
||||||
|
|
||||||
namespace Artemis.UI.Shared.Services.Builders;
|
namespace Artemis.UI.Shared.Services.Builders;
|
||||||
|
|
||||||
@ -7,11 +10,12 @@ namespace Artemis.UI.Shared.Services.Builders;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class FileDialogFilterBuilder
|
public class FileDialogFilterBuilder
|
||||||
{
|
{
|
||||||
private readonly FileDialogFilter _filter;
|
private string _name;
|
||||||
|
private readonly List<string> _extensions = new();
|
||||||
|
|
||||||
internal FileDialogFilterBuilder()
|
internal FileDialogFilterBuilder()
|
||||||
{
|
{
|
||||||
_filter = new FileDialogFilter();
|
_name = "Unknown";
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -19,7 +23,7 @@ public class FileDialogFilterBuilder
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public FileDialogFilterBuilder WithName(string name)
|
public FileDialogFilterBuilder WithName(string name)
|
||||||
{
|
{
|
||||||
_filter.Name = name;
|
_name = name;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28,12 +32,16 @@ public class FileDialogFilterBuilder
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public FileDialogFilterBuilder WithExtension(string extension)
|
public FileDialogFilterBuilder WithExtension(string extension)
|
||||||
{
|
{
|
||||||
_filter.Extensions.Add(extension);
|
if (!_extensions.Contains(extension))
|
||||||
|
_extensions.Add(extension);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal FileDialogFilter Build()
|
internal FilePickerFileType Build()
|
||||||
{
|
{
|
||||||
return _filter;
|
return new FilePickerFileType(_name)
|
||||||
|
{
|
||||||
|
Patterns = _extensions.Select(e => "*." + e).ToList()
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,7 +1,9 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
|
using Avalonia.Platform.Storage;
|
||||||
|
|
||||||
namespace Artemis.UI.Shared.Services.Builders;
|
namespace Artemis.UI.Shared.Services.Builders;
|
||||||
|
|
||||||
@ -10,8 +12,9 @@ namespace Artemis.UI.Shared.Services.Builders;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class OpenFileDialogBuilder
|
public class OpenFileDialogBuilder
|
||||||
{
|
{
|
||||||
private readonly OpenFileDialog _openFileDialog;
|
|
||||||
private readonly Window _parent;
|
private readonly Window _parent;
|
||||||
|
private readonly FilePickerOpenOptions _options;
|
||||||
|
private List<FilePickerFileType>? _fileTypeFilters;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a new instance of the <see cref="OpenFileDialogBuilder" /> class.
|
/// Creates a new instance of the <see cref="OpenFileDialogBuilder" /> class.
|
||||||
@ -20,7 +23,7 @@ public class OpenFileDialogBuilder
|
|||||||
internal OpenFileDialogBuilder(Window parent)
|
internal OpenFileDialogBuilder(Window parent)
|
||||||
{
|
{
|
||||||
_parent = parent;
|
_parent = parent;
|
||||||
_openFileDialog = new OpenFileDialog();
|
_options = new FilePickerOpenOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -28,7 +31,7 @@ public class OpenFileDialogBuilder
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public OpenFileDialogBuilder WithAllowMultiple()
|
public OpenFileDialogBuilder WithAllowMultiple()
|
||||||
{
|
{
|
||||||
_openFileDialog.AllowMultiple = true;
|
_options.AllowMultiple = true;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,7 +40,7 @@ public class OpenFileDialogBuilder
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public OpenFileDialogBuilder WithTitle(string? title)
|
public OpenFileDialogBuilder WithTitle(string? title)
|
||||||
{
|
{
|
||||||
_openFileDialog.Title = title;
|
_options.Title = title;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,16 +49,7 @@ public class OpenFileDialogBuilder
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public OpenFileDialogBuilder WithDirectory(string? directory)
|
public OpenFileDialogBuilder WithDirectory(string? directory)
|
||||||
{
|
{
|
||||||
_openFileDialog.Directory = directory;
|
_options.SuggestedStartLocation = directory != null ? _parent.StorageProvider.TryGetFolderFromPathAsync(directory).GetAwaiter().GetResult() : null;
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Set the initial file name of the dialog
|
|
||||||
/// </summary>
|
|
||||||
public OpenFileDialogBuilder WithInitialFileName(string? initialFileName)
|
|
||||||
{
|
|
||||||
_openFileDialog.InitialFileName = initialFileName;
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,8 +61,9 @@ public class OpenFileDialogBuilder
|
|||||||
FileDialogFilterBuilder builder = new();
|
FileDialogFilterBuilder builder = new();
|
||||||
configure(builder);
|
configure(builder);
|
||||||
|
|
||||||
_openFileDialog.Filters ??= new List<FileDialogFilter>();
|
_fileTypeFilters ??= new List<FilePickerFileType>();
|
||||||
_openFileDialog.Filters.Add(builder.Build());
|
_fileTypeFilters.Add(builder.Build());
|
||||||
|
_options.FileTypeFilter = _fileTypeFilters;
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -82,6 +77,7 @@ public class OpenFileDialogBuilder
|
|||||||
/// </returns>
|
/// </returns>
|
||||||
public async Task<string[]?> ShowAsync()
|
public async Task<string[]?> ShowAsync()
|
||||||
{
|
{
|
||||||
return await _openFileDialog.ShowAsync(_parent);
|
IReadOnlyList<IStorageFile> files = await _parent.StorageProvider.OpenFilePickerAsync(_options);
|
||||||
|
return files.Select(f => f.Path.AbsolutePath).ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,5 +1,8 @@
|
|||||||
using System.Threading.Tasks;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
|
using Avalonia.Platform.Storage;
|
||||||
|
|
||||||
namespace Artemis.UI.Shared.Services.Builders;
|
namespace Artemis.UI.Shared.Services.Builders;
|
||||||
|
|
||||||
@ -8,8 +11,8 @@ namespace Artemis.UI.Shared.Services.Builders;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class OpenFolderDialogBuilder
|
public class OpenFolderDialogBuilder
|
||||||
{
|
{
|
||||||
private readonly OpenFolderDialog _openFolderDialog;
|
|
||||||
private readonly Window _parent;
|
private readonly Window _parent;
|
||||||
|
private readonly FolderPickerOpenOptions _options;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a new instance of the <see cref="OpenFolderDialogBuilder" /> class.
|
/// Creates a new instance of the <see cref="OpenFolderDialogBuilder" /> class.
|
||||||
@ -18,16 +21,15 @@ public class OpenFolderDialogBuilder
|
|||||||
internal OpenFolderDialogBuilder(Window parent)
|
internal OpenFolderDialogBuilder(Window parent)
|
||||||
{
|
{
|
||||||
_parent = parent;
|
_parent = parent;
|
||||||
_openFolderDialog = new OpenFolderDialog();
|
_options = new FolderPickerOpenOptions {AllowMultiple = false};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Set the title of the dialog
|
/// Set the title of the dialog
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public OpenFolderDialogBuilder WithTitle(string? title)
|
public OpenFolderDialogBuilder WithTitle(string? title)
|
||||||
{
|
{
|
||||||
_openFolderDialog.Title = title;
|
_options.Title = title;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,7 +38,7 @@ public class OpenFolderDialogBuilder
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public OpenFolderDialogBuilder WithDirectory(string? directory)
|
public OpenFolderDialogBuilder WithDirectory(string? directory)
|
||||||
{
|
{
|
||||||
_openFolderDialog.Directory = directory;
|
_options.SuggestedStartLocation = directory != null ? _parent.StorageProvider.TryGetFolderFromPathAsync(directory).GetAwaiter().GetResult() : null;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,6 +51,7 @@ public class OpenFolderDialogBuilder
|
|||||||
/// </returns>
|
/// </returns>
|
||||||
public async Task<string?> ShowAsync()
|
public async Task<string?> ShowAsync()
|
||||||
{
|
{
|
||||||
return await _openFolderDialog.ShowAsync(_parent);
|
IReadOnlyList<IStorageFolder> folder = await _parent.StorageProvider.OpenFolderPickerAsync(_options);
|
||||||
|
return folder.FirstOrDefault()?.Path.AbsolutePath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
|
using Avalonia.Platform.Storage;
|
||||||
|
|
||||||
namespace Artemis.UI.Shared.Services.Builders;
|
namespace Artemis.UI.Shared.Services.Builders;
|
||||||
|
|
||||||
@ -11,8 +12,9 @@ namespace Artemis.UI.Shared.Services.Builders;
|
|||||||
public class SaveFileDialogBuilder
|
public class SaveFileDialogBuilder
|
||||||
{
|
{
|
||||||
private readonly Window _parent;
|
private readonly Window _parent;
|
||||||
private readonly SaveFileDialog _saveFileDialog;
|
private readonly FilePickerSaveOptions _options;
|
||||||
|
private List<FilePickerFileType>? _fileTypeFilters;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a new instance of the <see cref="SaveFileDialogBuilder" /> class.
|
/// Creates a new instance of the <see cref="SaveFileDialogBuilder" /> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -20,7 +22,7 @@ public class SaveFileDialogBuilder
|
|||||||
internal SaveFileDialogBuilder(Window parent)
|
internal SaveFileDialogBuilder(Window parent)
|
||||||
{
|
{
|
||||||
_parent = parent;
|
_parent = parent;
|
||||||
_saveFileDialog = new SaveFileDialog();
|
_options = new FilePickerSaveOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -28,7 +30,7 @@ public class SaveFileDialogBuilder
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public SaveFileDialogBuilder WithTitle(string? title)
|
public SaveFileDialogBuilder WithTitle(string? title)
|
||||||
{
|
{
|
||||||
_saveFileDialog.Title = title;
|
_options.Title = title;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,7 +39,7 @@ public class SaveFileDialogBuilder
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public SaveFileDialogBuilder WithDirectory(string? directory)
|
public SaveFileDialogBuilder WithDirectory(string? directory)
|
||||||
{
|
{
|
||||||
_saveFileDialog.Directory = directory;
|
_options.SuggestedStartLocation = directory != null ? _parent.StorageProvider.TryGetFolderFromPathAsync(directory).GetAwaiter().GetResult() : null;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,16 +48,7 @@ public class SaveFileDialogBuilder
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public SaveFileDialogBuilder WithInitialFileName(string? initialFileName)
|
public SaveFileDialogBuilder WithInitialFileName(string? initialFileName)
|
||||||
{
|
{
|
||||||
_saveFileDialog.InitialFileName = initialFileName;
|
_options.SuggestedFileName = initialFileName;
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Set the default extension of the dialog
|
|
||||||
/// </summary>
|
|
||||||
public SaveFileDialogBuilder WithDefaultExtension(string? defaultExtension)
|
|
||||||
{
|
|
||||||
_saveFileDialog.DefaultExtension = defaultExtension;
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,8 +60,9 @@ public class SaveFileDialogBuilder
|
|||||||
FileDialogFilterBuilder builder = new();
|
FileDialogFilterBuilder builder = new();
|
||||||
configure(builder);
|
configure(builder);
|
||||||
|
|
||||||
_saveFileDialog.Filters ??= new List<FileDialogFilter>();
|
_fileTypeFilters ??= new List<FilePickerFileType>();
|
||||||
_saveFileDialog.Filters.Add(builder.Build());
|
_fileTypeFilters.Add(builder.Build());
|
||||||
|
_options.FileTypeChoices = _fileTypeFilters;
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -82,6 +76,7 @@ public class SaveFileDialogBuilder
|
|||||||
/// </returns>
|
/// </returns>
|
||||||
public async Task<string?> ShowAsync()
|
public async Task<string?> ShowAsync()
|
||||||
{
|
{
|
||||||
return await _saveFileDialog.ShowAsync(_parent);
|
IStorageFile? path = await _parent.StorageProvider.SaveFilePickerAsync(_options);
|
||||||
|
return path?.Path.AbsolutePath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -8,7 +8,7 @@
|
|||||||
<Border Classes="card" Margin="20">
|
<Border Classes="card" Margin="20">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<TextBlock>I'm in a panel yo!</TextBlock>
|
<TextBlock>I'm in a panel yo!</TextBlock>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
<TextBlock>I'm in a panel yo!</TextBlock>
|
<TextBlock>I'm in a panel yo!</TextBlock>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Border>
|
||||||
@ -44,7 +44,7 @@
|
|||||||
<Setter Property="CornerRadius" Value="{DynamicResource CardCornerRadius}" />
|
<Setter Property="CornerRadius" Value="{DynamicResource CardCornerRadius}" />
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
<Style Selector="Separator.card-separator">
|
<Style Selector="Border.card-separator">
|
||||||
<Setter Property="Background" Value="{DynamicResource ButtonBorderBrush}" />
|
<Setter Property="Background" Value="{DynamicResource ButtonBorderBrush}" />
|
||||||
<Setter Property="Margin" Value="-12 15" />
|
<Setter Property="Margin" Value="-12 15" />
|
||||||
<Setter Property="Height" Value="1" />
|
<Setter Property="Height" Value="1" />
|
||||||
|
|||||||
@ -12,16 +12,16 @@
|
|||||||
<StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Top">
|
<StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Top">
|
||||||
<TextBlock FontWeight="Bold">Device name</TextBlock>
|
<TextBlock FontWeight="Bold">Device name</TextBlock>
|
||||||
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.DeviceInfo.DeviceName}" />
|
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.DeviceInfo.DeviceName}" />
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<TextBlock FontWeight="Bold">Manufacturer</TextBlock>
|
<TextBlock FontWeight="Bold">Manufacturer</TextBlock>
|
||||||
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.DeviceInfo.Manufacturer}" />
|
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.DeviceInfo.Manufacturer}" />
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
|
|
||||||
<TextBlock FontWeight="Bold">Device type</TextBlock>
|
<TextBlock FontWeight="Bold">Device type</TextBlock>
|
||||||
<TextBlock TextWrapping="Wrap" Text="{Binding Device.DeviceType}" />
|
<TextBlock TextWrapping="Wrap" Text="{Binding Device.DeviceType}" />
|
||||||
<Separator Classes="card-separator" IsVisible="{Binding IsKeyboard}" />
|
<Border Classes="card-separator" IsVisible="{Binding IsKeyboard}" />
|
||||||
|
|
||||||
<StackPanel IsVisible="{Binding IsKeyboard}">
|
<StackPanel IsVisible="{Binding IsKeyboard}">
|
||||||
<TextBlock FontWeight="Bold">Physical layout</TextBlock>
|
<TextBlock FontWeight="Bold">Physical layout</TextBlock>
|
||||||
@ -34,15 +34,15 @@
|
|||||||
<StackPanel VerticalAlignment="Top">
|
<StackPanel VerticalAlignment="Top">
|
||||||
<TextBlock FontWeight="Bold">Size (1px = 1mm)</TextBlock>
|
<TextBlock FontWeight="Bold">Size (1px = 1mm)</TextBlock>
|
||||||
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.Size}" />
|
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.Size}" />
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<TextBlock FontWeight="Bold">Location (1px = 1mm)</TextBlock>
|
<TextBlock FontWeight="Bold">Location (1px = 1mm)</TextBlock>
|
||||||
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.Location}" />
|
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.Location}" />
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<TextBlock FontWeight="Bold">Rotation (degrees)</TextBlock>
|
<TextBlock FontWeight="Bold">Rotation (degrees)</TextBlock>
|
||||||
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.Rotation.Degrees}" />
|
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.Rotation.Degrees}" />
|
||||||
<Separator Classes="card-separator" IsVisible="{Binding IsKeyboard}" />
|
<Border Classes="card-separator" IsVisible="{Binding IsKeyboard}" />
|
||||||
|
|
||||||
<StackPanel IsVisible="{Binding IsKeyboard}">
|
<StackPanel IsVisible="{Binding IsKeyboard}">
|
||||||
<TextBlock FontWeight="Bold">Logical layout</TextBlock>
|
<TextBlock FontWeight="Bold">Logical layout</TextBlock>
|
||||||
@ -67,7 +67,7 @@
|
|||||||
<TextBlock
|
<TextBlock
|
||||||
TextWrapping="Wrap"
|
TextWrapping="Wrap"
|
||||||
Text="{Binding DefaultLayoutPath}" />
|
Text="{Binding DefaultLayoutPath}" />
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid ColumnDefinitions="*,Auto">
|
<Grid ColumnDefinitions="*,Auto">
|
||||||
<TextBlock FontWeight="Bold">Image file path</TextBlock>
|
<TextBlock FontWeight="Bold">Image file path</TextBlock>
|
||||||
|
|||||||
@ -68,7 +68,7 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*,*" ColumnDefinitions="Auto,*">
|
<Grid RowDefinitions="*,*,*" ColumnDefinitions="Auto,*">
|
||||||
<Ellipse Grid.Row="0"
|
<Ellipse Grid.Row="0"
|
||||||
@ -96,7 +96,7 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*,*" ColumnDefinitions="Auto,*">
|
<Grid RowDefinitions="*,*,*" ColumnDefinitions="Auto,*">
|
||||||
<Ellipse Grid.Row="0"
|
<Ellipse Grid.Row="0"
|
||||||
@ -124,7 +124,7 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*,*" ColumnDefinitions="Auto,*">
|
<Grid RowDefinitions="*,*,*" ColumnDefinitions="Auto,*">
|
||||||
<Ellipse Grid.Row="0"
|
<Ellipse Grid.Row="0"
|
||||||
|
|||||||
@ -28,7 +28,7 @@
|
|||||||
<ToggleSwitch Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" IsChecked="{CompiledBinding UIAutoRun.Value}" MinWidth="0" Margin="0 -10" OnContent="Yes"
|
<ToggleSwitch Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" IsChecked="{CompiledBinding UIAutoRun.Value}" MinWidth="0" Margin="0 -10" OnContent="Yes"
|
||||||
OffContent="No" />
|
OffContent="No" />
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0">
|
<StackPanel Grid.Column="0">
|
||||||
@ -39,7 +39,7 @@
|
|||||||
OffContent="No" />
|
OffContent="No" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0">
|
<StackPanel Grid.Column="0">
|
||||||
@ -60,7 +60,7 @@
|
|||||||
<TextBlock VerticalAlignment="Center" TextAlignment="Right" Width="30">sec</TextBlock>
|
<TextBlock VerticalAlignment="Center" TextAlignment="Right" Width="30">sec</TextBlock>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
@ -76,7 +76,7 @@
|
|||||||
<shared:EnumComboBox Width="150" Value="{CompiledBinding CoreLoggingLevel.Value}" />
|
<shared:EnumComboBox Width="150" Value="{CompiledBinding CoreLoggingLevel.Value}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||||
@ -114,7 +114,7 @@
|
|||||||
<ToggleSwitch IsChecked="{CompiledBinding WebServerEnabled.Value}" OnContent="Yes" OffContent="No" MinWidth="0" Margin="0 -10" />
|
<ToggleSwitch IsChecked="{CompiledBinding WebServerEnabled.Value}" OnContent="Yes" OffContent="No" MinWidth="0" Margin="0 -10" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0">
|
<StackPanel Grid.Column="0">
|
||||||
@ -156,7 +156,7 @@
|
|||||||
<ToggleSwitch IsChecked="{CompiledBinding UICheckForUpdates.Value}" MinWidth="0" OnContent="Yes" OffContent="No" />
|
<ToggleSwitch IsChecked="{CompiledBinding UICheckForUpdates.Value}" MinWidth="0" OnContent="Yes" OffContent="No" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0">
|
<StackPanel Grid.Column="0">
|
||||||
@ -171,7 +171,7 @@
|
|||||||
<ToggleSwitch IsEnabled="{CompiledBinding UICheckForUpdates.Value}" IsChecked="{CompiledBinding UIAutoUpdate.Value}" MinWidth="0" OnContent="Yes" OffContent="No" />
|
<ToggleSwitch IsEnabled="{CompiledBinding UICheckForUpdates.Value}" IsChecked="{CompiledBinding UIAutoUpdate.Value}" MinWidth="0" OnContent="Yes" OffContent="No" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||||
@ -209,7 +209,7 @@
|
|||||||
<ToggleSwitch IsChecked="{CompiledBinding ProfileEditorShowDataModelValues.Value}" MinWidth="0" OnContent="Yes" OffContent="No" />
|
<ToggleSwitch IsChecked="{CompiledBinding ProfileEditorShowDataModelValues.Value}" MinWidth="0" OnContent="Yes" OffContent="No" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0">
|
<StackPanel Grid.Column="0">
|
||||||
@ -282,7 +282,7 @@
|
|||||||
Items="{CompiledBinding GraphicsContexts}" />
|
Items="{CompiledBinding GraphicsContexts}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0">
|
<StackPanel Grid.Column="0">
|
||||||
@ -305,7 +305,7 @@
|
|||||||
</ComboBox>
|
</ComboBox>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0">
|
<StackPanel Grid.Column="0">
|
||||||
@ -353,7 +353,7 @@
|
|||||||
<Button Command="{CompiledBinding ShowSetupWizard}" Width="150" Content="Show wizard" />
|
<Button Command="{CompiledBinding ShowSetupWizard}" Width="150" Content="Show wizard" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||||
@ -368,7 +368,7 @@
|
|||||||
<Button Command="{CompiledBinding ShowDebugger}" Width="150" Content="Show debugger" />
|
<Button Command="{CompiledBinding ShowDebugger}" Width="150" Content="Show debugger" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||||
|
|||||||
@ -116,7 +116,7 @@
|
|||||||
</Panel>
|
</Panel>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
<Grid Margin="-5 -10" ColumnDefinitions="*,*,*">
|
<Grid Margin="-5 -10" ColumnDefinitions="*,*,*">
|
||||||
<Grid Grid.Column="0" ColumnDefinitions="*,*" RowDefinitions="*,*,*" Classes="info-container" HorizontalAlignment="Left">
|
<Grid Grid.Column="0" ColumnDefinitions="*,*" RowDefinitions="*,*,*" Classes="info-container" HorizontalAlignment="Left">
|
||||||
<avalonia1:MaterialIcon Kind="Calendar" Grid.Column="0" Grid.RowSpan="2" Classes="info-icon" />
|
<avalonia1:MaterialIcon Kind="Calendar" Grid.Column="0" Grid.RowSpan="2" Classes="info-icon" />
|
||||||
@ -154,7 +154,7 @@
|
|||||||
<Border Grid.Row="1" Classes="card">
|
<Border Grid.Row="1" Classes="card">
|
||||||
<Grid RowDefinitions="Auto,Auto,*">
|
<Grid RowDefinitions="Auto,Auto,*">
|
||||||
<TextBlock Grid.Row="0" Classes="h5 no-margin">Release notes</TextBlock>
|
<TextBlock Grid.Row="0" Classes="h5 no-margin">Release notes</TextBlock>
|
||||||
<Separator Grid.Row="1" Classes="card-separator" />
|
<Border Grid.Row="1" Classes="card-separator" />
|
||||||
|
|
||||||
<avalonia:MarkdownScrollViewer Grid.Row="2" Markdown="{CompiledBinding Changelog}" MarkdownStyleName="FluentAvalonia">
|
<avalonia:MarkdownScrollViewer Grid.Row="2" Markdown="{CompiledBinding Changelog}" MarkdownStyleName="FluentAvalonia">
|
||||||
<avalonia:MarkdownScrollViewer.Styles>
|
<avalonia:MarkdownScrollViewer.Styles>
|
||||||
|
|||||||
@ -24,7 +24,7 @@
|
|||||||
</Styles>
|
</Styles>
|
||||||
</UserControl.Styles>
|
</UserControl.Styles>
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
<Grid ColumnDefinitions="*,Auto">
|
<Grid ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0">
|
<StackPanel Grid.Column="0">
|
||||||
<TextBlock TextWrapping="Wrap" Text="{CompiledBinding RequirementName}" />
|
<TextBlock TextWrapping="Wrap" Text="{CompiledBinding RequirementName}" />
|
||||||
|
|||||||
@ -8,9 +8,9 @@
|
|||||||
x:DataType="sidebar:ModuleActivationRequirementsViewModel">
|
x:DataType="sidebar:ModuleActivationRequirementsViewModel">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<Grid ColumnDefinitions="*,Auto,*">
|
<Grid ColumnDefinitions="*,Auto,*">
|
||||||
<Separator Grid.Column="0" Height="1" Background="{DynamicResource TextFillColorTertiaryBrush}" />
|
<Border Grid.Column="0" Height="1" Background="{DynamicResource TextFillColorTertiaryBrush}" />
|
||||||
<TextBlock Grid.Column="1" Margin="16 0">AND</TextBlock>
|
<TextBlock Grid.Column="1" Margin="16 0">AND</TextBlock>
|
||||||
<Separator Grid.Column="2" Height="1" Background="{DynamicResource TextFillColorTertiaryBrush}" />
|
<Border Grid.Column="2" Height="1" Background="{DynamicResource TextFillColorTertiaryBrush}" />
|
||||||
</Grid>
|
</Grid>
|
||||||
<Border Classes="card" Margin="0 5">
|
<Border Classes="card" Margin="0 5">
|
||||||
<StackPanel Orientation="Vertical">
|
<StackPanel Orientation="Vertical">
|
||||||
|
|||||||
@ -31,7 +31,7 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
<ToggleSwitch Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" IsChecked="{CompiledBinding UIAutoRun.Value}" MinWidth="0" Margin="0 -10" />
|
<ToggleSwitch Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" IsChecked="{CompiledBinding UIAutoRun.Value}" MinWidth="0" Margin="0 -10" />
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0">
|
<StackPanel Grid.Column="0">
|
||||||
@ -41,7 +41,7 @@
|
|||||||
<ToggleSwitch IsChecked="{CompiledBinding !UIShowOnStartup.Value}" IsEnabled="{CompiledBinding UIAutoRun.Value}" MinWidth="0" Margin="0 -10" />
|
<ToggleSwitch IsChecked="{CompiledBinding !UIShowOnStartup.Value}" IsEnabled="{CompiledBinding UIAutoRun.Value}" MinWidth="0" Margin="0 -10" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0">
|
<StackPanel Grid.Column="0">
|
||||||
@ -87,7 +87,7 @@
|
|||||||
<ToggleSwitch IsChecked="{CompiledBinding UICheckForUpdates.Value}" MinWidth="0" />
|
<ToggleSwitch IsChecked="{CompiledBinding UICheckForUpdates.Value}" MinWidth="0" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Classes="card-separator" />
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0">
|
<StackPanel Grid.Column="0">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user