Fix build errors

This commit is contained in:
2023-04-25 16:34:13 +02:00
parent a0d9a11538
commit bde131f422
9 changed files with 189 additions and 125 deletions

View File

@@ -28,7 +28,7 @@ public class FontService : IFontService
public string? GetMainFont()
{
var installedFonts = FontManager.Current.GetInstalledFontFamilyNames().ToList();
var installedFonts = FontManager.Current.SystemFonts.Select(f => f.Name).ToList();
return _fontConfiguration.CurrentValue.Main.Find(installedFonts.Contains);
}
}

View File

@@ -36,7 +36,7 @@
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="ContextMenu">
<ContextMenu Items="{Binding Converter={StaticResource ContextMenuGenerator}}" />
<ContextMenu ItemsSource="{Binding Converter={StaticResource ContextMenuGenerator}}" />
</Setter>
</Style>

View File

@@ -1,3 +1,5 @@
using Avalonia;
using Avalonia.Input.Platform;
using FileTime.App.Core.Services;
namespace FileTime.GuiApp.Services;
@@ -6,7 +8,8 @@ public class SystemClipboardService : ISystemClipboardService
{
public async Task CopyToClipboardAsync(string text)
{
if (global::Avalonia.Application.Current?.Clipboard is { } clipboard)
var clipboard = AvaloniaLocator.Current.GetService<IClipboard>();
if (clipboard is not null)
{
await clipboard.SetTextAsync(text);
}

View File

@@ -88,12 +88,16 @@ public class WindowsContextMenuProvider : IContextMenuProvider
}
else if (shellKey.GetValue("ExtendedSubCommandsKey") is string extendedCommands)
{
var rootMenu = new MenuItem() {Header = text, Icon = image};
var rootMenuItems = new List<object>();
ProcessRegistryKey(Registry.ClassesRoot.OpenSubKey(extendedCommands), rootMenuItems, folderPath);
rootMenu.Items = rootMenuItems.ToArray();
var rootMenu = new MenuItem {Header = text, Icon = image};
foreach (var item in rootMenuItems)
{
rootMenu.Items.Add(item);
}
menuItems.Add(rootMenu);
}
}

View File

@@ -22,7 +22,7 @@
<ListBox
Grid.Row="1"
Classes="CommandPalette"
Items="{Binding FilteredMatches}"
ItemsSource="{Binding FilteredMatches}"
SelectedItem="{Binding SelectedItem}">
<ListBox.ItemTemplate>
<DataTemplate x:DataType="x:String">

View File

