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

Plugins - Allow config window to be mandatory

UI - Move profile editor into Profile screen, profile page no longer always has to show the editor
This commit is contained in:
Robert 2025-12-09 20:19:26 +01:00 committed by RobertBeekman
parent 565647f1ed
commit 3c8d8b2387
191 changed files with 449 additions and 416 deletions

View File

@ -11,4 +11,10 @@ public interface IPluginConfigurationDialog
/// The type of view model the tab contains
/// </summary>
Type Type { get; }
/// <summary>
/// A value indicating whether it's mandatory to configure this plugin.
/// <remarks>If set to <see langword="true"/>, the dialog will open the first time the plugin is enabled.</remarks>
/// </summary>
bool IsMandatory { get; }
}

View File

@ -1,6 +1,5 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ui="using:FluentAvalonia.UI.Controls"
xmlns:tagsInput="clr-namespace:Artemis.UI.Shared.TagsInput"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
x:CompileBindings="True">

View File

@ -6,6 +6,22 @@ namespace Artemis.UI.Shared;
/// <inheritdoc />
public class PluginConfigurationDialog<T> : PluginConfigurationDialog where T : PluginConfigurationViewModel
{
/// <summary>
/// Creates a new instance of the <see cref="PluginConfigurationDialog{T}"/> class.
/// </summary>
public PluginConfigurationDialog()
{
}
/// <summary>
/// Creates a new instance of the <see cref="PluginConfigurationDialog{T}"/> class with the specified <paramref name="isMandatory"/> flag.
/// </summary>
/// <param name="isMandatory">A value indicating whether the configuration dialog is mandatory.</param>
public PluginConfigurationDialog(bool isMandatory)
{
IsMandatory = isMandatory;
}
/// <inheritdoc />
public override Type Type => typeof(T);
}
@ -17,4 +33,7 @@ public abstract class PluginConfigurationDialog : IPluginConfigurationDialog
{
/// <inheritdoc />
public abstract Type Type { get; }
/// <inheritdoc />
public bool IsMandatory { get; protected set; }
}

View File

@ -1,6 +1,5 @@
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia">
<Design.PreviewWith>
<HyperlinkButton Grid.Column="0" Classes="icon-button icon-button-small broken-state-button" Margin="50">

View File

@ -1,7 +1,6 @@
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia">
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia">
<!-- Preview -->
<Design.PreviewWith>
<Border Padding="20">

View File

@ -2,7 +2,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dataModel="clr-namespace:Artemis.UI.Shared.DataModelVisualization.Shared"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:dataModelPicker="clr-namespace:Artemis.UI.Shared.DataModelPicker">
<Design.PreviewWith>
<dataModelPicker:DataModelPicker />

View File

@ -1,6 +1,5 @@
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:dataModelPicker="clr-namespace:Artemis.UI.Shared.DataModelPicker"
xmlns:gradientPicker="clr-namespace:Artemis.UI.Shared.Controls.GradientPicker">
<Design.PreviewWith>

View File

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

View File

@ -1,5 +1,4 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=events/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=screens_005Cdebugger_005Ctabs/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=screens_005Cdevice_005Ctabs/@EntryIndexedValue">True</s:Boolean>
@ -7,6 +6,8 @@
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=screens_005Cprofileeditor_005Cpanels/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=screens_005Cprofileeditor_005Cpanels_005Cproperties_005Ctimeline_005Ckeyframes/@EntryIndexedValue">False</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=screens_005Cprofileeditor_005Ctools/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=screens_005Cprofile_005Cprofileeditor_005Cpanels_005Cproperties_005Ctimeline_005Ckeyframes/@EntryIndexedValue">False</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=screens_005Cprofile_005Cprofileeditor_005Cpanels/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=screens_005Csettings_005Ctabs/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=screens_005Csidebar_005Ccontentdialogs/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=screens_005Csidebar_005Cdialogs/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

View File

@ -4,8 +4,6 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avaloniaEdit="https://github.com/avaloniaui/avaloniaedit"
xmlns:mdxaml="https://github.com/whistyun/Markdown.Avalonia.Tight"
xmlns:fa="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:input="clr-namespace:System.Windows.Input;assembly=System.ObjectModel"
xmlns:ui="clr-namespace:Artemis.UI"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Controls.SplitMarkdownEditor">

View File

