1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-12 13:28:33 +00:00

Think better of move

This commit is contained in:
Robert 2025-12-09 20:55:50 +01:00
parent bfffa99737
commit 2ad5f974e8
150 changed files with 372 additions and 365 deletions

View File

@ -46,51 +46,4 @@
<ItemGroup>
<Folder Include="Screens\Profiles\" />
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\DisplayCondition\ConditionTypes\AlwaysOnConditionView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\DisplayCondition\ConditionTypes\EventConditionView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\DisplayCondition\ConditionTypes\PlayOnceConditionView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\DisplayCondition\ConditionTypes\StaticConditionView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\DisplayCondition\DisplayConditionScriptView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\MenuBar\MenuBarView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Playback\PlaybackView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\ProfileTree\ContentDialogs\ProfileElementRenameView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\ProfileTree\Dialogs\AdaptionHints\CategoryAdaptionHintView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\ProfileTree\Dialogs\AdaptionHints\DeviceAdaptionHintView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\ProfileTree\Dialogs\AdaptionHints\KeyboardSectionAdaptionHintView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\ProfileTree\Dialogs\AdaptionHints\SingleLedAdaptionHintView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\ProfileTree\Dialogs\LayerHintsDialogView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\ProfileTree\FolderTreeItemView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\ProfileTree\LayerTreeItemView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\ProfileTree\ProfileTreeView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\DataBinding\DataBindingView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Dialogs\AddEffectView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Dialogs\TimelineSegmentEditView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\PropertiesView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Timeline\Keyframes\TimelineEasingView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Timeline\Keyframes\TimelineKeyframeView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Timeline\Segments\EndSegmentView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Timeline\Segments\MainSegmentView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Timeline\Segments\Segment.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Timeline\Segments\StartSegmentView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Timeline\TimelineGroupView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Timeline\TimelinePropertyView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Timeline\TimelineView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Tree\ContentDialogs\LayerEffectRenameView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Tree\Dialogs\LayerBrushPresetView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Tree\TreeGroupView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Tree\TreePropertyView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Windows\BrushConfigurationWindowView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\Properties\Windows\EffectConfigurationWindowView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\StatusBar\StatusBarView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\VisualEditor\Tools\SelectionAddToolView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\VisualEditor\Tools\SelectionRemoveToolView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\VisualEditor\Tools\TransformToolView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\VisualEditor\VisualEditorView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\VisualEditor\Visualizers\LayerShapeVisualizerView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\Panels\VisualEditor\Visualizers\LayerVisualizerView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\ProfileEditorTitleBarView.axaml" />
<AdditionalFiles Include="Screens\Profiles\ProfileEditor\ProfileEditorView.axaml" />
</ItemGroup>
</Project>

View File

@ -1,7 +1,7 @@
using System;
using System.Globalization;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Tree;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Tree;
using Artemis.UI.Screens.ProfileEditor.Properties.Tree;
using Artemis.UI.Screens.ProfileEditor.Properties.Tree;
using Avalonia;
using Avalonia.Data.Converters;

View File

@ -6,7 +6,7 @@ using System.Reactive.Linq;
using Artemis.Core;
using Artemis.Core.LayerBrushes;
using Artemis.Core.Services;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Tree.Dialogs;
using Artemis.UI.Screens.ProfileEditor.Properties.Tree.Dialogs;
using Artemis.UI.Shared.Services;
using Artemis.UI.Shared.Services.Builders;
using Artemis.UI.Shared.Services.ProfileEditor;
@ -14,7 +14,7 @@ using Artemis.UI.Shared.Services.ProfileEditor.Commands;
using Artemis.UI.Shared.Services.PropertyInput;
using Avalonia.Threading;
using ReactiveUI;
using LayerBrushPresetViewModel = Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Tree.Dialogs.LayerBrushPresetViewModel;
using LayerBrushPresetViewModel = Artemis.UI.Screens.ProfileEditor.Properties.Tree.Dialogs.LayerBrushPresetViewModel;
namespace Artemis.UI.DefaultTypes.PropertyInput;

View File

@ -11,12 +11,12 @@ using Artemis.UI.Screens.Device.Leds;
using Artemis.UI.Screens.Plugins;
using Artemis.UI.Screens.Plugins.Features;
using Artemis.UI.Screens.Plugins.Prerequisites;
using Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes;
using Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree;
using Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.DataBinding;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Tree;
using Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes;
using Artemis.UI.Screens.ProfileEditor.ProfileTree;
using Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
using Artemis.UI.Screens.ProfileEditor.Properties.DataBinding;
using Artemis.UI.Screens.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.ProfileEditor.Properties.Tree;
using Artemis.UI.Screens.Settings;
using Artemis.UI.Screens.Settings.Updating;
using Artemis.UI.Screens.Sidebar;
@ -26,14 +26,14 @@ using Artemis.UI.Screens.VisualScripting.Pins;
using Artemis.WebClient.Updating;
using DryIoc;
using ReactiveUI;
using LayerShapeVisualizerViewModel = Artemis.UI.Screens.Profiles.ProfileEditor.VisualEditor.Visualizers.LayerShapeVisualizerViewModel;
using LayerVisualizerViewModel = Artemis.UI.Screens.Profiles.ProfileEditor.VisualEditor.Visualizers.LayerVisualizerViewModel;
using ProfileEditorViewModel = Artemis.UI.Screens.Profiles.ProfileEditor.ProfileEditorViewModel;
using PropertyGroupViewModel = Artemis.UI.Screens.Profiles.ProfileEditor.Properties.PropertyGroupViewModel;
using PropertyViewModel = Artemis.UI.Screens.Profiles.ProfileEditor.Properties.PropertyViewModel;
using SingleLedAdaptionHintViewModel = Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.SingleLedAdaptionHintViewModel;
using TimelineGroupViewModel = Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.TimelineGroupViewModel;
using TreeItemViewModel = Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.TreeItemViewModel;
using LayerShapeVisualizerViewModel = Artemis.UI.Screens.ProfileEditor.VisualEditor.Visualizers.LayerShapeVisualizerViewModel;
using LayerVisualizerViewModel = Artemis.UI.Screens.ProfileEditor.VisualEditor.Visualizers.LayerVisualizerViewModel;
using ProfileEditorViewModel = Artemis.UI.Screens.ProfileEditor.ProfileEditorViewModel;
using PropertyGroupViewModel = Artemis.UI.Screens.ProfileEditor.Properties.PropertyGroupViewModel;
using PropertyViewModel = Artemis.UI.Screens.ProfileEditor.Properties.PropertyViewModel;
using SingleLedAdaptionHintViewModel = Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.SingleLedAdaptionHintViewModel;
using TimelineGroupViewModel = Artemis.UI.Screens.ProfileEditor.Properties.Timeline.TimelineGroupViewModel;
using TreeItemViewModel = Artemis.UI.Screens.ProfileEditor.ProfileTree.TreeItemViewModel;
namespace Artemis.UI.DryIoc.Factories;

View File

