Possible commands, IsAlternative fix

This commit is contained in:
2022-05-08 22:45:56 +02:00
parent 9bf95ebe4e
commit 5b9d0667cc
17 changed files with 184 additions and 64 deletions

View File

@@ -44,33 +44,39 @@
</LinearGradientBrush>
<SolidColorBrush Color="{DynamicResource AppBackgroundColor}" x:Key="AppBackgroundBrush" />
<SolidColorBrush Color="{DynamicResource ContainerBackgroundColor}" x:Key="ContainerBackgroundBrush" />
<SolidColorBrush Color="{DynamicResource TransparentContainerBackgroundColor}" x:Key="TransparentContainerBackgroundBrush" />
<SolidColorBrush Color="{DynamicResource TransparentContainerBackgroundColor}"
x:Key="TransparentContainerBackgroundBrush" />
<SolidColorBrush Color="{DynamicResource ItemBackgroundColor}" x:Key="ItemBackgroundBrush" />
<SolidColorBrush Color="{DynamicResource AlternativeItemBackgroundColor}" x:Key="AlternativeItemBackgroundBrush" />
<SolidColorBrush Color="{DynamicResource AlternativeItemBackgroundColor}"
x:Key="AlternativeItemBackgroundBrush" />
<SolidColorBrush Color="{DynamicResource SelectedItemBackgroundColor}" x:Key="SelectedItemBackgroundBrush" />
<SolidColorBrush Color="{DynamicResource MarkedItemBackgroundColor}" x:Key="MarkedItemBackgroundBrush" />
<SolidColorBrush Color="{DynamicResource MarkedSelectedItemBackgroundColor}" x:Key="MarkedSelectedItemBackgroundBrush" />
<SolidColorBrush Color="{DynamicResource MarkedAlternativeItemBackgroundColor}" x:Key="MarkedAlternativeItemBackgroundBrush" />
<SolidColorBrush Color="{DynamicResource MarkedSelectedItemBackgroundColor}"
x:Key="MarkedSelectedItemBackgroundBrush" />
<SolidColorBrush Color="{DynamicResource MarkedAlternativeItemBackgroundColor}"
x:Key="MarkedAlternativeItemBackgroundBrush" />
<SolidColorBrush Color="{DynamicResource ForegroundColor}" x:Key="ForegroundBrush" />
<SolidColorBrush Color="{DynamicResource AccentColor}" x:Key="AccentBrush" />
<SolidColorBrush Color="{DynamicResource AccentComplementColor}" x:Key="AccentComplementBrush" />
<SolidColorBrush Color="{DynamicResource LightForegroundColor}" x:Key="LightForegroundBrush" />
<SolidColorBrush Color="{DynamicResource AlternativeItemForegroundColor}" x:Key="AlternativeItemForegroundBrush" />
<SolidColorBrush Color="{DynamicResource AlternativeItemForegroundColor}"
x:Key="AlternativeItemForegroundBrush" />
<SolidColorBrush Color="{DynamicResource SelectedItemForegroundColor}" x:Key="SelectedItemForegroundBrush" />
<SolidColorBrush Color="{DynamicResource MarkedItemForegroundColor}" x:Key="MarkedItemForegroundBrush" />
<SolidColorBrush Color="{DynamicResource MarkedAlternativeItemForegroundColor}" x:Key="MarkedAlternativeItemForegroundBrush" />
<SolidColorBrush Color="{DynamicResource MarkedSelectedItemForegroundColor}" x:Key="MarkedSelectedItemForegroundBrush" />
<SolidColorBrush Color="{DynamicResource MarkedAlternativeItemForegroundColor}"
x:Key="MarkedAlternativeItemForegroundBrush" />
<SolidColorBrush Color="{DynamicResource MarkedSelectedItemForegroundColor}"
x:Key="MarkedSelectedItemForegroundBrush" />
<SolidColorBrush Color="{DynamicResource ErrorColor}" x:Key="ErrorBrush" />
<SolidColorBrush Color="{DynamicResource SelectedItemBackgroundColor}" x:Key="SystemControlHighlightListAccentLowBrush" />
<SolidColorBrush Color="{DynamicResource SelectedItemBackgroundColor}"
x:Key="SystemControlHighlightListAccentLowBrush" />
<converters:ItemViewModeToBrushConverter
@@ -91,14 +97,17 @@
x:Key="ItemViewModeToBackgroundConverter" />
<converters:NamePartShrinkerConverter x:Key="NamePartShrinkerConverter" />
<converters:ItemViewModelIsAttributeTypeConverter x:Key="ItemViewModelIsAttributeTypeConverter" />
<converters:ItemViewModelIsAttributeTypeConverter Invert="true" x:Key="ItemViewModelIsNotAttributeTypeConverter" />
<converters:ItemViewModelIsAttributeTypeConverter Invert="true"
x:Key="ItemViewModelIsNotAttributeTypeConverter" />
<converters:GetFileExtensionConverter x:Key="GetFileExtensionConverter" />
<converters:FormatSizeConverter x:Key="FormatSizeConverter" />
<converters:DateTimeConverter x:Key="DateTimeConverter" />
<converters:SplitStringConverter x:Key="SplitStringConverter" />
<converters:CompareConverter x:Key="EqualityConverter" />
<converters:CompareConverter ComparisonCondition="{x:Static converters:ComparisonCondition.NotEqual}" x:Key="NotEqualsConverter" />
<converters:CompareConverter ComparisonCondition="{x:Static converters:ComparisonCondition.NotEqual}"
x:Key="NotEqualsConverter" />
<converters:ExceptionToStringConverter x:Key="ExceptionToStringConverter" />
<converters:CommandToCommandNameConverter x:Key="CommandToCommandNameConverter" />
</ResourceDictionary>
</Application.Resources>
@@ -182,4 +191,4 @@
</Style.Animations>
</Style>
</Application.Styles>
</Application>
</Application>