@ -1,5 +1,6 @@
using System;
using System.Globalization;
using Artemis.UI.Screens.Profile.ProfileEditor.Properties.Tree;
using Artemis.UI.Screens.ProfileEditor.Properties.Tree;
using Avalonia;
using Avalonia.Data.Converters;

View File

@ -14,6 +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.Profile.ProfileEditor.Properties.Tree.Dialogs.LayerBrushPresetViewModel;
namespace Artemis.UI.DefaultTypes.PropertyInput;

View File

@ -11,12 +11,16 @@ 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.Profile.ProfileEditor.DisplayCondition.ConditionTypes;
using Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree;
using Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
using Artemis.UI.Screens.Profile.ProfileEditor.Properties.DataBinding;
using Artemis.UI.Screens.Profile.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.Profile.ProfileEditor.Properties.Tree;
using Artemis.UI.Screens.ProfileEditor;
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;
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.ProfileEditor.VisualEditor.Visualizers;
@ -29,6 +33,14 @@ using Artemis.UI.Screens.VisualScripting.Pins;
using Artemis.WebClient.Updating;
using DryIoc;
using ReactiveUI;
using LayerShapeVisualizerViewModel = Artemis.UI.Screens.Profile.ProfileEditor.VisualEditor.Visualizers.LayerShapeVisualizerViewModel;
using LayerVisualizerViewModel = Artemis.UI.Screens.Profile.ProfileEditor.VisualEditor.Visualizers.LayerVisualizerViewModel;
using ProfileEditorViewModel = Artemis.UI.Screens.Profile.ProfileEditor.ProfileEditorViewModel;
using PropertyGroupViewModel = Artemis.UI.Screens.Profile.ProfileEditor.Properties.PropertyGroupViewModel;
using PropertyViewModel = Artemis.UI.Screens.Profile.ProfileEditor.Properties.PropertyViewModel;
using SingleLedAdaptionHintViewModel = Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.SingleLedAdaptionHintViewModel;
using TimelineGroupViewModel = Artemis.UI.Screens.Profile.ProfileEditor.Properties.Timeline.TimelineGroupViewModel;
using TreeItemViewModel = Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.TreeItemViewModel;
namespace Artemis.UI.DryIoc.Factories;

View File

@ -2,10 +2,13 @@
using Artemis.Core;
using Artemis.UI.DryIoc.Factories;
using Artemis.UI.Exceptions;
using Artemis.UI.Screens.Profile.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.Profile.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.Profile.ProfileEditor.Properties.PropertyViewModel;
namespace Artemis.UI.DryIoc.InstanceProviders;

View File