@@ -1,97 +1,153 @@
<UserControl 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:appcore="using:FileTime.App.Core.ViewModels"
xmlns:appcoreenums="using:FileTime.App.Core.Models.Enums"
xmlns:guiappvm="using:FileTime.GuiApp.ViewModels"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="FileTime.GuiApp.Views.ItemView"
x:Name="ItemRoot"
HorizontalContentAlignment="Stretch"
HorizontalAlignment="Stretch"
Background="{Binding ViewMode^,Converter={StaticResource ItemViewModeToBackgroundConverter}}"
x:CompileBindings="True"
x:DataType="appcore:IItemViewModel">
<Grid ColumnDefinitions="20,*,Auto" Margin="3" x:Name="RootGrid">
<Grid.Styles>
<Style Selector="TextBlock">
<Setter x:CompileBindings="False" Property="Foreground" Value="{Binding DataContext.ViewMode^,Converter={StaticResource ItemViewModeToForegroundConverter},ElementName=ItemRoot}"/>
</Style>
</Grid.Styles>
<Image
Width="18"
Height="18"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Source="{Binding Converter={StaticResource ItemToImageConverter}}" />
<UserControl
x:Class="FileTime.GuiApp.Views.ItemView"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:appcore="using:FileTime.App.Core.ViewModels"
xmlns:appcoreenums="using:FileTime.App.Core.Models.Enums"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:guiappvm="using:FileTime.GuiApp.ViewModels"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
x:Name="ItemRoot"
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
d:DesignHeight="450"
d:DesignWidth="800"
x:CompileBindings="True"
x:DataType="appcore:IItemViewModel"
Background="{Binding ViewMode^, Converter={StaticResource ItemViewModeToBackgroundConverter}}"
mc:Ignorable="d">
<Grid
x:Name="RootGrid"
Margin="3"
ColumnDefinitions="20,*,Auto">
<Grid.Styles>
<Style Selector="TextBlock">
<Setter x:CompileBindings="False" Property="Foreground" Value="{Binding DataContext.ViewMode^, Converter={StaticResource ItemViewModeToForegroundConverter}, ElementName=ItemRoot}" />
</Style>
</Grid.Styles>
<Image
Width="18"
Height="18"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Source="{Binding Converter={StaticResource ItemToImageConverter}}" />
<ItemsControl
Margin="5,0,0,0"
Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Stretch">
<ItemsControl.Items>
<MultiBinding Converter="{StaticResource NamePartShrinkerConverter}">
<MultiBinding.Bindings>
<Binding Path="DisplayName^"/>
<Binding ElementName="RootGrid" Path="Bounds.Width"/>
<Binding ElementName="ItemRoot" Path="ShowAttributes"/>
</MultiBinding.Bindings>
</MultiBinding>
</ItemsControl.Items>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="guiappvm:ItemNamePartViewModel">
<Grid>
<TextBlock
Text="{Binding Text}"
TextDecorations="{Binding TextDecorations}"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ItemsControl
Grid.Column="1"
Margin="5,0,0,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Center">
<ItemsControl.ItemsSource>
<MultiBinding Converter="{StaticResource NamePartShrinkerConverter}">
<MultiBinding.Bindings>
<Binding Path="DisplayName^" />
<Binding
ElementName="RootGrid"
Path="Bounds.Width" />
<Binding
ElementName="ItemRoot"
Path="ShowAttributes" />
</MultiBinding.Bindings>
</MultiBinding>
</ItemsControl.ItemsSource>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="guiappvm:ItemNamePartViewModel">
<Grid>
<TextBlock
Text="{Binding Text}"
TextDecorations="{Binding TextDecorations}" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<Grid Grid.Column="2" IsVisible="{Binding ShowAttributes,ElementName=ItemRoot}">
<Grid ColumnDefinitions="50,50,90,40,45"
HorizontalAlignment="Right"
IsVisible="{Binding Converter={StaticResource ItemViewModelIsAttributeTypeConverter},ConverterParameter={x:Static appcoreenums:ItemAttributeType.File}}"
x:DataType="appcore:IFileViewModel">
<Grid
Grid.Column="2"
IsVisible="{Binding ShowAttributes, ElementName=ItemRoot}">
<Grid
HorizontalAlignment="Right"
x:DataType="appcore:IFileViewModel"
ColumnDefinitions="50,50,90,40,45"
IsVisible="{Binding Converter={StaticResource ItemViewModelIsAttributeTypeConverter}, ConverterParameter={x:Static appcoreenums:ItemAttributeType.File}}">
<TextBlock HorizontalAlignment="Right" Classes="SmallText" Text="{Binding BaseItem.DisplayName, Converter={StaticResource GetFileExtensionConverter}}"/>
<TextBlock HorizontalAlignment="Right" Classes="SmallText" Grid.Column="1" Text="{Binding Size, Converter={StaticResource FormatSizeConverter}, ConverterParameter=0}"/>
<TextBlock HorizontalAlignment="Right" Classes="SmallText" Grid.Column="2" Text="{Binding BaseItem.CreatedAt, Converter={StaticResource DateTimeConverter}, ConverterParameter=yyyy-MM-dd}"/>
<TextBlock HorizontalAlignment="Right" Classes="SmallText" Grid.Column="3" Text="{Binding BaseItem.CreatedAt, Converter={StaticResource DateTimeConverter}, ConverterParameter=hh:mm}"/>
<TextBlock HorizontalAlignment="Right" Classes="SmallText" Grid.Column="4" Text="{Binding BaseItem.Attributes}"/>
</Grid>
<Grid ColumnDefinitions="90,40,45"
HorizontalAlignment="Right"
IsVisible="{Binding Converter={StaticResource ItemViewModelIsAttributeTypeConverter},ConverterParameter={x:Static appcoreenums:ItemAttributeType.Container}}"
x:DataType="appcore:IContainerViewModel">
<TextBlock
HorizontalAlignment="Right"
Classes="SmallText"
Text="{Binding BaseItem.DisplayName, Converter={StaticResource GetFileExtensionConverter}}" />
<TextBlock
Grid.Column="1"
HorizontalAlignment="Right"
Classes="SmallText"
Text="{Binding Size, Converter={StaticResource FormatSizeConverter}, ConverterParameter=0}" />
<TextBlock
Grid.Column="2"
HorizontalAlignment="Right"
Classes="SmallText"
Text="{Binding BaseItem.CreatedAt, Converter={StaticResource DateTimeConverter}, ConverterParameter=yyyy-MM-dd}" />
<TextBlock
Grid.Column="3"
HorizontalAlignment="Right"
Classes="SmallText"
Text="{Binding BaseItem.CreatedAt, Converter={StaticResource DateTimeConverter}, ConverterParameter=hh:mm}" />
<TextBlock
Grid.Column="4"
HorizontalAlignment="Right"
Classes="SmallText"
Text="{Binding BaseItem.Attributes}" />
</Grid>
<Grid
HorizontalAlignment="Right"
x:DataType="appcore:IContainerViewModel"
ColumnDefinitions="90,40,45"
IsVisible="{Binding Converter={StaticResource ItemViewModelIsAttributeTypeConverter}, ConverterParameter={x:Static appcoreenums:ItemAttributeType.Container}}">
<TextBlock HorizontalAlignment="Right" Classes="SmallText" Text="{Binding CreatedAt, Converter={StaticResource DateTimeConverter}, ConverterParameter=yyyy-MM-dd}"/>
<TextBlock HorizontalAlignment="Right" Classes="SmallText" Grid.Column="1" Text="{Binding BaseItem.CreatedAt, Converter={StaticResource DateTimeConverter}, ConverterParameter=hh:mm}"/>
<TextBlock HorizontalAlignment="Right" Classes="SmallText" Grid.Column="2" Text="{Binding BaseItem.Attributes}"/>
</Grid>
<Grid ColumnDefinitions="50,90,40,45"
HorizontalAlignment="Right"
IsVisible="{Binding Converter={StaticResource ItemViewModelIsAttributeTypeConverter},ConverterParameter={x:Static appcoreenums:ItemAttributeType.SizeContainer}}"
x:DataType="appcore:IContainerSizeContainerViewModel">
<TextBlock
HorizontalAlignment="Right"
Classes="SmallText"
Text="{Binding CreatedAt, Converter={StaticResource DateTimeConverter}, ConverterParameter=yyyy-MM-dd}" />
<TextBlock
Grid.Column="1"
HorizontalAlignment="Right"
Classes="SmallText"
Text="{Binding BaseItem.CreatedAt, Converter={StaticResource DateTimeConverter}, ConverterParameter=hh:mm}" />
<TextBlock
Grid.Column="2"
HorizontalAlignment="Right"
Classes="SmallText"
Text="{Binding BaseItem.Attributes}" />
</Grid>
<Grid
HorizontalAlignment="Right"
x:DataType="appcore:IContainerSizeContainerViewModel"
ColumnDefinitions="50,90,40,45"
IsVisible="{Binding Converter={StaticResource ItemViewModelIsAttributeTypeConverter}, ConverterParameter={x:Static appcoreenums:ItemAttributeType.SizeContainer}}">
<TextBlock HorizontalAlignment="Right" Classes="SmallText" Text="{Binding Size, Converter={StaticResource FormatSizeConverter}, ConverterParameter=0}"/>
</Grid>
<Grid ColumnDefinitions="50,50"
HorizontalAlignment="Right"
IsVisible="{Binding Converter={StaticResource ItemViewModelIsAttributeTypeConverter},ConverterParameter={x:Static appcoreenums:ItemAttributeType.Element}}"
x:DataType="appcore:IElementViewModel">
<TextBlock
HorizontalAlignment="Right"
Classes="SmallText"
Text="{Binding Size, Converter={StaticResource FormatSizeConverter}, ConverterParameter=0}" />
</Grid>
<Grid
HorizontalAlignment="Right"
x:DataType="appcore:IElementViewModel"
ColumnDefinitions="50,50"
IsVisible="{Binding Converter={StaticResource ItemViewModelIsAttributeTypeConverter}, ConverterParameter={x:Static appcoreenums:ItemAttributeType.Element}}">
<TextBlock HorizontalAlignment="Right" Classes="SmallText" Text="{Binding BaseItem.DisplayName, Converter={StaticResource GetFileExtensionConverter}}"/>
<TextBlock HorizontalAlignment="Right" Classes="SmallText" Grid.Column="1" Text="{Binding Size, Converter={StaticResource FormatSizeConverter}, ConverterParameter=0}"/>
</Grid>
</Grid>
</Grid>
<TextBlock
HorizontalAlignment="Right"
Classes="SmallText"
Text="{Binding BaseItem.DisplayName, Converter={StaticResource GetFileExtensionConverter}}" />
<TextBlock
Grid.Column="1"
HorizontalAlignment="Right"
Classes="SmallText"
Text="{Binding Size, Converter={StaticResource FormatSizeConverter}, ConverterParameter=0}" />
</Grid>
</Grid>
</Grid>
</UserControl>