View File

@@ -0,0 +1,21 @@
using System.Globalization;
using Avalonia.Data.Converters;
using FileTime.App.Core.Command;
namespace FileTime.GuiApp.Converters;
public class CommandToCommandNameConverter : IValueConverter
{
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if(value is not Commands command) return value;
//TODO: implement
return command.ToString();
}
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

View File

@@ -14,7 +14,7 @@ using MvvmGen;
namespace FileTime.GuiApp.ViewModels;
[ViewModel]
[Inject(typeof(IAppState), "_appState")]
[Inject(typeof(IGuiAppState), "_appState")]
[Inject(typeof(ILocalContentProvider), "_localContentProvider")]
[Inject(typeof(IServiceProvider), PropertyName = "_serviceProvider")]
[Inject(typeof(ILogger<MainWindowViewModel>), PropertyName = "_logger")]
@@ -22,7 +22,7 @@ namespace FileTime.GuiApp.ViewModels;
public partial class MainWindowViewModel : IMainWindowViewModelBase
{
public bool Loading => false;
public IAppState AppState => _appState;
public IGuiAppState AppState => _appState;
public string Title { get; private set; }
partial void OnInitialize()
@@ -30,7 +30,7 @@ public partial class MainWindowViewModel : IMainWindowViewModelBase
_logger?.LogInformation($"Starting {nameof(MainWindowViewModel)} initialization...");
var version = Assembly.GetEntryAssembly()!.GetName().Version;
var versionString = "Unknwon version";
var versionString = "Unknown version";
if (version != null)
{
versionString = $"{version.Major}.{version.Minor}.{version.Build}";

View File

@@ -7,6 +7,7 @@
xmlns:local="using:FileTime.GuiApp.Views"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="using:FileTime.GuiApp.ViewModels"
xmlns:config="using:FileTime.GuiApp.Configuration"
Title="FileTime"
d:DesignHeight="450"
d:DesignWidth="800"
@@ -180,7 +181,8 @@
Fill="{DynamicResource ContentSeparatorBrush}" />
<Grid Grid.Column="4">
<Grid IsVisible="{Binding AppState.SelectedTab^.SelectedsChildrenCollection.Collection, Converter={x:Static ObjectConverters.IsNotNull}}">
<Grid
IsVisible="{Binding AppState.SelectedTab^.SelectedsChildrenCollection.Collection, Converter={x:Static ObjectConverters.IsNotNull}}">
<ListBox
x:Name="ChildItems"
x:CompileBindings="False"
@@ -232,6 +234,42 @@
</Grid>
</Grid>
</Grid>
<Grid Grid.Row="3">
<Grid
IsVisible="{Binding AppState.PossibleCommands.Count, Converter={StaticResource NotEqualsConverter}, ConverterParameter=0}">
<Grid.RowDefinitions>
<RowDefinition Height="1" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle
Height="1"
Margin="10,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Fill="{DynamicResource ContentSeparatorBrush}" />
<ItemsRepeater
Grid.Row="1"
Items="{Binding AppState.PossibleCommands}">
<ItemsRepeater.ItemTemplate>
<DataTemplate x:DataType="config:CommandBindingConfiguration">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding KeysDisplayText}" />
<TextBlock Grid.Column="1"
Text="{Binding Command, Converter={StaticResource CommandToCommandNameConverter}}" />
</Grid>
</DataTemplate>
</ItemsRepeater.ItemTemplate>
</ItemsRepeater>
</Grid>
</Grid>
</Grid>
</Grid>
<!-- Borders -->