@ -16,6 +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.Profile.ProfileEditor.ProfileEditorViewModel;
namespace Artemis.UI.Routing
{

View File

@ -2,8 +2,7 @@
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:debugger="clr-namespace:Artemis.UI.Screens.Debugger.Performance;assembly=Artemis.UI"
xmlns:debugger="clr-namespace:Artemis.UI.Screens.Debugger.Performance;assembly=Artemis.UI"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:DataType="debugger:PerformanceDebugViewModel"
x:Class="Artemis.UI.Screens.Debugger.Performance.PerformanceDebugView">

View File

@ -3,7 +3,6 @@
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:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:shared="clr-namespace:Artemis.UI.Shared;assembly=Artemis.UI.Shared"
xmlns:local="clr-namespace:Artemis.UI.Screens.Device"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"

View File

@ -4,7 +4,6 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:converters="clr-namespace:Artemis.UI.Shared.Converters;assembly=Artemis.UI.Shared"
xmlns:device="clr-namespace:Artemis.UI.Screens.Device"
xmlns:general="clr-namespace:Artemis.UI.Screens.Device.General"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="650"
x:Class="Artemis.UI.Screens.Device.General.DeviceGeneralTabView"

View File

@ -2,7 +2,6 @@
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:device="clr-namespace:Artemis.UI.Screens.Device"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:inputMappings="clr-namespace:Artemis.UI.Screens.Device.InputMappings"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"

View File

@ -2,7 +2,6 @@
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:services="clr-namespace:Artemis.WebClient.Workshop.Services;assembly=Artemis.WebClient.Workshop"
xmlns:layoutProviders="clr-namespace:Artemis.UI.Screens.Device.Layout.LayoutProviders"
xmlns:models="clr-namespace:Artemis.WebClient.Workshop.Models;assembly=Artemis.WebClient.Workshop"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"

View File

@ -2,7 +2,6 @@
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:device="clr-namespace:Artemis.UI.Screens.Device"
xmlns:converters="clr-namespace:Artemis.UI.Converters"
xmlns:shared="clr-namespace:Artemis.UI.Shared.Converters;assembly=Artemis.UI.Shared"
xmlns:leds="clr-namespace:Artemis.UI.Screens.Device.Leds"

View File

@ -3,8 +3,6 @@
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:shared="clr-namespace:Artemis.UI.Shared;assembly=Artemis.UI.Shared"
xmlns:plugins="clr-namespace:Artemis.UI.Screens.Plugins"
xmlns:features="clr-namespace:Artemis.UI.Screens.Plugins.Features"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Plugins.Features.PluginFeatureView"

View File

@ -4,7 +4,6 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:windowing="clr-namespace:FluentAvalonia.UI.Windowing;assembly=FluentAvalonia"
xmlns:plugins="clr-namespace:Artemis.UI.Screens.Plugins"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:shared="clr-namespace:Artemis.UI.Shared;assembly=Artemis.UI.Shared"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"

View File

@ -4,7 +4,6 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:plugins="clr-namespace:Artemis.UI.Screens.Plugins"
xmlns:shared="clr-namespace:Artemis.UI.Shared;assembly=Artemis.UI.Shared"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
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.Plugins.PluginView"

View File

@ -2,7 +2,6 @@
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:plugins="clr-namespace:Artemis.UI.Screens.Plugins"
xmlns:prerequisites="clr-namespace:Artemis.UI.Screens.Plugins.Prerequisites"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Plugins.Prerequisites.PluginPrerequisiteActionView"

View File

@ -2,7 +2,6 @@
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:plugins="clr-namespace:Artemis.UI.Screens.Plugins"
xmlns:prerequisites="clr-namespace:Artemis.UI.Screens.Plugins.Prerequisites"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Plugins.Prerequisites.PluginPrerequisiteView"

View File

@ -1,7 +1,7 @@
using System;
using Artemis.UI.Shared;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.DisplayCondition.ConditionTypes.AlwaysOnConditionView">
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.DisplayCondition.ConditionTypes.AlwaysOnConditionView">
<DockPanel VerticalAlignment="Top" Margin="0 5">
<avalonia:MaterialIcon Kind="InfoCircle" Margin="5 0" />

View File

@ -1,7 +1,6 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.Profile.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.Profile.ProfileEditor.DisplayCondition.ConditionTypes"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes.EventConditionView"
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.DisplayCondition.ConditionTypes.EventConditionView"
x:DataType="conditionTypes:EventConditionViewModel">
<DockPanel HorizontalAlignment="Stretch">
<DockPanel.Styles>

View File

@ -1,7 +1,6 @@
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.DisplayCondition.ConditionTypes.PlayOnceConditionView">
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.DisplayCondition.ConditionTypes.PlayOnceConditionView">
<DockPanel VerticalAlignment="Top" Margin="0 5">
<avalonia:MaterialIcon Kind="InfoCircle" Margin="5 0" />
<TextBlock Foreground="{DynamicResource TextFillColorSecondaryBrush}"

View File

@ -1,7 +1,6 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.Profile.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.Profile.ProfileEditor.DisplayCondition.ConditionTypes"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes.StaticConditionView"
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.DisplayCondition.ConditionTypes.StaticConditionView"
x:DataType="conditionTypes:StaticConditionViewModel">
<DockPanel HorizontalAlignment="Stretch">
<DockPanel.Styles>

View File

@ -1,7 +1,6 @@
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.DisplayCondition.ConditionTypes;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.DisplayCondition"
xmlns:displayCondition="clr-namespace:Artemis.UI.Screens.Profile.ProfileEditor.DisplayCondition"
mc:Ignorable="d" d:DesignWidth="200" d:DesignHeight="650"
x:Class="Artemis.UI.Screens.ProfileEditor.DisplayCondition.DisplayConditionScriptView"
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.DisplayCondition.DisplayConditionScriptView"
x:DataType="displayCondition:DisplayConditionScriptViewModel">
<UserControl.Styles>
<Style Selector="ComboBox.condition-type /template/ ContentPresenter#ContentPresenter">

View File

@ -1,7 +1,6 @@
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.ProfileEditor.DisplayCondition;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.DisplayCondition;
namespace Artemis.UI.Screens.Profile.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.Profile.ProfileEditor.MenuBar"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.MenuBar.MenuBarView"
x:DataType="menuBar:MenuBarViewModel">
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.MenuBar.MenuBarView"
x:DataType="menuBar1:MenuBarViewModel">
<Menu VerticalAlignment="Top" Closed="MenuBase_OnMenuClosed">
<MenuItem Header="_File">
<MenuItem Header="New">

View File

@ -1,10 +1,9 @@
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
using Avalonia.VisualTree;
namespace Artemis.UI.Screens.ProfileEditor.MenuBar;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.MenuBar;
namespace Artemis.UI.Screens.Profile.ProfileEditor.MenuBar;
public partial class MenuBarViewModel : ActivatableViewModelBase
{
@ -42,7 +42,7 @@ public partial class MenuBarViewModel : ActivatableViewModelBase
_profileService = profileService;
_settingsService = settingsService;
_windowService = windowService;
this.WhenActivated(d =>
ViewForMixins.WhenActivated((IActivatableViewModel) this, (CompositeDisposable d) =>
{
profileEditorService.History.Subscribe(history => History = history).DisposeWith(d);
_profileConfiguration = profileEditorService.ProfileConfiguration.ToProperty(this, vm => vm.ProfileConfiguration).DisposeWith(d);

View File

@ -3,10 +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:playback="clr-namespace:Artemis.UI.Screens.ProfileEditor.Playback"
xmlns:playback1="clr-namespace:Artemis.UI.Screens.Profile.ProfileEditor.Playback"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="48"
x:Class="Artemis.UI.Screens.ProfileEditor.Playback.PlaybackView"
x:DataType="playback:PlaybackViewModel">
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.Playback.PlaybackView"
x:DataType="playback1:PlaybackViewModel">
<Grid Margin="8 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>

View File

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

View File

@ -11,7 +11,7 @@ using Avalonia.Threading;
using PropertyChanged.SourceGenerator;
using ReactiveUI;
namespace Artemis.UI.Screens.ProfileEditor.Playback;
namespace Artemis.UI.Screens.Profile.ProfileEditor.Playback;
public partial class PlaybackViewModel : ActivatableViewModelBase
{
@ -154,7 +154,7 @@ public partial class PlaybackViewModel : ActivatableViewModelBase
{
RepeatTimeline = false;
RepeatSegment = true;
this.RaisePropertyChanged(nameof(Repeating));
this.RaisePropertyChanged(nameof(Screens.ProfileEditor.Playback.PlaybackViewModel.Repeating));
}
else if (RepeatSegment)
{

View File

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

View File

@ -1,13 +1,10 @@
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.ProfileEditor.ProfileTree.ContentDialogs;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.ProfileTree.ContentDialogs;
namespace Artemis.UI.Screens.Profile.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(vm => vm.ProfileElementName, name => !string.IsNullOrWhiteSpace(name), "You must specify a valid name");
this.ValidationRule<ProfileElementRenameViewModel, string>(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.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.Profile.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.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.CategoryAdaptionHintView"
x:DataType="adaptionHints:CategoryAdaptionHintViewModel">
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.CategoryAdaptionHintView"
x:DataType="adaptionHints1: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,7 +1,6 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public partial class CategoryAdaptionHintView : UserControl
{

View File

@ -1,6 +1,6 @@
using Artemis.Core;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.Profile.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.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.DeviceAdaptionHintView"
x:DataType="adaptionHints:DeviceAdaptionHintViewModel">
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.DeviceAdaptionHintView"
x:DataType="adaptionHints1: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,7 +1,6 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public partial class DeviceAdaptionHintView : UserControl
{

View File

@ -1,6 +1,6 @@
using Artemis.Core;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.Profile.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:adaptionHints="clr-namespace:Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints"
xmlns:adaptionHints1="clr-namespace:Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.KeyboardSectionAdaptionHintView"
x:DataType="adaptionHints:KeyboardSectionAdaptionHintViewModel">
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.KeyboardSectionAdaptionHintView"
x:DataType="adaptionHints1: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,7 +1,6 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public partial class KeyboardSectionAdaptionHintView : UserControl
{

View File

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

View File

@ -2,13 +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: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.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.SingleLedAdaptionHintView"
x:DataType="adaptionHints:SingleLedAdaptionHintViewModel">
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints.SingleLedAdaptionHintView"
x:DataType="adaptionHints1: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,7 +1,6 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
namespace Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public partial class SingleLedAdaptionHintViewModel : AdaptionHintViewModelBase
{
@ -18,11 +18,11 @@ public partial class SingleLedAdaptionHintViewModel : AdaptionHintViewModelBase
{
SingleLedAdaptionHint = adaptionHint;
this.WhenAnyValue(vm => vm.SelectedLed).WhereNotNull().Subscribe(l => SingleLedAdaptionHint.LedId = l.Value);
this.WhenAnyValue<SingleLedAdaptionHintViewModel, AdaptionLed>(vm => vm.SelectedLed).WhereNotNull().Subscribe(l => SingleLedAdaptionHint.LedId = l.Value);
Task.Run(() =>
{
AdaptionLeds = Enum.GetValues<LedId>().Select(l => new AdaptionLed(l)).ToList();
SelectedLed = AdaptionLeds.FirstOrDefault(l => l.Value == adaptionHint.LedId);
SelectedLed = Enumerable.FirstOrDefault<AdaptionLed>(AdaptionLeds, l => l.Value == adaptionHint.LedId);
});
}

View File

@ -2,13 +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: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.Profile.ProfileEditor.ProfileTree.Dialogs"
mc:Ignorable="d"
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.LayerHintsDialogView"
x:DataType="dialogs:LayerHintsDialogViewModel"
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Dialogs.LayerHintsDialogView"
x:DataType="dialogs1:LayerHintsDialogViewModel"
WindowStartupLocation="CenterOwner"
Icon="/Assets/Images/Logo/application.ico"
Title="Artemis | Adaption hints"

View File

@ -1,8 +1,6 @@
using Artemis.UI.Shared;
using Avalonia;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
using Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
using Artemis.UI.Shared;
using DynamicData;
using ReactiveUI;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs;
namespace Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Dialogs;
public class LayerHintsDialogViewModel : DialogViewModelBase<bool>
{

View File

@ -3,11 +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:profileTree="clr-namespace:Artemis.UI.Screens.ProfileEditor.ProfileTree"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:profileTree1="clr-namespace:Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.FolderTreeItemView"
x:DataType="profileTree:FolderTreeItemViewModel">
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.FolderTreeItemView"
x:DataType="profileTree1: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.ProfileEditor.ProfileTree;
namespace Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree;
public partial class FolderTreeItemView : ReactiveUserControl<FolderTreeItemViewModel>
{

View File

@ -1,9 +1,7 @@
using System;
using System.Linq;
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;
@ -11,7 +9,7 @@ using Artemis.UI.Shared.Services;
using Artemis.UI.Shared.Services.ProfileEditor;
using Artemis.UI.Shared.Services.ProfileEditor.Commands;
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree;
namespace Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree;
public class FolderTreeItemViewModel : TreeItemViewModel
{

View File

@ -3,11 +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:profileTree="clr-namespace:Artemis.UI.Screens.ProfileEditor.ProfileTree"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:profileTree1="clr-namespace:Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.LayerTreeItemView"
x:DataType="profileTree:LayerTreeItemViewModel">
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.LayerTreeItemView"
x:DataType="profileTree1: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.ProfileEditor.ProfileTree;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.ProfileTree;
namespace Artemis.UI.Screens.Profile.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.Profile.ProfileEditor.ProfileTree"
xmlns:behaviors1="clr-namespace:Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.Behaviors"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.ProfileTreeView"
x:DataType="profileTree:ProfileTreeViewModel">
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.ProfileTreeView"
x:DataType="profileTree1: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>
<profileBehaviors:ProfileTreeViewDropHandler x:Key="ProfileTreeViewDropHandler" />
<behaviors1: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="profileTree:TreeItemViewModel" Background="Transparent">
<ContentControl Content="{CompiledBinding}" x:DataType="profileTree1: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.ProfileEditor.ProfileTree;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.ProfileTree;
namespace Artemis.UI.Screens.Profile.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(() => { 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));
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));
this.WhenAnyValue(vm => vm.SelectedChild).Subscribe(model =>
this.WhenAnyValue<ProfileTreeViewModel, TreeItemViewModel>(vm => vm.SelectedChild).Subscribe(model =>
{
if (model?.ProfileElement is RenderProfileElement renderProfileElement)
profileEditorService.ChangeCurrentProfileElement(renderProfileElement);

View File

@ -5,25 +5,23 @@ 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.ProfileEditor.ProfileTree.ContentDialogs;
using Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs;
using Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree.ContentDialogs;
using Artemis.UI.Screens.Profile.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.ProfileEditor.ProfileTree;
namespace Artemis.UI.Screens.Profile.ProfileEditor.ProfileTree;
public abstract partial class TreeItemViewModel : ActivatableViewModelBase
{
@ -57,13 +55,13 @@ public abstract partial class TreeItemViewModel : ActivatableViewModelBase
AddLayer = ReactiveCommand.Create(ExecuteAddLayer);
AddFolder = ReactiveCommand.Create(ExecuteAddFolder);
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));
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));
Rename = ReactiveCommand.CreateFromTask(ExecuteRename);
Delete = ReactiveCommand.Create(ExecuteDelete);
Duplicate = ReactiveCommand.CreateFromTask(ExecuteDuplicate);
Copy = ReactiveCommand.CreateFromTask(ExecuteCopy);
Paste = ReactiveCommand.CreateFromTask(ExecutePaste, this.WhenAnyValue(vm => vm.CanPaste));
Paste = ReactiveCommand.CreateFromTask(ExecutePaste, this.WhenAnyValue<TreeItemViewModel, bool>(vm => vm.CanPaste));
AbsorbCommand = ReactiveCommand.Create(() => true);
this.WhenActivated(d =>
@ -80,7 +78,7 @@ public abstract partial class TreeItemViewModel : ActivatableViewModelBase
CreateTreeItems();
});
this.WhenAnyValue(vm => vm.IsFlyoutOpen).ObserveOn(AvaloniaScheduler.Instance).Subscribe(UpdateCanPaste);
this.WhenAnyValue<TreeItemViewModel, bool>(vm => vm.IsFlyoutOpen).ObserveOn(AvaloniaScheduler.Instance).Subscribe(UpdateCanPaste);
}
public ReactiveCommand<Unit, bool> AbsorbCommand { get; }

View File

@ -3,10 +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:dataBinding="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties.DataBinding"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:dataBinding="clr-namespace:Artemis.UI.Screens.Profile.ProfileEditor.Properties.DataBinding"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.DataBinding.DataBindingView"
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.Properties.DataBinding.DataBindingView"
x:DataType="dataBinding:DataBindingViewModel">
<Grid RowDefinitions="48,*">
<Grid Grid.Row="0" ColumnDefinitions="Auto,Auto,*" Background="{DynamicResource ControlFillColorDefaultBrush}">

View File

@ -1,7 +1,6 @@
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.ProfileEditor.Properties.DataBinding;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.Properties.DataBinding;
namespace Artemis.UI.Screens.Profile.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.Profile.ProfileEditor.Properties.Dialogs"
mc:Ignorable="d" d:DesignWidth="500" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.Dialogs.AddEffectView"
x:DataType="dialogs:AddEffectViewModel"
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.Properties.Dialogs.AddEffectView"
x:DataType="dialogs1:AddEffectViewModel"
Width="500">
<Grid RowDefinitions="Auto,*">
<TextBox Name="SearchBox" Text="{CompiledBinding SearchText}" Margin="0 0 0 15" Watermark="Search" />

View File

@ -1,10 +1,9 @@
using Artemis.Core.LayerEffects;
using Avalonia;
using Avalonia.Input;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Dialogs;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.Properties.Dialogs;
namespace Artemis.UI.Screens.Profile.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(vm => vm.SearchText).Select(CreatePredicate);
IObservable<Func<LayerEffectDescriptor, bool>> layerEffectFilter = this.WhenAnyValue<AddEffectViewModel, string>(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.Profile.ProfileEditor.Properties.Dialogs"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.Dialogs.TimelineSegmentEditView"
x:DataType="dialogs:TimelineSegmentEditViewModel">
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.Properties.Dialogs.TimelineSegmentEditView"
x:DataType="dialogs1:TimelineSegmentEditViewModel">
<StackPanel>
<controls:NumberBox Name="LengthNumberBox"
Minimum="0.1"

View File

@ -1,7 +1,6 @@
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Dialogs;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.Properties.Dialogs;
namespace Artemis.UI.Screens.Profile.ProfileEditor.Properties.Dialogs;
public class TimelineSegmentEditViewModel : ContentDialogViewModelBase
{

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: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.Profile.ProfileEditor.Properties"
mc:Ignorable="d" d:DesignWidth="1200" d:DesignHeight="350"
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.PropertiesView"
x:DataType="local:PropertiesViewModel">
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.Properties.PropertiesView"
x:DataType="properties:PropertiesViewModel">
<UserControl.Styles>
<StyleInclude Source="/Screens/ProfileEditor/Panels/Properties/Timeline/Segments/Segment.axaml" />
</UserControl.Styles>
@ -30,7 +30,7 @@
<Grid RowDefinitions="*,Auto">
<ItemsControl ItemsSource="{CompiledBinding PropertyGroupViewModels}" Padding="0 0 8 0">
<ItemsControl.ItemTemplate>
<TreeDataTemplate DataType="{x:Type local:PropertyGroupViewModel}" ItemsSource="{CompiledBinding Children}">
<TreeDataTemplate DataType="{x:Type properties:PropertyGroupViewModel}" ItemsSource="{CompiledBinding Children}">
<ContentControl Content="{CompiledBinding TreeGroupViewModel}" />
</TreeDataTemplate>
</ItemsControl.ItemTemplate>

View File

@ -3,11 +3,10 @@ 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.ProfileEditor.Properties;
namespace Artemis.UI.Screens.Profile.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.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.Screens.Profile.ProfileEditor.Playback;
using Artemis.UI.Screens.Profile.ProfileEditor.Properties.DataBinding;
using Artemis.UI.Screens.Profile.ProfileEditor.Properties.Dialogs;
using Artemis.UI.Screens.Profile.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.ProfileEditor.Properties;
namespace Artemis.UI.Screens.Profile.ProfileEditor.Properties;
public partial class PropertiesViewModel : ActivatableViewModelBase
{

View File

@ -7,16 +7,15 @@ using Artemis.Core;
using Artemis.Core.LayerBrushes;
using Artemis.Core.LayerEffects;
using Artemis.UI.DryIoc.Factories;
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.Screens.Profile.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.Profile.ProfileEditor.Properties.Timeline.Keyframes;
using Artemis.UI.Screens.Profile.ProfileEditor.Properties.Tree;
using Artemis.UI.Shared.Services.PropertyInput;
using DynamicData;
using DynamicData.Binding;
using PropertyChanged.SourceGenerator;
namespace Artemis.UI.Screens.ProfileEditor.Properties;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.ProfileEditor.Properties.Tree;
using Artemis.UI.Screens.Profile.ProfileEditor.Properties.Timeline;
using Artemis.UI.Screens.Profile.ProfileEditor.Properties.Tree;
using DynamicData;
using PropertyChanged.SourceGenerator;
namespace Artemis.UI.Screens.ProfileEditor.Properties;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.Properties;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.Properties.Timeline.Keyframes;
using Artemis.UI.Screens.Profile.ProfileEditor.Properties.Timeline.Keyframes;
using ReactiveUI;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.Properties.Timeline.Keyframes;
namespace Artemis.UI.Screens.Profile.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.Profile.ProfileEditor.Properties.Timeline.Keyframes"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes.TimelineEasingView"
x:DataType="keyframes:TimelineEasingViewModel">
x:Class="Artemis.UI.Screens.Profile.ProfileEditor.Properties.Timeline.Keyframes.TimelineEasingView"
x:DataType="keyframes1:TimelineEasingViewModel">
<Grid ColumnDefinitions="25,30,*">
<avalonia:MaterialIcon Grid.Column="0" Kind="Check" IsVisible="{CompiledBinding IsEasingModeSelected}" HorizontalAlignment="Left"/>
<Polyline Grid.Column="1"

View File

@ -1,7 +1,6 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes;
namespace Artemis.UI.Screens.Profile.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.ProfileEditor.Properties.Timeline.Keyframes;
namespace Artemis.UI.Screens.Profile.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:keyframes="clr-namespace:Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes"
xmlns:keyframes1="clr-namespace:Artemis.UI.Screens.Profile.ProfileEditor.Properties.Timeline.Keyframes"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.ProfileEditor.Properties.Timeline.Keyframes.TimelineKeyframeView"
x:Class="Artemis.UI.Screens.Profile.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="keyframes:TimelineEasingViewModel">
<Style Selector="MenuItem > MenuItem" x:DataType="keyframes1:TimelineEasingViewModel">
<Setter Property="Command" Value="{CompiledBinding SelectEasingFunction}" />
<Setter Property="CommandParameter" Value="{CompiledBinding EasingFunction}" />
</Style>

View File

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

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