View File

@@ -88,7 +88,7 @@
<ItemsRepeater
Grid.Row="1"
Items="{Binding AppState.RootDriveInfos.Collection}">
ItemsSource="{Binding AppState.RootDriveInfos.Collection}">
<ItemsRepeater.ItemTemplate>
<DataTemplate x:DataType="vm:RootDriveInfo">
<Grid
@@ -179,7 +179,7 @@
<ItemsRepeater
Grid.Row="1"
Items="{Binding AppState.Places}">
ItemsSource="{Binding AppState.Places}">
<ItemsRepeater.ItemTemplate>
<DataTemplate x:DataType="vm:PlaceInfo">
<Grid
@@ -280,7 +280,7 @@
RowDefinitions="Auto,40,*,Auto">
<Grid>
<ItemsControl Items="{Binding AppState.TimelineViewModel.ParallelCommandsGroups.Collection}">
<ItemsControl ItemsSource="{Binding AppState.TimelineViewModel.ParallelCommandsGroups.Collection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
@@ -295,7 +295,7 @@
Background="{DynamicResource ContainerBackgroundColor}"
CornerRadius="10">
<ScrollViewer>
<ItemsControl Items="{Binding Commands.Collection}">
<ItemsControl ItemsSource="{Binding Commands.Collection}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border
@@ -321,7 +321,7 @@
<ItemsControl
Grid.Row="1"
Items="{Binding AppState.Tabs}">
ItemsSource="{Binding AppState.Tabs}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
@@ -363,7 +363,7 @@
AutoScrollToSelectedItem="True"
Classes="ContentListView"
IsTabStop="True"
Items="{Binding AppState.SelectedTab^.ParentsChildrenCollection.Collection}"
ItemsSource="{Binding AppState.SelectedTab^.ParentsChildrenCollection.Collection}"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.VerticalScrollBarVisibility="Visible">
<ListBox.ItemTemplate>
@@ -408,7 +408,7 @@
AutoScrollToSelectedItem="True"
Classes="ContentListView"
IsTabStop="True"
Items="{Binding AppState.SelectedTab^.CurrentItemsCollection.Collection}"
ItemsSource="{Binding AppState.SelectedTab^.CurrentItemsCollection.Collection}"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.VerticalScrollBarVisibility="Visible"
SelectedItem="{Binding AppState.SelectedTab^.CurrentSelectedItem^}">
@@ -451,7 +451,7 @@
AutoScrollToSelectedItem="True"
Classes="ContentListView"
IsVisible="{Binding AppState.SelectedTab^.SelectedsChildrenCollection.Collection.Count, Converter={StaticResource NotEqualsConverter}, ConverterParameter=0}"
Items="{Binding AppState.SelectedTab^.SelectedsChildrenCollection.Collection}">
ItemsSource="{Binding AppState.SelectedTab^.SelectedsChildrenCollection.Collection}">
<ListBox.ItemTemplate>
<DataTemplate x:DataType="corevm:IItemViewModel">
<local:ItemView />
@@ -483,7 +483,7 @@
<ItemsRepeater
Grid.Row="1"
Items="{Binding AppState.SelectedTab^.CurrentSelectedItem^.BaseItem.Exceptions^}">
ItemsSource="{Binding AppState.SelectedTab^.CurrentSelectedItem^.BaseItem.Exceptions^}">
<ItemsRepeater.ItemTemplate>
<DataTemplate>
<TextBlock
@@ -518,7 +518,7 @@
HorizontalAlignment="Center"
VerticalAlignment="Top"
IsVisible="{Binding AppState.PopupTexts.Count, Converter={StaticResource NotEqualsConverter}, ConverterParameter=0}"
Items="{Binding AppState.PopupTexts}">
ItemsSource="{Binding AppState.PopupTexts}">
<ItemsRepeater.Styles>
<Style Selector="TextBlock">
<Style.Animations>
@@ -591,7 +591,7 @@
<ItemsRepeater
Grid.Row="1"
Items="{Binding AppState.PossibleCommands}">
ItemsSource="{Binding AppState.PossibleCommands}">
<ItemsRepeater.ItemTemplate>
<DataTemplate x:DataType="config:CommandBindingConfiguration">
<Grid>
@@ -627,7 +627,7 @@
<ItemsControl
x:Name="InputList"
Items="{Binding DialogService.ReadInput^.Inputs}">
ItemsSource="{Binding DialogService.ReadInput^.Inputs}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid
@@ -655,7 +655,7 @@
x:DataType="interactions:IOptionsInputElement"
Classes="RadioButtonListBox"
IsVisible="{Binding Type, Converter={StaticResource EqualityConverter}, ConverterParameter={x:Static interactions:InputType.Options}}"
Items="{Binding Options}"
ItemsSource="{Binding Options}"
SelectedItem="{Binding Value}" />
</Grid>
</Grid>

View File

@@ -1,11 +1,14 @@
<UserControl 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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
xmlns:coremodels="using:FileTime.Core.Models"
x:Class="FileTime.GuiApp.Views.PathPresenter">
<ItemsControl Items="{Binding Converter={StaticResource SplitStringConverter}, ConverterParameter={x:Static coremodels:Constants.SeparatorChar}}">
<UserControl
x:Class="FileTime.GuiApp.Views.PathPresenter"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:coremodels="using:FileTime.Core.Models"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
d:DesignHeight="450"
d:DesignWidth="800"
mc:Ignorable="d">
<ItemsControl ItemsSource="{Binding Converter={StaticResource SplitStringConverter}, ConverterParameter={x:Static coremodels:Constants.SeparatorChar}}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
@@ -14,8 +17,11 @@
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding}"/>
<TextBlock Text="/" Margin="5,0,5,0" Foreground="{DynamicResource LightForegroundBrush}"/>
<TextBlock Text="{Binding}" />
<TextBlock
Margin="5,0,5,0"
Foreground="{DynamicResource LightForegroundBrush}"
Text="/" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>

View File

@@ -10,9 +10,4 @@ public partial class PathPresenter : UserControl
{
InitializeComponent();
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
}