@ -2,13 +2,13 @@
using Artemis.Core;
using Artemis.UI.DryIoc.Factories;
using Artemis.UI.Exceptions;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Tree;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Tree;
using Artemis.UI.Screens.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.ProfileEditor.Properties.Tree;
using Artemis.UI.Screens.ProfileEditor.Properties;
using Artemis.UI.Screens.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.ProfileEditor.Properties.Tree;
using DryIoc;
using PropertyViewModel = Artemis.UI.Screens.Profiles.ProfileEditor.Properties.PropertyViewModel;
using PropertyViewModel = Artemis.UI.Screens.ProfileEditor.Properties.PropertyViewModel;
namespace Artemis.UI.DryIoc.InstanceProviders;

View File

@ -1,6 +1,6 @@
using System.Collections.Generic;
using Artemis.UI.Screens.Home;
using Artemis.UI.Screens.Profiles.ProfileEditor;
using Artemis.UI.Screens.ProfileEditor;
using Artemis.UI.Screens.Root;
using Artemis.UI.Screens.Settings;
using Artemis.UI.Screens.Settings.Updating;
@ -16,7 +16,7 @@ using Artemis.UI.Screens.Workshop.Plugins;
using Artemis.UI.Screens.Workshop.Profile;
using Artemis.UI.Shared.Routing;
using PluginDetailsViewModel = Artemis.UI.Screens.Workshop.Plugins.PluginDetailsViewModel;
using ProfileEditorViewModel = Artemis.UI.Screens.Profiles.ProfileEditor.ProfileEditorViewModel;
using ProfileEditorViewModel = Artemis.UI.Screens.ProfileEditor.ProfileEditorViewModel;
namespace Artemis.UI.Routing
{

View File

@ -1,7 +1,7 @@
using System;
using Artemis.UI.Shared;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition;
public class ConditionTypeViewModel : ViewModelBase
{

View File

@ -4,7 +4,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
mc:Ignorable="d" d:DesignWidth="300" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes.AlwaysOnConditionView">
x:Class="Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes.AlwaysOnConditionView">
<DockPanel VerticalAlignment="Top" Margin="0 5">
<avalonia:MaterialIcon Kind="InfoCircle" Margin="5 0" />

View File

@ -1,6 +1,7 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes;
public partial class AlwaysOnConditionView : UserControl
{

View File

@ -1,7 +1,7 @@
using Artemis.Core;
using Artemis.UI.Shared;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes;
public class AlwaysOnConditionViewModel : ViewModelBase
{

View File

@ -2,10 +2,10 @@
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:conditionTypes="clr-namespace:Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes"
xmlns:dataModelPicker="clr-namespace:Artemis.UI.Shared.DataModelPicker;assembly=Artemis.UI.Shared"
xmlns:conditionTypes="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes.EventConditionView"
x:Class="Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes.EventConditionView"
x:DataType="conditionTypes:EventConditionViewModel">
<DockPanel HorizontalAlignment="Stretch">
<DockPanel.Styles>

View File

@ -1,6 +1,7 @@
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes;
public partial class EventConditionView : ReactiveUserControl<EventConditionViewModel>
{

View File

@ -11,7 +11,7 @@ using Artemis.UI.Shared.Services.ProfileEditor;
using Artemis.UI.Shared.Services.ProfileEditor.Commands;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes;
public class EventConditionViewModel : ActivatableViewModelBase
{

View File

@ -4,7 +4,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes.PlayOnceConditionView">
x:Class="Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes.PlayOnceConditionView">
<DockPanel VerticalAlignment="Top" Margin="0 5">
<avalonia:MaterialIcon Kind="InfoCircle" Margin="5 0" />
<TextBlock Foreground="{DynamicResource TextFillColorSecondaryBrush}"

View File

@ -1,6 +1,7 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes;
public partial class PlayOnceConditionView : UserControl
{

View File

@ -1,7 +1,7 @@
using Artemis.Core;
using Artemis.UI.Shared;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes;
public class PlayOnceConditionViewModel : ViewModelBase
{

View File

@ -2,10 +2,10 @@
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:conditionTypes="clr-namespace:Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:conditionTypes="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes.StaticConditionView"
x:Class="Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes.StaticConditionView"
x:DataType="conditionTypes:StaticConditionViewModel">
<DockPanel HorizontalAlignment="Stretch">
<DockPanel.Styles>

View File

@ -1,6 +1,7 @@
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes;
public partial class StaticConditionView : ReactiveUserControl<StaticConditionViewModel>
{

View File

@ -10,7 +10,7 @@ using Artemis.UI.Shared.Services.ProfileEditor;
using Artemis.UI.Shared.Services.ProfileEditor.Commands;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes;
public class StaticConditionViewModel : ActivatableViewModelBase
{

View File

@ -2,9 +2,9 @@
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:displayCondition="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition"
xmlns:displayCondition="clr-namespace:Artemis.UI.Screens.ProfileEditor.DisplayCondition"
mc:Ignorable="d" d:DesignWidth="200" d:DesignHeight="650"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition.DisplayConditionScriptView"
x:Class="Artemis.UI.Screens.ProfileEditor.DisplayCondition.DisplayConditionScriptView"
x:DataType="displayCondition:DisplayConditionScriptViewModel">
<UserControl.Styles>
<Style Selector="ComboBox.condition-type /template/ ContentPresenter#ContentPresenter">

View File

@ -1,6 +1,7 @@
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition;
public partial class DisplayConditionScriptView : ReactiveUserControl<DisplayConditionScriptViewModel>
{

View File

@ -9,7 +9,7 @@ using Artemis.UI.Shared.Services.ProfileEditor;
using Artemis.UI.Shared.Services.ProfileEditor.Commands;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.DisplayCondition;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition;
public class DisplayConditionScriptViewModel : ActivatableViewModelBase
{

View File

@ -3,11 +3,11 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:menuBar="clr-namespace:Artemis.UI.Screens.ProfileEditor.MenuBar"
xmlns:profileEditor="clr-namespace:Artemis.UI.Shared.Services.ProfileEditor;assembly=Artemis.UI.Shared"
xmlns:menuBar1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.MenuBar"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.MenuBar.MenuBarView"
x:DataType="menuBar1:MenuBarViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.MenuBar.MenuBarView"
x:DataType="menuBar:MenuBarViewModel">
<Menu VerticalAlignment="Top" Closed="MenuBase_OnMenuClosed">
<MenuItem Header="_File">
<MenuItem Header="New">

View File

@ -1,9 +1,10 @@
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
using Avalonia.VisualTree;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.MenuBar;
namespace Artemis.UI.Screens.ProfileEditor.MenuBar;
public partial class MenuBarView : ReactiveUserControl<MenuBarViewModel>
{

View File

@ -16,7 +16,7 @@ using Artemis.UI.Shared.Services.ProfileEditor;
using PropertyChanged.SourceGenerator;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.MenuBar;
namespace Artemis.UI.Screens.ProfileEditor.MenuBar;
public partial class MenuBarViewModel : ActivatableViewModelBase
{
@ -42,7 +42,7 @@ public partial class MenuBarViewModel : ActivatableViewModelBase
_profileService = profileService;
_settingsService = settingsService;
_windowService = windowService;
ViewForMixins.WhenActivated((IActivatableViewModel) this, (CompositeDisposable d) =>
this.WhenActivated(d =>
{
profileEditorService.History.Subscribe(history => History = history).DisposeWith(d);
_profileConfiguration = profileEditorService.ProfileConfiguration.ToProperty(this, vm => vm.ProfileConfiguration).DisposeWith(d);

View File

@ -3,9 +3,9 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:playback="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.Playback"
xmlns:playback="clr-namespace:Artemis.UI.Screens.ProfileEditor.Playback"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="48"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.Playback.PlaybackView"
x:Class="Artemis.UI.Screens.ProfileEditor.Playback.PlaybackView"
x:DataType="playback:PlaybackViewModel">
<Grid Margin="8 0">
<Grid.ColumnDefinitions>

View File

@ -1,7 +1,7 @@
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Playback;
namespace Artemis.UI.Screens.ProfileEditor.Playback;
public partial class PlaybackView : ReactiveUserControl<PlaybackViewModel>
{

View File

@ -1,4 +1,4 @@
using System;
using System;
using System.Reactive;
using System.Reactive.Disposables;
using System.Reactive.Linq;
@ -11,7 +11,7 @@ using Avalonia.Threading;
using PropertyChanged.SourceGenerator;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Playback;
namespace Artemis.UI.Screens.ProfileEditor.Playback;
public partial class PlaybackViewModel : ActivatableViewModelBase
{

View File

@ -8,7 +8,7 @@ using Avalonia.Interactivity;
using Avalonia.VisualTree;
using Avalonia.Xaml.Interactions.DragAndDrop;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Behaviors;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Behaviors;
public class ProfileTreeViewDropHandler : DropHandlerBase
{

View File

@ -2,10 +2,10 @@
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:contentDialogs1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.ContentDialogs"
xmlns:contentDialogs="clr-namespace:Artemis.UI.Screens.ProfileEditor.ProfileTree.ContentDialogs"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.ContentDialogs.ProfileElementRenameView"
x:DataType="contentDialogs1:ProfileElementRenameViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.ContentDialogs.ProfileElementRenameView"
x:DataType="contentDialogs:ProfileElementRenameViewModel">
<StackPanel>
<TextBox Name="NameTextBox" Text="{CompiledBinding ProfileElementName}" Watermark="Profile element name" />
</StackPanel>

View File

@ -1,10 +1,13 @@
using System.Threading.Tasks;
using Artemis.UI.Shared.Extensions;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
using Avalonia.Threading;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.ContentDialogs;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.ContentDialogs;
public partial class ProfileElementRenameView : ReactiveUserControl<ProfileElementRenameViewModel>
{

View File

@ -8,7 +8,7 @@ using PropertyChanged.SourceGenerator;
using ReactiveUI;
using ReactiveUI.Validation.Extensions;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.ContentDialogs;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.ContentDialogs;
public partial class ProfileElementRenameViewModel : ContentDialogViewModelBase
{
@ -23,7 +23,7 @@ public partial class ProfileElementRenameViewModel : ContentDialogViewModelBase
_profileElementName = profileElement.Name;
Confirm = ReactiveCommand.Create(ExecuteConfirm, ValidationContext.Valid);
this.ValidationRule<ProfileElementRenameViewModel, string>(vm => vm.ProfileElementName, name => !string.IsNullOrWhiteSpace(name), "You must specify a valid name");
this.ValidationRule(vm => vm.ProfileElementName, name => !string.IsNullOrWhiteSpace(name), "You must specify a valid name");
}
public ReactiveCommand<Unit, Unit> Confirm { get; }

View File

@ -3,7 +3,7 @@ using Artemis.Core;
using Artemis.UI.Shared;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public abstract class AdaptionHintViewModelBase : ViewModelBase
{

View File

@ -3,12 +3,12 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:adaptionHints="clr-namespace:Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints"
xmlns:shared="clr-namespace:Artemis.UI.Shared;assembly=Artemis.UI.Shared"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:adaptionHints1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.CategoryAdaptionHintView"
x:DataType="adaptionHints1:CategoryAdaptionHintViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.CategoryAdaptionHintView"
x:DataType="adaptionHints:CategoryAdaptionHintViewModel">
<Grid ColumnDefinitions="*,Auto" RowDefinitions="Auto,Auto">
<StackPanel Grid.ColumnSpan="2" Margin="0 0 0 5">
<TextBlock Classes="h5">Category hint</TextBlock>

View File

@ -1,6 +1,7 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public partial class CategoryAdaptionHintView : UserControl
{

View File

@ -1,6 +1,6 @@
using Artemis.Core;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public class CategoryAdaptionHintViewModel : AdaptionHintViewModelBase
{

View File

@ -2,13 +2,13 @@
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:adaptionHints="clr-namespace:Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:shared="clr-namespace:Artemis.UI.Shared;assembly=Artemis.UI.Shared"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:adaptionHints1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.DeviceAdaptionHintView"
x:DataType="adaptionHints1:DeviceAdaptionHintViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.DeviceAdaptionHintView"
x:DataType="adaptionHints:DeviceAdaptionHintViewModel">
<Grid ColumnDefinitions="*,Auto" RowDefinitions="Auto,Auto">
<StackPanel Grid.ColumnSpan="2" Margin="0 0 0 5">
<TextBlock Classes="h5">Device type hint</TextBlock>

View File

@ -1,6 +1,7 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public partial class DeviceAdaptionHintView : UserControl
{

View File

@ -1,6 +1,6 @@
using Artemis.Core;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public class DeviceAdaptionHintViewModel : AdaptionHintViewModelBase
{

View File

@ -4,10 +4,10 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:shared="clr-namespace:Artemis.UI.Shared;assembly=Artemis.UI.Shared"
xmlns:adaptionHints1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints"
xmlns:adaptionHints="clr-namespace:Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.KeyboardSectionAdaptionHintView"
x:DataType="adaptionHints1:KeyboardSectionAdaptionHintViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.KeyboardSectionAdaptionHintView"
x:DataType="adaptionHints:KeyboardSectionAdaptionHintViewModel">
<Grid ColumnDefinitions="*,Auto" RowDefinitions="Auto,Auto">
<StackPanel Grid.ColumnSpan="2" Margin="0 0 0 5">
<TextBlock Classes="h5">Keyboard section hint</TextBlock>

View File

@ -1,6 +1,7 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public partial class KeyboardSectionAdaptionHintView : UserControl
{

View File

@ -1,6 +1,6 @@
using Artemis.Core;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public class KeyboardSectionAdaptionHintViewModel : AdaptionHintViewModelBase
{

View File

@ -2,12 +2,13 @@
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:adaptionHints="clr-namespace:Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:shared="clr-namespace:Artemis.UI.Shared;assembly=Artemis.UI.Shared"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:adaptionHints1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.SingleLedAdaptionHintView"
x:DataType="adaptionHints1:SingleLedAdaptionHintViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.SingleLedAdaptionHintView"
x:DataType="adaptionHints:SingleLedAdaptionHintViewModel">
<Grid ColumnDefinitions="*,Auto" RowDefinitions="Auto,Auto">
<StackPanel Grid.ColumnSpan="2" Margin="0 0 0 5">
<TextBlock Classes="h5">Single LED hint</TextBlock>

View File

@ -1,6 +1,7 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public partial class SingleLedAdaptionHintView : UserControl
{

View File

@ -7,7 +7,7 @@ using PropertyChanged.SourceGenerator;
using ReactiveUI;
using RGB.NET.Core;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public partial class SingleLedAdaptionHintViewModel : AdaptionHintViewModelBase
{
@ -18,11 +18,11 @@ public partial class SingleLedAdaptionHintViewModel : AdaptionHintViewModelBase
{
SingleLedAdaptionHint = adaptionHint;
this.WhenAnyValue<SingleLedAdaptionHintViewModel, AdaptionLed>(vm => vm.SelectedLed).WhereNotNull().Subscribe(l => SingleLedAdaptionHint.LedId = l.Value);
this.WhenAnyValue(vm => vm.SelectedLed).WhereNotNull().Subscribe(l => SingleLedAdaptionHint.LedId = l.Value);
Task.Run(() =>
{
AdaptionLeds = Enum.GetValues<LedId>().Select(l => new AdaptionLed(l)).ToList();
SelectedLed = Enumerable.FirstOrDefault<AdaptionLed>(AdaptionLeds, l => l.Value == adaptionHint.LedId);
SelectedLed = AdaptionLeds.FirstOrDefault(l => l.Value == adaptionHint.LedId);
});
}

View File

@ -2,12 +2,13 @@
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:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:dialogs="clr-namespace:Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:windowing="clr-namespace:FluentAvalonia.UI.Windowing;assembly=FluentAvalonia"
xmlns:dialogs1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs"
mc:Ignorable="d"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.LayerHintsDialogView"
x:DataType="dialogs1:LayerHintsDialogViewModel"
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.LayerHintsDialogView"
x:DataType="dialogs:LayerHintsDialogViewModel"
WindowStartupLocation="CenterOwner"
Icon="/Assets/Images/Logo/application.ico"
Title="Artemis | Adaption hints"

View File

@ -1,6 +1,8 @@
using Artemis.UI.Shared;
using Avalonia;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs;
public partial class LayerHintsDialogView : ReactiveAppWindow<LayerHintsDialogViewModel>
{

View File

@ -6,12 +6,12 @@ using System.Reactive.Linq;
using Artemis.Core;
using Artemis.Core.Services;
using Artemis.UI.DryIoc.Factories;
using Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
using Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
using Artemis.UI.Shared;
using DynamicData;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs;
public class LayerHintsDialogViewModel : DialogViewModelBase<bool>
{

View File

@ -3,10 +3,11 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:profileTree1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree"
xmlns:profileTree="clr-namespace:Artemis.UI.Screens.ProfileEditor.ProfileTree"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.FolderTreeItemView"
x:DataType="profileTree1:FolderTreeItemViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.FolderTreeItemView"
x:DataType="profileTree:FolderTreeItemViewModel">
<Grid ColumnDefinitions="Auto,Auto,*,Auto,Auto">
<HyperlinkButton Grid.Column="0"
Classes="icon-button icon-button-small broken-state-button"

View File

@ -1,6 +1,6 @@
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree;
public partial class FolderTreeItemView : ReactiveUserControl<FolderTreeItemViewModel>
{

View File

@ -1,7 +1,9 @@
using System.Linq;
using System;
using System.Linq;
using System.Threading.Tasks;
using Artemis.Core;
using Artemis.Core.Services;
using Artemis.Storage.Entities.Profile;
using Artemis.UI.DryIoc.Factories;
using Artemis.UI.Extensions;
using Artemis.UI.Models;
@ -9,7 +11,7 @@ using Artemis.UI.Shared.Services;
using Artemis.UI.Shared.Services.ProfileEditor;
using Artemis.UI.Shared.Services.ProfileEditor.Commands;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree;
public class FolderTreeItemViewModel : TreeItemViewModel
{

View File

@ -3,10 +3,11 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:profileTree1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree"
xmlns:profileTree="clr-namespace:Artemis.UI.Screens.ProfileEditor.ProfileTree"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.LayerTreeItemView"
x:DataType="profileTree1:LayerTreeItemViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.LayerTreeItemView"
x:DataType="profileTree:LayerTreeItemViewModel">
<Grid ColumnDefinitions="Auto,Auto,*,Auto,Auto">
<HyperlinkButton Grid.Column="0"
Classes="icon-button icon-button-small broken-state-button"

View File

@ -1,6 +1,6 @@
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree;
public partial class LayerTreeItemView : ReactiveUserControl<LayerTreeItemViewModel>
{

View File

@ -10,7 +10,7 @@ using Artemis.UI.Shared.Services;
using Artemis.UI.Shared.Services.ProfileEditor;
using Artemis.UI.Shared.Services.ProfileEditor.Commands;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree;
public class LayerTreeItemViewModel : TreeItemViewModel
{

View File

@ -3,13 +3,13 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:profileTree="clr-namespace:Artemis.UI.Screens.ProfileEditor.ProfileTree"
xmlns:profileBehaviors="clr-namespace:Artemis.UI.Screens.ProfileEditor.ProfileTree.Behaviors"
xmlns:behaviors="clr-namespace:Artemis.UI.Behaviors"
xmlns:converters="clr-namespace:Artemis.UI.Converters"
xmlns:profileTree1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree"
xmlns:behaviors1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Behaviors"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.ProfileTreeView"
x:DataType="profileTree1:ProfileTreeViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.ProfileTreeView"
x:DataType="profileTree:ProfileTreeViewModel">
<!-- These cause binding errors, not my fault - https://github.com/AvaloniaUI/Avalonia/issues/5762 -->
<UserControl.KeyBindings>
<KeyBinding Gesture="Escape" Command="{CompiledBinding ClearSelection}" />
@ -26,7 +26,7 @@
<StyleInclude Source="avares://Avalonia.Xaml.Interactions.Draggable/Styles.axaml" />
<Style Selector="TreeView#Profile">
<Style.Resources>
<behaviors1:ProfileTreeViewDropHandler x:Key="ProfileTreeViewDropHandler" />
<profileBehaviors:ProfileTreeViewDropHandler x:Key="ProfileTreeViewDropHandler" />
</Style.Resources>
<Setter Property="(Interaction.Behaviors)">
<BehaviorCollectionTemplate>
@ -101,7 +101,7 @@
</TreeView.Styles>
<TreeView.ItemTemplate>
<TreeDataTemplate ItemsSource="{CompiledBinding Children}">
<ContentControl Content="{CompiledBinding}" x:DataType="profileTree1:TreeItemViewModel" Background="Transparent">
<ContentControl Content="{CompiledBinding}" x:DataType="profileTree:TreeItemViewModel" Background="Transparent">
<ContentControl.ContextFlyout>
<MenuFlyout IsOpen="{CompiledBinding IsFlyoutOpen, Mode=OneWayToSource}">
<MenuItem Header="Add new folder" Command="{CompiledBinding AddFolder}">

View File

@ -10,7 +10,7 @@ using Avalonia.Media.Imaging;
using Avalonia.ReactiveUI;
using Avalonia.VisualTree;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree;
public partial class ProfileTreeView : ReactiveUserControl<ProfileTreeViewModel>
{

View File

@ -14,7 +14,7 @@ using Artemis.UI.Shared.Services.ProfileEditor;
using PropertyChanged.SourceGenerator;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree;
public partial class ProfileTreeViewModel : TreeItemViewModel
{
@ -51,13 +51,13 @@ public partial class ProfileTreeViewModel : TreeItemViewModel
});
ClearSelection = ReactiveCommand.Create(() => profileEditorService.ChangeCurrentProfileElement(null), this.WhenAnyValue(vm => vm.KeyBindingsEnabled));
RenameSelected = ReactiveCommand.Create(() => { ObservableExtensions.Subscribe<Unit>(SelectedChild?.Rename.Execute()); }, this.WhenAnyValue(vm => vm.KeyBindingsEnabled));
DeleteSelected = ReactiveCommand.Create(() => { ObservableExtensions.Subscribe<Unit>(SelectedChild?.Delete.Execute()); }, this.WhenAnyValue(vm => vm.KeyBindingsEnabled));
DuplicateSelected = ReactiveCommand.Create(() => { ObservableExtensions.Subscribe<Unit>(SelectedChild?.Duplicate.Execute()); }, this.WhenAnyValue(vm => vm.KeyBindingsEnabled));
CopySelected = ReactiveCommand.Create(() => { ObservableExtensions.Subscribe<Unit>(SelectedChild?.Copy.Execute()); }, this.WhenAnyValue(vm => vm.KeyBindingsEnabled));
PasteSelected = ReactiveCommand.Create(() => { ObservableExtensions.Subscribe<Unit>(SelectedChild?.Paste.Execute()); }, this.WhenAnyValue(vm => vm.KeyBindingsEnabled));
RenameSelected = ReactiveCommand.Create(() => { SelectedChild?.Rename.Execute().Subscribe(); }, this.WhenAnyValue(vm => vm.KeyBindingsEnabled));
DeleteSelected = ReactiveCommand.Create(() => { SelectedChild?.Delete.Execute().Subscribe(); }, this.WhenAnyValue(vm => vm.KeyBindingsEnabled));
DuplicateSelected = ReactiveCommand.Create(() => { SelectedChild?.Duplicate.Execute().Subscribe(); }, this.WhenAnyValue(vm => vm.KeyBindingsEnabled));
CopySelected = ReactiveCommand.Create(() => { SelectedChild?.Copy.Execute().Subscribe(); }, this.WhenAnyValue(vm => vm.KeyBindingsEnabled));
PasteSelected = ReactiveCommand.Create(() => { SelectedChild?.Paste.Execute().Subscribe(); }, this.WhenAnyValue(vm => vm.KeyBindingsEnabled));
this.WhenAnyValue<ProfileTreeViewModel, TreeItemViewModel>(vm => vm.SelectedChild).Subscribe(model =>
this.WhenAnyValue(vm => vm.SelectedChild).Subscribe(model =>
{
if (model?.ProfileElement is RenderProfileElement renderProfileElement)
profileEditorService.ChangeCurrentProfileElement(renderProfileElement);

View File

@ -5,23 +5,25 @@ using System.Linq;
using System.Reactive;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using System.Threading;
using System.Threading.Tasks;
using Artemis.Core;
using Artemis.Core.Services;
using Artemis.UI.DryIoc.Factories;
using Artemis.UI.Extensions;
using Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.ContentDialogs;
using Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree.Dialogs;
using Artemis.UI.Screens.ProfileEditor.ProfileTree.ContentDialogs;
using Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs;
using Artemis.UI.Shared;
using Artemis.UI.Shared.Services;
using Artemis.UI.Shared.Services.Builders;
using Artemis.UI.Shared.Services.ProfileEditor;
using Artemis.UI.Shared.Services.ProfileEditor.Commands;
using Avalonia;
using Avalonia.ReactiveUI;
using PropertyChanged.SourceGenerator;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.ProfileTree;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree;
public abstract partial class TreeItemViewModel : ActivatableViewModelBase
{
@ -55,13 +57,13 @@ public abstract partial class TreeItemViewModel : ActivatableViewModelBase
AddLayer = ReactiveCommand.Create(ExecuteAddLayer);
AddFolder = ReactiveCommand.Create(ExecuteAddFolder);
OpenAdaptionHints = ReactiveCommand.CreateFromTask(ExecuteOpenAdaptionHints, this.WhenAnyValue<TreeItemViewModel, ProfileElement>(vm => vm.ProfileElement).Select(p => p is Layer));
ApplyAdaptionHints = ReactiveCommand.Create(ExecuteApplyAdaptionHints, this.WhenAnyValue<TreeItemViewModel, ProfileElement>(vm => vm.ProfileElement).Select(p => p is Layer));
OpenAdaptionHints = ReactiveCommand.CreateFromTask(ExecuteOpenAdaptionHints, this.WhenAnyValue(vm => vm.ProfileElement).Select(p => p is Layer));
ApplyAdaptionHints = ReactiveCommand.Create(ExecuteApplyAdaptionHints, this.WhenAnyValue(vm => vm.ProfileElement).Select(p => p is Layer));
Rename = ReactiveCommand.CreateFromTask(ExecuteRename);
Delete = ReactiveCommand.Create(ExecuteDelete);
Duplicate = ReactiveCommand.CreateFromTask(ExecuteDuplicate);
Copy = ReactiveCommand.CreateFromTask(ExecuteCopy);
Paste = ReactiveCommand.CreateFromTask(ExecutePaste, this.WhenAnyValue<TreeItemViewModel, bool>(vm => vm.CanPaste));
Paste = ReactiveCommand.CreateFromTask(ExecutePaste, this.WhenAnyValue(vm => vm.CanPaste));
AbsorbCommand = ReactiveCommand.Create(() => true);
this.WhenActivated(d =>
@ -78,7 +80,7 @@ public abstract partial class TreeItemViewModel : ActivatableViewModelBase
CreateTreeItems();
});
this.WhenAnyValue<TreeItemViewModel, bool>(vm => vm.IsFlyoutOpen).ObserveOn(AvaloniaScheduler.Instance).Subscribe(UpdateCanPaste);
this.WhenAnyValue(vm => vm.IsFlyoutOpen).ObserveOn(AvaloniaScheduler.Instance).Subscribe(UpdateCanPaste);
}
public ReactiveCommand<Unit, bool> AbsorbCommand { get; }

View File

@ -3,9 +3,10 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:dataBinding="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.Properties.DataBinding"
xmlns:dataBinding="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties.DataBinding"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.Properties.DataBinding.DataBindingView"
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.DataBinding.DataBindingView"
x:DataType="dataBinding:DataBindingViewModel">
<Grid RowDefinitions="48,*">
<Grid Grid.Row="0" ColumnDefinitions="Auto,Auto,*" Background="{DynamicResource ControlFillColorDefaultBrush}">

View File

@ -1,6 +1,7 @@
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.DataBinding;
namespace Artemis.UI.Screens.ProfileEditor.Properties.DataBinding;
public partial class DataBindingView : ReactiveUserControl<DataBindingViewModel>
{

View File

@ -14,7 +14,7 @@ using Artemis.UI.Shared.Services.ProfileEditor;
using Artemis.UI.Shared.Services.ProfileEditor.Commands;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.DataBinding;
namespace Artemis.UI.Screens.ProfileEditor.Properties.DataBinding;
public class DataBindingViewModel : ActivatableViewModelBase
{

View File

@ -4,11 +4,11 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:layerEffects="clr-namespace:Artemis.Core.LayerEffects;assembly=Artemis.Core"
xmlns:dialogs="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties.Dialogs"
xmlns:shared="clr-namespace:Artemis.UI.Shared;assembly=Artemis.UI.Shared"
xmlns:dialogs1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Dialogs"
mc:Ignorable="d" d:DesignWidth="500" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Dialogs.AddEffectView"
x:DataType="dialogs1:AddEffectViewModel"
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.Dialogs.AddEffectView"
x:DataType="dialogs:AddEffectViewModel"
Width="500">
<Grid RowDefinitions="Auto,*">
<TextBox Name="SearchBox" Text="{CompiledBinding SearchText}" Margin="0 0 0 15" Watermark="Search" />

View File

@ -1,9 +1,10 @@
using Artemis.Core.LayerEffects;
using Avalonia;
using Avalonia.Input;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Dialogs;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Dialogs;
public partial class AddEffectView : ReactiveUserControl<AddEffectViewModel>
{

View File

@ -11,7 +11,7 @@ using DynamicData;
using PropertyChanged.SourceGenerator;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Dialogs;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Dialogs;
public partial class AddEffectViewModel : ContentDialogViewModelBase
{
@ -26,7 +26,7 @@ public partial class AddEffectViewModel : ContentDialogViewModelBase
SourceList<LayerEffectDescriptor> layerEffectSourceList = new();
layerEffectSourceList.AddRange(layerEffectService.GetLayerEffects());
IObservable<Func<LayerEffectDescriptor, bool>> layerEffectFilter = this.WhenAnyValue<AddEffectViewModel, string>(vm => vm.SearchText).Select(CreatePredicate);
IObservable<Func<LayerEffectDescriptor, bool>> layerEffectFilter = this.WhenAnyValue(vm => vm.SearchText).Select(CreatePredicate);
layerEffectSourceList.Connect()
.Filter(layerEffectFilter)

View File

@ -3,11 +3,11 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:dialogs="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties.Dialogs"
xmlns:attachedProperties="clr-namespace:Artemis.UI.Shared.AttachedProperties;assembly=Artemis.UI.Shared"
xmlns:dialogs1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Dialogs"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Dialogs.TimelineSegmentEditView"
x:DataType="dialogs1:TimelineSegmentEditViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.Dialogs.TimelineSegmentEditView"
x:DataType="dialogs:TimelineSegmentEditViewModel">
<StackPanel>
<controls:NumberBox Name="LengthNumberBox"
Minimum="0.1"

View File

@ -1,6 +1,7 @@
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Dialogs;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Dialogs;
public partial class TimelineSegmentEditView : ReactiveUserControl<TimelineSegmentEditViewModel>
{

View File

@ -1,7 +1,7 @@
using System;
using Artemis.UI.Shared;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Dialogs;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Dialogs;
public class TimelineSegmentEditViewModel : ContentDialogViewModelBase
{

View File

@ -3,13 +3,13 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="clr-namespace:Artemis.UI.Controls"
xmlns:local="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties"
xmlns:converters="clr-namespace:Artemis.UI.Converters"
xmlns:properties="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.Properties"
mc:Ignorable="d" d:DesignWidth="1200" d:DesignHeight="350"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.Properties.PropertiesView"
x:DataType="properties:PropertiesViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.PropertiesView"
x:DataType="local:PropertiesViewModel">
<UserControl.Styles>
<StyleInclude Source="/Screens/Profiles/ProfileEditor/Panels/Properties/Timeline/Segments/Segment.axaml" />
<StyleInclude Source="/Screens/ProfileEditor/Panels/Properties/Timeline/Segments/Segment.axaml" />
</UserControl.Styles>
<UserControl.Resources>
<converters:DoubleToGridLengthConverter x:Key="DoubleToGridLengthConverter" />
@ -30,7 +30,7 @@
<Grid RowDefinitions="*,Auto">
<ItemsControl ItemsSource="{CompiledBinding PropertyGroupViewModels}" Padding="0 0 8 0">
<ItemsControl.ItemTemplate>
<TreeDataTemplate DataType="{x:Type properties:PropertyGroupViewModel}" ItemsSource="{CompiledBinding Children}">
<TreeDataTemplate DataType="{x:Type local:PropertyGroupViewModel}" ItemsSource="{CompiledBinding Children}">
<ContentControl Content="{CompiledBinding TreeGroupViewModel}" />
</TreeDataTemplate>
</ItemsControl.ItemTemplate>

View File

@ -3,10 +3,11 @@ using System.Collections.Generic;
using System.Linq;
using Avalonia;
using Avalonia.Input;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
using Avalonia.VisualTree;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties;
namespace Artemis.UI.Screens.ProfileEditor.Properties;
public partial class PropertiesView : ReactiveUserControl<PropertiesViewModel>
{

View File

@ -11,17 +11,17 @@ using Artemis.Core.LayerBrushes;
using Artemis.Core.LayerEffects;
using Artemis.Core.Services;
using Artemis.UI.DryIoc.Factories;
using Artemis.UI.Screens.Profiles.ProfileEditor.Playback;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.DataBinding;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Dialogs;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.ProfileEditor.Playback;
using Artemis.UI.Screens.ProfileEditor.Properties.DataBinding;
using Artemis.UI.Screens.ProfileEditor.Properties.Dialogs;
using Artemis.UI.Screens.ProfileEditor.Properties.Timeline;
using Artemis.UI.Shared;
using Artemis.UI.Shared.Services;
using Artemis.UI.Shared.Services.ProfileEditor;
using PropertyChanged.SourceGenerator;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties;
namespace Artemis.UI.Screens.ProfileEditor.Properties;
public partial class PropertiesViewModel : ActivatableViewModelBase
{

View File

@ -7,15 +7,16 @@ using Artemis.Core;
using Artemis.Core.LayerBrushes;
using Artemis.Core.LayerEffects;
using Artemis.UI.DryIoc.Factories;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Keyframes;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Tree;
using Artemis.UI.Screens.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes;
using Artemis.UI.Screens.ProfileEditor.Properties.Tree;
using Artemis.UI.Shared;
using Artemis.UI.Shared.Services.PropertyInput;
using DynamicData;
using DynamicData.Binding;
using PropertyChanged.SourceGenerator;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties;
namespace Artemis.UI.Screens.ProfileEditor.Properties;
public partial class PropertyGroupViewModel : PropertyViewModelBase, IDisposable
{

View File

@ -2,12 +2,12 @@
using System.Collections.ObjectModel;
using Artemis.Core;
using Artemis.UI.DryIoc.Factories;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Tree;
using Artemis.UI.Screens.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.ProfileEditor.Properties.Tree;
using DynamicData;
using PropertyChanged.SourceGenerator;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties;
namespace Artemis.UI.Screens.ProfileEditor.Properties;
public partial class PropertyViewModel : PropertyViewModelBase, IDisposable
{

View File

@ -2,7 +2,7 @@
using Artemis.Core;
using Artemis.UI.Shared;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties;
namespace Artemis.UI.Screens.ProfileEditor.Properties;
public abstract class PropertyViewModelBase : ViewModelBase
{

View File

@ -1,10 +1,10 @@
using System;
using System.Collections.Generic;
using Artemis.Core;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Keyframes;
using Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline;
public interface ITimelinePropertyViewModel : IReactiveObject
{

View File

@ -3,7 +3,7 @@ using System.Reactive;
using Artemis.Core;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Keyframes;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes;
public interface ITimelineKeyframeViewModel
{

View File

@ -2,11 +2,11 @@
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:keyframes="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:keyframes1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Keyframes"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Keyframes.TimelineEasingView"
x:DataType="keyframes1:TimelineEasingViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes.TimelineEasingView"
x:DataType="keyframes:TimelineEasingViewModel">
<Grid ColumnDefinitions="25,30,*">
<avalonia:MaterialIcon Grid.Column="0" Kind="Check" IsVisible="{CompiledBinding IsEasingModeSelected}" HorizontalAlignment="Left"/>
<Polyline Grid.Column="1"

View File

@ -1,6 +1,7 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Keyframes;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes;
public partial class TimelineEasingView : UserControl
{

View File

@ -6,7 +6,7 @@ using Avalonia;
using Humanizer;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Keyframes;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes;
public class TimelineEasingViewModel : ViewModelBase
{

View File

@ -3,9 +3,9 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:keyframes1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Keyframes"
xmlns:keyframes="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Keyframes.TimelineKeyframeView"
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes.TimelineKeyframeView"
ClipToBounds="False">
<Ellipse Fill="{DynamicResource SystemAccentColorLight2}"
Stroke="White"
@ -35,7 +35,7 @@
<MenuFlyout Opening="FlyoutBase_OnOpening">
<MenuItem Header="Easing" ItemsSource="{Binding EasingViewModels}">
<MenuItem.Styles>
<Style Selector="MenuItem > MenuItem" x:DataType="keyframes1:TimelineEasingViewModel">
<Style Selector="MenuItem > MenuItem" x:DataType="keyframes:TimelineEasingViewModel">
<Setter Property="Command" Value="{CompiledBinding SelectEasingFunction}" />
<Setter Property="CommandParameter" Value="{CompiledBinding EasingFunction}" />
</Style>

View File

@ -1,9 +1,10 @@
using System;
using Avalonia.Input;
using Avalonia.LogicalTree;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Keyframes;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes;
public partial class TimelineKeyframeView : ReactiveUserControl<ITimelineKeyframeViewModel>
{

View File

@ -13,13 +13,14 @@ using Artemis.UI.Shared;
using Artemis.UI.Shared.Extensions;
using Artemis.UI.Shared.Services.ProfileEditor;
using Artemis.UI.Shared.Services.ProfileEditor.Commands;
using Avalonia;
using Avalonia.Input;
using DynamicData;
using DynamicData.Binding;
using PropertyChanged.SourceGenerator;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Keyframes;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes;
public partial class TimelineKeyframeViewModel<T> : ActivatableViewModelBase, ITimelineKeyframeViewModel
{
@ -48,7 +49,7 @@ public partial class TimelineKeyframeViewModel<T> : ActivatableViewModelBase, IT
profileEditorService.PixelsPerSecond.Subscribe(_ => Update()).DisposeWith(d);
this.WhenAnyValue(vm => vm.LayerPropertyKeyframe.Position).Subscribe(_ => Update()).DisposeWith(d);
});
this.WhenAnyValue<TimelineKeyframeViewModel<T>, bool>(vm => vm.IsFlyoutOpen).Subscribe(UpdateCanPaste);
this.WhenAnyValue(vm => vm.IsFlyoutOpen).Subscribe(UpdateCanPaste);
Duplicate = ReactiveCommand.Create(ExecuteDuplicate);
Copy = ReactiveCommand.CreateFromTask(ExecuteCopy);

View File

@ -3,12 +3,12 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:segments1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Segments"
xmlns:segments="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Segments"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="18"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Segments.EndSegmentView"
x:DataType="segments1:EndSegmentViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Segments.EndSegmentView"
x:DataType="segments:EndSegmentViewModel">
<UserControl.Styles>
<StyleInclude Source="/Screens/Profiles/ProfileEditor/Panels/Properties/Timeline/Segments/Segment.axaml" />
<StyleInclude Source="/Screens/ProfileEditor/Panels/Properties/Timeline/Segments/Segment.axaml" />
</UserControl.Styles>
<Border Classes="segment-container">
<Grid Name="SegmentGrid"

View File

@ -1,7 +1,8 @@
using Avalonia.Input;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Segments;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Segments;
public partial class EndSegmentView : ReactiveUserControl<EndSegmentViewModel>
{

View File

@ -7,7 +7,7 @@ using Artemis.UI.Shared.Services.ProfileEditor;
using Artemis.UI.Shared.Services.ProfileEditor.Commands;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Segments;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Segments;
public class EndSegmentViewModel : TimelineSegmentViewModel
{

View File

@ -3,12 +3,12 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:segments1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Segments"
xmlns:segments="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Segments"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="18"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Segments.MainSegmentView"
x:DataType="segments1:MainSegmentViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Segments.MainSegmentView"
x:DataType="segments:MainSegmentViewModel">
<UserControl.Styles>
<StyleInclude Source="/Screens/Profiles/ProfileEditor/Panels/Properties/Timeline/Segments/Segment.axaml" />
<StyleInclude Source="/Screens/ProfileEditor/Panels/Properties/Timeline/Segments/Segment.axaml" />
</UserControl.Styles>
<Border Classes="segment-container">
<Grid Name="SegmentGrid"

View File

@ -1,7 +1,8 @@
using Avalonia.Input;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Segments;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Segments;
public partial class MainSegmentView : ReactiveUserControl<MainSegmentViewModel>
{

View File

@ -7,7 +7,7 @@ using Artemis.UI.Shared.Services.ProfileEditor;
using Artemis.UI.Shared.Services.ProfileEditor.Commands;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Segments;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Segments;
public class MainSegmentViewModel : TimelineSegmentViewModel
{

View File

@ -3,12 +3,12 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:segments1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Segments"
xmlns:segments="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Segments"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="18"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Segments.StartSegmentView"
x:DataType="segments1:StartSegmentViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Segments.StartSegmentView"
x:DataType="segments:StartSegmentViewModel">
<UserControl.Styles>
<StyleInclude Source="/Screens/Profiles/ProfileEditor/Panels/Properties/Timeline/Segments/Segment.axaml" />
<StyleInclude Source="/Screens/ProfileEditor/Panels/Properties/Timeline/Segments/Segment.axaml" />
</UserControl.Styles>
<Border Classes="segment-container">
<Grid Name="SegmentGrid"

View File

@ -1,7 +1,8 @@
using Avalonia.Input;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Segments;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Segments;
public partial class StartSegmentView : ReactiveUserControl<StartSegmentViewModel>
{

View File

@ -7,7 +7,7 @@ using Artemis.UI.Shared.Services.ProfileEditor;
using Artemis.UI.Shared.Services.ProfileEditor.Commands;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Segments;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Segments;
public class StartSegmentViewModel : TimelineSegmentViewModel
{

View File

@ -6,7 +6,7 @@ using System.Reactive.Disposables;
using System.Reactive.Linq;
using System.Threading.Tasks;
using Artemis.Core;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Dialogs;
using Artemis.UI.Screens.ProfileEditor.Properties.Dialogs;
using Artemis.UI.Shared;
using Artemis.UI.Shared.Services;
using Artemis.UI.Shared.Services.Builders;
@ -15,7 +15,7 @@ using Artemis.UI.Shared.Services.ProfileEditor.Commands;
using PropertyChanged.SourceGenerator;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Segments;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Segments;
public abstract partial class TimelineSegmentViewModel : ActivatableViewModelBase
{
@ -38,7 +38,7 @@ public abstract partial class TimelineSegmentViewModel : ActivatableViewModelBas
EditTime = ReactiveCommand.CreateFromTask(ExecuteEditTime);
ViewForMixins.WhenActivated((IActivatableViewModel) this, (CompositeDisposable d) =>
this.WhenActivated(d =>
{
profileEditorService.ProfileElement.Subscribe(p => _profileElement = p).DisposeWith(d);
profileEditorService.PixelsPerSecond.Subscribe(p => _pixelsPerSecond = p).DisposeWith(d);

View File

@ -2,12 +2,12 @@
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:properties="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties"
xmlns:timeline="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties.Timeline"
xmlns:system="clr-namespace:System;assembly=netstandard"
xmlns:timeline1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline"
xmlns:properties1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.Properties"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.TimelineGroupView"
x:DataType="timeline1:TimelineGroupViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.Timeline.TimelineGroupView"
x:DataType="timeline:TimelineGroupViewModel">
<Grid RowDefinitions="28,1,Auto">
<ItemsControl Grid.Row="0"
Height="28"
@ -44,10 +44,10 @@
IsVisible="{CompiledBinding PropertyGroupViewModel.IsExpanded}"
HorizontalAlignment="Stretch">
<ItemsControl.DataTemplates>
<DataTemplate DataType="properties1:PropertyGroupViewModel">
<DataTemplate DataType="properties:PropertyGroupViewModel">
<ContentControl Content="{CompiledBinding TimelineGroupViewModel}" IsVisible="{CompiledBinding IsVisible}" />
</DataTemplate>
<DataTemplate DataType="properties1:PropertyViewModel">
<DataTemplate DataType="properties:PropertyViewModel">
<ContentControl Content="{CompiledBinding TimelinePropertyViewModel}" IsVisible="{CompiledBinding IsVisible}" />
</DataTemplate>
</ItemsControl.DataTemplates>

View File

@ -1,6 +1,7 @@
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline;
public partial class TimelineGroupView : ReactiveUserControl<TimelineGroupViewModel>
{

View File

@ -8,7 +8,7 @@ using DynamicData.Binding;
using PropertyChanged.SourceGenerator;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline;
public partial class TimelineGroupViewModel : ActivatableViewModelBase
{
@ -20,11 +20,11 @@ public partial class TimelineGroupViewModel : ActivatableViewModelBase
PropertyGroupViewModel = propertyGroupViewModel;
_keyframePositions = new ReadOnlyObservableCollection<double>(new ObservableCollection<double>());
ViewForMixins.WhenActivated((IActivatableViewModel) this, (CompositeDisposable d) =>
this.WhenActivated(d =>
{
profileEditorService.PixelsPerSecond.Subscribe(p => _pixelsPerSecond = p).DisposeWith(d);
PropertyGroupViewModel.WhenAnyValue<PropertyGroupViewModel, bool>(vm => vm.IsExpanded).Subscribe(_ => this.RaisePropertyChanged(nameof(Children))).DisposeWith(d);
PropertyGroupViewModel.WhenAnyValue(vm => vm.IsExpanded).Subscribe(_ => this.RaisePropertyChanged(nameof(Children))).DisposeWith(d);
PropertyGroupViewModel.Keyframes
.ToObservableChangeSet()
.AutoRefreshOnObservable(_ => profileEditorService.PixelsPerSecond)

View File

@ -3,7 +3,7 @@
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"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.TimelinePropertyView">
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.Timeline.TimelinePropertyView">
<Border Height="29" BorderThickness="0,0,0,1" BorderBrush="{DynamicResource ButtonBorderBrush}">
<ItemsControl ItemsSource="{Binding KeyframeViewModels}">
<ItemsControl.ItemsPanel>

View File

@ -1,6 +1,7 @@
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline;
public partial class TimelinePropertyView : ReactiveUserControl<ITimelinePropertyViewModel>
{

View File

@ -5,13 +5,13 @@ using System.Linq;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using Artemis.Core;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Keyframes;
using Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes;
using Artemis.UI.Shared;
using Artemis.UI.Shared.Services.ProfileEditor;
using DynamicData;
using ReactiveUI;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline;
public class TimelinePropertyViewModel<T> : ActivatableViewModelBase, ITimelinePropertyViewModel
{

View File

@ -2,12 +2,12 @@
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:local="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties"
xmlns:timeline="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties.Timeline"
xmlns:shared="clr-namespace:Artemis.UI.Shared;assembly=Artemis.UI.Shared"
xmlns:timeline1="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline"
xmlns:properties="clr-namespace:Artemis.UI.Screens.Profiles.ProfileEditor.Properties"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.TimelineView"
x:DataType="timeline1:TimelineViewModel">
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.Timeline.TimelineView"
x:DataType="timeline:TimelineViewModel">
<UserControl.Resources>
</UserControl.Resources>
<Grid Background="Transparent" PointerReleased="InputElement_OnPointerReleased" Focusable="True" MinWidth="{CompiledBinding MinWidth}">
@ -19,7 +19,7 @@
</Grid.KeyBindings>
<ItemsControl ItemsSource="{CompiledBinding PropertyGroupViewModels}">
<ItemsControl.ItemTemplate>
<TreeDataTemplate DataType="{x:Type properties:PropertyGroupViewModel}" ItemsSource="{CompiledBinding Children}">
<TreeDataTemplate DataType="{x:Type local:PropertyGroupViewModel}" ItemsSource="{CompiledBinding Children}">
<ContentControl Content="{CompiledBinding TimelineGroupViewModel}" />
</TreeDataTemplate>
</ItemsControl.ItemTemplate>

View File

@ -1,14 +1,15 @@
using System.Collections.Generic;
using System.Linq;
using Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline.Keyframes;
using Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes;
using Artemis.UI.Shared.Events;
using Artemis.UI.Shared.Extensions;
using Avalonia;
using Avalonia.Input;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
using Avalonia.VisualTree;
namespace Artemis.UI.Screens.Profiles.ProfileEditor.Properties.Timeline;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline;
public partial class TimelineView : ReactiveUserControl<TimelineViewModel>
{

Some files were not shown because too many files have changed in this diff Show More