From 5a681a0480be9a3bd96a71f1e0d23e1da4118458 Mon Sep 17 00:00:00 2001 From: Robert Date: Sat, 24 Jan 2026 13:30:03 +0100 Subject: [PATCH] Design --- .../ConfigurationSection.cs | 9 ----- .../ProfileConfiguration.cs | 9 ++--- src/Artemis.UI/Artemis.UI.csproj | 11 ------ .../ConfigurationBooleanItemView.axaml.cs | 14 -------- .../ConfigurationBooleanItemViewModel.cs | 14 -------- ...onfigurationColorGradientItemView.axaml.cs | 14 -------- ...ConfigurationColorGradientItemViewModel.cs | 14 -------- .../ConfigurationNumericItemView.axaml.cs | 14 -------- .../ConfigurationNumericItemViewModel.cs | 14 -------- .../ConfigurationSKColorItemView.axaml.cs | 14 -------- .../ConfigurationSKColorItemViewModel.cs | 14 -------- .../Section/ConfigurationSectionView.axaml.cs | 5 +-- .../Section/ConfigurationSectionViewModel.cs | 1 + .../ConfigurationStringItemView.axaml.cs | 14 -------- .../ConfigurationStringItemViewModel.cs | 14 -------- .../ConfigurationTextItemView.axaml.cs | 14 -------- .../Section/ConfigurationTextItemViewModel.cs | 14 -------- .../ProfileEditor/ConfigureProfileView.axaml | 35 ++++++------------- .../ConfigureProfileViewModel.cs | 23 +++--------- .../ConfigurationBooleanItemDesignView.axaml} | 6 ++-- ...onfigurationBooleanItemDesignView.axaml.cs | 12 +++++++ ...ConfigurationBooleanItemDesignViewModel.cs | 14 ++++++++ ...gurationColorGradientItemDesignView.axaml} | 6 ++-- ...rationColorGradientItemDesignView.axaml.cs | 12 +++++++ ...urationColorGradientItemDesignViewModel.cs | 14 ++++++++ .../ConfigurationNumericItemDesignView.axaml} | 6 ++-- ...onfigurationNumericItemDesignView.axaml.cs | 12 +++++++ ...ConfigurationNumericItemDesignViewModel.cs | 14 ++++++++ .../ConfigurationSKColorItemDesignView.axaml} | 7 ++-- ...onfigurationSKColorItemDesignView.axaml.cs | 12 +++++++ ...ConfigurationSKColorItemDesignViewModel.cs | 14 ++++++++ .../ConfigurationStringItemDesignView.axaml} | 6 ++-- ...ConfigurationStringItemDesignView.axaml.cs | 12 +++++++ .../ConfigurationStringItemDesignViewModel.cs | 14 ++++++++ ...nfigurationTextItemDesignDesignView.axaml} | 8 ++--- ...igurationTextItemDesignDesignView.axaml.cs | 12 +++++++ .../ConfigurationTextItemDesignViewModel.cs | 14 ++++++++ .../ConfigurationSectionDesignView.axaml | 34 ++++++++++++++++++ .../ConfigurationSectionDesignView.axaml.cs | 12 +++++++ .../ConfigurationSectionDesignViewModel.cs | 33 +++++++++++++++++ 40 files changed, 273 insertions(+), 262 deletions(-) delete mode 100644 src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationBooleanItemView.axaml.cs delete mode 100644 src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationBooleanItemViewModel.cs delete mode 100644 src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationColorGradientItemView.axaml.cs delete mode 100644 src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationColorGradientItemViewModel.cs delete mode 100644 src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationNumericItemView.axaml.cs delete mode 100644 src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationNumericItemViewModel.cs delete mode 100644 src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSKColorItemView.axaml.cs delete mode 100644 src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSKColorItemViewModel.cs delete mode 100644 src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationStringItemView.axaml.cs delete mode 100644 src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationStringItemViewModel.cs delete mode 100644 src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationTextItemView.axaml.cs delete mode 100644 src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationTextItemViewModel.cs rename src/Artemis.UI/Screens/ProfileEditor/{ConfigurationPanels/Section/ConfigurationBooleanItemView.axaml => DesignPanels/Items/ConfigurationBooleanItemDesignView.axaml} (82%) create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationBooleanItemDesignView.axaml.cs create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationBooleanItemDesignViewModel.cs rename src/Artemis.UI/Screens/ProfileEditor/{ConfigurationPanels/Section/ConfigurationColorGradientItemView.axaml => DesignPanels/Items/ConfigurationColorGradientItemDesignView.axaml} (81%) create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationColorGradientItemDesignView.axaml.cs create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationColorGradientItemDesignViewModel.cs rename src/Artemis.UI/Screens/ProfileEditor/{ConfigurationPanels/Section/ConfigurationNumericItemView.axaml => DesignPanels/Items/ConfigurationNumericItemDesignView.axaml} (86%) create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationNumericItemDesignView.axaml.cs create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationNumericItemDesignViewModel.cs rename src/Artemis.UI/Screens/ProfileEditor/{ConfigurationPanels/Section/ConfigurationSKColorItemView.axaml => DesignPanels/Items/ConfigurationSKColorItemDesignView.axaml} (77%) create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationSKColorItemDesignView.axaml.cs create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationSKColorItemDesignViewModel.cs rename src/Artemis.UI/Screens/ProfileEditor/{ConfigurationPanels/Section/ConfigurationStringItemView.axaml => DesignPanels/Items/ConfigurationStringItemDesignView.axaml} (79%) create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationStringItemDesignView.axaml.cs create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationStringItemDesignViewModel.cs rename src/Artemis.UI/Screens/ProfileEditor/{ConfigurationPanels/Section/ConfigurationTextItemView.axaml => DesignPanels/Items/ConfigurationTextItemDesignDesignView.axaml} (51%) create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationTextItemDesignDesignView.axaml.cs create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationTextItemDesignViewModel.cs create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Section/ConfigurationSectionDesignView.axaml create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Section/ConfigurationSectionDesignView.axaml.cs create mode 100644 src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Section/ConfigurationSectionDesignViewModel.cs diff --git a/src/Artemis.Core/Models/ProfileConfiguration/ConfigurationSection.cs b/src/Artemis.Core/Models/ProfileConfiguration/ConfigurationSection.cs index aa7cd072c..5ca1cc8e0 100644 --- a/src/Artemis.Core/Models/ProfileConfiguration/ConfigurationSection.cs +++ b/src/Artemis.Core/Models/ProfileConfiguration/ConfigurationSection.cs @@ -16,15 +16,6 @@ public class ConfigurationSection : CorePropertyChanged set => SetAndNotify(ref field, value); } - /// - /// Gets or sets the slot number of the configuration section. - /// - public int Slot - { - get; - set => SetAndNotify(ref field, value); - } - /// /// Gets the collection of configuration items in this section. /// diff --git a/src/Artemis.Core/Models/ProfileConfiguration/ProfileConfiguration.cs b/src/Artemis.Core/Models/ProfileConfiguration/ProfileConfiguration.cs index 269eee893..405cae012 100644 --- a/src/Artemis.Core/Models/ProfileConfiguration/ProfileConfiguration.cs +++ b/src/Artemis.Core/Models/ProfileConfiguration/ProfileConfiguration.cs @@ -307,18 +307,15 @@ public class ProfileConfiguration : BreakableModel, IStorageModel, IDisposable, ConfigurationSections.Clear(); ConfigurationSections.Add(new ConfigurationSection() { - Name = "General (slot 0)", - Slot = 2, + Name = "General", }); ConfigurationSections.Add(new ConfigurationSection() { - Name = "Other (slot 1)", - Slot = 2 + Name = "Other", }); ConfigurationSections.Add(new ConfigurationSection() { - Name = "Something else (slot 2)", - Slot = 2 + Name = "Something else", }); ConfigurationSections[0].Items.Add(new ConfigurationTextItem() {Text = "This is a placeholder text item in the General section."}); ConfigurationSections[0].Items.Add(new ConfigurationNumericItem() {Name = "Numeric item", Description = "This one also has a description"}); diff --git a/src/Artemis.UI/Artemis.UI.csproj b/src/Artemis.UI/Artemis.UI.csproj index e310d146d..b750e0ae3 100644 --- a/src/Artemis.UI/Artemis.UI.csproj +++ b/src/Artemis.UI/Artemis.UI.csproj @@ -35,15 +35,4 @@ - - - - - - - - DesignProfileView.axaml - Code - - \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationBooleanItemView.axaml.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationBooleanItemView.axaml.cs deleted file mode 100644 index 1be1f6c11..000000000 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationBooleanItemView.axaml.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; -using ReactiveUI.Avalonia; - -namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; - -public partial class ConfigurationBooleanItemView : ReactiveUserControl -{ - public ConfigurationBooleanItemView() - { - InitializeComponent(); - } -} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationBooleanItemViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationBooleanItemViewModel.cs deleted file mode 100644 index 92d0ba886..000000000 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationBooleanItemViewModel.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Artemis.Core; -using Artemis.UI.Shared; - -namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; - -public class ConfigurationBooleanItemViewModel : ActivatableViewModelBase -{ - public ConfigurationBooleanItem Item { get; } - - public ConfigurationBooleanItemViewModel(ConfigurationBooleanItem item) - { - Item = item; - } -} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationColorGradientItemView.axaml.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationColorGradientItemView.axaml.cs deleted file mode 100644 index 027f205e1..000000000 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationColorGradientItemView.axaml.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; -using ReactiveUI.Avalonia; - -namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; - -public partial class ConfigurationColorGradientItemView : ReactiveUserControl -{ - public ConfigurationColorGradientItemView() - { - InitializeComponent(); - } -} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationColorGradientItemViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationColorGradientItemViewModel.cs deleted file mode 100644 index ee447c530..000000000 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationColorGradientItemViewModel.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Artemis.Core; -using Artemis.UI.Shared; - -namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; - -public class ConfigurationColorGradientItemViewModel : ActivatableViewModelBase -{ - public ConfigurationColorGradientItemViewModel(ConfigurationColorGradientItem item) - { - Item = item; - } - - public ConfigurationColorGradientItem Item { get; } -} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationNumericItemView.axaml.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationNumericItemView.axaml.cs deleted file mode 100644 index bafba6c2f..000000000 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationNumericItemView.axaml.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; -using ReactiveUI.Avalonia; - -namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; - -public partial class ConfigurationNumericItemView : ReactiveUserControl -{ - public ConfigurationNumericItemView() - { - InitializeComponent(); - } -} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationNumericItemViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationNumericItemViewModel.cs deleted file mode 100644 index 626b17156..000000000 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationNumericItemViewModel.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Artemis.Core; -using Artemis.UI.Shared; - -namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; - -public class ConfigurationNumericItemViewModel : ActivatableViewModelBase -{ - public ConfigurationNumericItem Item { get; } - - public ConfigurationNumericItemViewModel(ConfigurationNumericItem item) - { - Item = item; - } -} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSKColorItemView.axaml.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSKColorItemView.axaml.cs deleted file mode 100644 index b1ee507d4..000000000 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSKColorItemView.axaml.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; -using ReactiveUI.Avalonia; - -namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; - -public partial class ConfigurationSKColorItemView : ReactiveUserControl -{ - public ConfigurationSKColorItemView() - { - InitializeComponent(); - } -} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSKColorItemViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSKColorItemViewModel.cs deleted file mode 100644 index c3f1327ee..000000000 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSKColorItemViewModel.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Artemis.Core; -using Artemis.UI.Shared; - -namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; - -public class ConfigurationSKColorItemViewModel : ActivatableViewModelBase -{ - public ConfigurationSKColorItemViewModel(ConfigurationSKColorItem item) - { - Item = item; - } - - public ConfigurationSKColorItem Item { get; } -} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSectionView.axaml.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSectionView.axaml.cs index a7ba7cf2b..f3dacb64e 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSectionView.axaml.cs +++ b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSectionView.axaml.cs @@ -1,7 +1,4 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; -using ReactiveUI.Avalonia; +using ReactiveUI.Avalonia; namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSectionViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSectionViewModel.cs index 086f73175..310c68804 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSectionViewModel.cs +++ b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSectionViewModel.cs @@ -1,5 +1,6 @@ using System.Collections.ObjectModel; using Artemis.Core; +using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Items; using Artemis.UI.Shared; namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationStringItemView.axaml.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationStringItemView.axaml.cs deleted file mode 100644 index 7665c8f61..000000000 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationStringItemView.axaml.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; -using ReactiveUI.Avalonia; - -namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; - -public partial class ConfigurationStringItemView : ReactiveUserControl -{ - public ConfigurationStringItemView() - { - InitializeComponent(); - } -} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationStringItemViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationStringItemViewModel.cs deleted file mode 100644 index 8babe67b9..000000000 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationStringItemViewModel.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Artemis.Core; -using Artemis.UI.Shared; - -namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; - -public class ConfigurationStringItemViewModel : ActivatableViewModelBase -{ - public ConfigurationStringItem Item { get; } - - public ConfigurationStringItemViewModel(ConfigurationStringItem item) - { - Item = item; - } -} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationTextItemView.axaml.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationTextItemView.axaml.cs deleted file mode 100644 index ec92e025f..000000000 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationTextItemView.axaml.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; -using ReactiveUI.Avalonia; - -namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; - -public partial class ConfigurationTextItemView : ReactiveUserControl -{ - public ConfigurationTextItemView() - { - InitializeComponent(); - } -} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationTextItemViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationTextItemViewModel.cs deleted file mode 100644 index 7a6a09b84..000000000 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationTextItemViewModel.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Artemis.Core; -using Artemis.UI.Shared; - -namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; - -public class ConfigurationTextItemViewModel : ActivatableViewModelBase -{ - public ConfigurationTextItem Item { get; } - - public ConfigurationTextItemViewModel(ConfigurationTextItem item) - { - Item = item; - } -} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigureProfileView.axaml b/src/Artemis.UI/Screens/ProfileEditor/ConfigureProfileView.axaml index 28bff155b..6414217c4 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigureProfileView.axaml +++ b/src/Artemis.UI/Screens/ProfileEditor/ConfigureProfileView.axaml @@ -7,31 +7,16 @@ x:Class="Artemis.UI.Screens.ProfileEditor.ConfigureProfileView" x:DataType="profileEditor:ConfigureProfileViewModel"> - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigureProfileViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/ConfigureProfileViewModel.cs index 10ee0492f..c6b91cfbf 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigureProfileViewModel.cs +++ b/src/Artemis.UI/Screens/ProfileEditor/ConfigureProfileViewModel.cs @@ -33,30 +33,15 @@ public partial class ConfigureProfileViewModel : RoutableScreen(); _configurationSections.Connect() - .Filter(s => s.Slot == 0) .Transform(getConfigurationSectionViewModel) - .Bind(out ReadOnlyObservableCollection bottomLeftSections) + .Bind(out ReadOnlyObservableCollection sections) .Subscribe(); - _configurationSections.Connect() - .Filter(s => s.Slot == 1) - .Transform(getConfigurationSectionViewModel) - .Bind(out ReadOnlyObservableCollection bottomRightSections) - .Subscribe(); - _configurationSections.Connect() - .Filter(s => s.Slot == 2) - .Transform(getConfigurationSectionViewModel) - .Bind(out ReadOnlyObservableCollection sideSections) - .Subscribe(); - - BottomLeftSections = bottomLeftSections; - BottomRightSections = bottomRightSections; - SideSections = sideSections; + + Sections = sections; } public PreviewViewModel PreviewViewModel { get; } - public ReadOnlyObservableCollection BottomLeftSections { get; private set; } - public ReadOnlyObservableCollection BottomRightSections { get; private set; } - public ReadOnlyObservableCollection SideSections { get; private set; } + public ReadOnlyObservableCollection Sections { get; private set; } /// public override async Task OnNavigating(ProfileViewModelParameters parameters, NavigationArguments args, CancellationToken cancellationToken) diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationBooleanItemView.axaml b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationBooleanItemDesignView.axaml similarity index 82% rename from src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationBooleanItemView.axaml rename to src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationBooleanItemDesignView.axaml index 32d5591bf..66031bfb0 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationBooleanItemView.axaml +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationBooleanItemDesignView.axaml @@ -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:section="clr-namespace:Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section" + xmlns:items="clr-namespace:Artemis.UI.Screens.ProfileEditor.DesignPanels.Items" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section.ConfigurationBooleanItemView" - x:DataType="section:ConfigurationBooleanItemViewModel"> + x:Class="Artemis.UI.Screens.ProfileEditor.DesignPanels.Items.ConfigurationBooleanItemDesignView" + x:DataType="items:ConfigurationBooleanItemDesignViewModel"> diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationBooleanItemDesignView.axaml.cs b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationBooleanItemDesignView.axaml.cs new file mode 100644 index 000000000..3ec793798 --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationBooleanItemDesignView.axaml.cs @@ -0,0 +1,12 @@ +using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Items; +using ReactiveUI.Avalonia; + +namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items; + +public partial class ConfigurationBooleanItemDesignView : ReactiveUserControl +{ + public ConfigurationBooleanItemDesignView() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationBooleanItemDesignViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationBooleanItemDesignViewModel.cs new file mode 100644 index 000000000..9333a45c6 --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationBooleanItemDesignViewModel.cs @@ -0,0 +1,14 @@ +using Artemis.Core; +using Artemis.UI.Shared; + +namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items; + +public class ConfigurationBooleanItemDesignViewModel : ActivatableViewModelBase +{ + public ConfigurationBooleanItem Item { get; } + + public ConfigurationBooleanItemDesignViewModel(ConfigurationBooleanItem item) + { + Item = item; + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationColorGradientItemView.axaml b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationColorGradientItemDesignView.axaml similarity index 81% rename from src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationColorGradientItemView.axaml rename to src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationColorGradientItemDesignView.axaml index a7f702574..8fe9f7e72 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationColorGradientItemView.axaml +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationColorGradientItemDesignView.axaml @@ -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:section="clr-namespace:Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section" xmlns:gradientPicker="clr-namespace:Artemis.UI.Shared.Controls.GradientPicker;assembly=Artemis.UI.Shared" + xmlns:items="clr-namespace:Artemis.UI.Screens.ProfileEditor.DesignPanels.Items" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section.ConfigurationColorGradientItemView" - x:DataType="section:ConfigurationColorGradientItemViewModel"> + x:Class="Artemis.UI.Screens.ProfileEditor.DesignPanels.Items.ConfigurationColorGradientItemDesignView" + x:DataType="items:ConfigurationColorGradientItemDesignViewModel"> diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationColorGradientItemDesignView.axaml.cs b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationColorGradientItemDesignView.axaml.cs new file mode 100644 index 000000000..4a45fbad7 --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationColorGradientItemDesignView.axaml.cs @@ -0,0 +1,12 @@ +using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Items; +using ReactiveUI.Avalonia; + +namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items; + +public partial class ConfigurationColorGradientItemDesignView : ReactiveUserControl +{ + public ConfigurationColorGradientItemDesignView() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationColorGradientItemDesignViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationColorGradientItemDesignViewModel.cs new file mode 100644 index 000000000..2210f8f55 --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationColorGradientItemDesignViewModel.cs @@ -0,0 +1,14 @@ +using Artemis.Core; +using Artemis.UI.Shared; + +namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items; + +public class ConfigurationColorGradientItemDesignViewModel : ActivatableViewModelBase +{ + public ConfigurationColorGradientItemDesignViewModel(ConfigurationColorGradientItem item) + { + Item = item; + } + + public ConfigurationColorGradientItem Item { get; } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationNumericItemView.axaml b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationNumericItemDesignView.axaml similarity index 86% rename from src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationNumericItemView.axaml rename to src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationNumericItemDesignView.axaml index 340a6a499..0ab4abcca 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationNumericItemView.axaml +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationNumericItemDesignView.axaml @@ -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:section="clr-namespace:Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section" xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" xmlns:behaviors="clr-namespace:Artemis.UI.Shared.Behaviors;assembly=Artemis.UI.Shared" + xmlns:items="clr-namespace:Artemis.UI.Screens.ProfileEditor.DesignPanels.Items" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section.ConfigurationNumericItemView" - x:DataType="section:ConfigurationNumericItemViewModel"> + x:Class="Artemis.UI.Screens.ProfileEditor.DesignPanels.Items.ConfigurationNumericItemDesignView" + x:DataType="items:ConfigurationNumericItemDesignViewModel"> diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationNumericItemDesignView.axaml.cs b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationNumericItemDesignView.axaml.cs new file mode 100644 index 000000000..2944e6546 --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationNumericItemDesignView.axaml.cs @@ -0,0 +1,12 @@ +using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Items; +using ReactiveUI.Avalonia; + +namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items; + +public partial class ConfigurationNumericItemDesignView : ReactiveUserControl +{ + public ConfigurationNumericItemDesignView() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationNumericItemDesignViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationNumericItemDesignViewModel.cs new file mode 100644 index 000000000..73278447e --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationNumericItemDesignViewModel.cs @@ -0,0 +1,14 @@ +using Artemis.Core; +using Artemis.UI.Shared; + +namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items; + +public class ConfigurationNumericItemDesignViewModel : ActivatableViewModelBase +{ + public ConfigurationNumericItem Item { get; } + + public ConfigurationNumericItemDesignViewModel(ConfigurationNumericItem item) + { + Item = item; + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSKColorItemView.axaml b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationSKColorItemDesignView.axaml similarity index 77% rename from src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSKColorItemView.axaml rename to src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationSKColorItemDesignView.axaml index 26cfd66f0..3c27335ad 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationSKColorItemView.axaml +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationSKColorItemDesignView.axaml @@ -2,12 +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:section="clr-namespace:Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section" - xmlns:behaviors="clr-namespace:Artemis.UI.Shared.Behaviors;assembly=Artemis.UI.Shared" xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" + xmlns:items="clr-namespace:Artemis.UI.Screens.ProfileEditor.DesignPanels.Items" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section.ConfigurationSKColorItemView" - x:DataType="section:ConfigurationSKColorItemViewModel"> + x:Class="Artemis.UI.Screens.ProfileEditor.DesignPanels.Items.ConfigurationSKColorItemDesignView" + x:DataType="items:ConfigurationSKColorItemDesignViewModel"> diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationSKColorItemDesignView.axaml.cs b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationSKColorItemDesignView.axaml.cs new file mode 100644 index 000000000..4df928cec --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationSKColorItemDesignView.axaml.cs @@ -0,0 +1,12 @@ +using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Items; +using ReactiveUI.Avalonia; + +namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items; + +public partial class ConfigurationSKColorItemDesignView : ReactiveUserControl +{ + public ConfigurationSKColorItemDesignView() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationSKColorItemDesignViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationSKColorItemDesignViewModel.cs new file mode 100644 index 000000000..faea3f73b --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationSKColorItemDesignViewModel.cs @@ -0,0 +1,14 @@ +using Artemis.Core; +using Artemis.UI.Shared; + +namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items; + +public class ConfigurationSKColorItemDesignViewModel : ActivatableViewModelBase +{ + public ConfigurationSKColorItemDesignViewModel(ConfigurationSKColorItem item) + { + Item = item; + } + + public ConfigurationSKColorItem Item { get; } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationStringItemView.axaml b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationStringItemDesignView.axaml similarity index 79% rename from src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationStringItemView.axaml rename to src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationStringItemDesignView.axaml index 3996c4400..d3e3d473e 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationStringItemView.axaml +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationStringItemDesignView.axaml @@ -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:section="clr-namespace:Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section" + xmlns:items="clr-namespace:Artemis.UI.Screens.ProfileEditor.DesignPanels.Items" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section.ConfigurationStringItemView" - x:DataType="section:ConfigurationStringItemViewModel"> + x:Class="Artemis.UI.Screens.ProfileEditor.DesignPanels.Items.ConfigurationStringItemDesignView" + x:DataType="items:ConfigurationStringItemDesignViewModel"> diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationStringItemDesignView.axaml.cs b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationStringItemDesignView.axaml.cs new file mode 100644 index 000000000..512590678 --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationStringItemDesignView.axaml.cs @@ -0,0 +1,12 @@ +using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Items; +using ReactiveUI.Avalonia; + +namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items; + +public partial class ConfigurationStringItemDesignView : ReactiveUserControl +{ + public ConfigurationStringItemDesignView() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationStringItemDesignViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationStringItemDesignViewModel.cs new file mode 100644 index 000000000..06f4b36ed --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationStringItemDesignViewModel.cs @@ -0,0 +1,14 @@ +using Artemis.Core; +using Artemis.UI.Shared; + +namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items; + +public class ConfigurationStringItemDesignViewModel : ActivatableViewModelBase +{ + public ConfigurationStringItem Item { get; } + + public ConfigurationStringItemDesignViewModel(ConfigurationStringItem item) + { + Item = item; + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationTextItemView.axaml b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationTextItemDesignDesignView.axaml similarity index 51% rename from src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationTextItemView.axaml rename to src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationTextItemDesignDesignView.axaml index c3d5e69f5..34bfb22c9 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/ConfigurationPanels/Section/ConfigurationTextItemView.axaml +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationTextItemDesignDesignView.axaml @@ -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:section="clr-namespace:Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section" + xmlns:items="clr-namespace:Artemis.UI.Screens.ProfileEditor.DesignPanels.Items" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section.ConfigurationTextItemView" - x:DataType="section:ConfigurationTextItemViewModel"> - + x:Class="Artemis.UI.Screens.ProfileEditor.DesignPanels.Items.ConfigurationTextItemDesignDesignView" + x:DataType="items:ConfigurationTextItemDesignViewModel"> + diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationTextItemDesignDesignView.axaml.cs b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationTextItemDesignDesignView.axaml.cs new file mode 100644 index 000000000..b1b3346b8 --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationTextItemDesignDesignView.axaml.cs @@ -0,0 +1,12 @@ +using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Items; +using ReactiveUI.Avalonia; + +namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items; + +public partial class ConfigurationTextItemDesignDesignView : ReactiveUserControl +{ + public ConfigurationTextItemDesignDesignView() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationTextItemDesignViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationTextItemDesignViewModel.cs new file mode 100644 index 000000000..de36b64ca --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Items/ConfigurationTextItemDesignViewModel.cs @@ -0,0 +1,14 @@ +using Artemis.Core; +using Artemis.UI.Shared; + +namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items; + +public class ConfigurationTextItemDesignViewModel : ActivatableViewModelBase +{ + public ConfigurationTextItem Item { get; } + + public ConfigurationTextItemDesignViewModel(ConfigurationTextItem item) + { + Item = item; + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Section/ConfigurationSectionDesignView.axaml b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Section/ConfigurationSectionDesignView.axaml new file mode 100644 index 000000000..10f26fbe7 --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Section/ConfigurationSectionDesignView.axaml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Section/ConfigurationSectionDesignView.axaml.cs b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Section/ConfigurationSectionDesignView.axaml.cs new file mode 100644 index 000000000..75b65b895 --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Section/ConfigurationSectionDesignView.axaml.cs @@ -0,0 +1,12 @@ +using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section; +using ReactiveUI.Avalonia; + +namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Section; + +public partial class ConfigurationSectionDesignView: ReactiveUserControl +{ + public ConfigurationSectionDesignView() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Section/ConfigurationSectionDesignViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Section/ConfigurationSectionDesignViewModel.cs new file mode 100644 index 000000000..6b719716e --- /dev/null +++ b/src/Artemis.UI/Screens/ProfileEditor/DesignPanels/Section/ConfigurationSectionDesignViewModel.cs @@ -0,0 +1,33 @@ +using System.Collections.ObjectModel; +using Artemis.Core; +using Artemis.UI.Screens.ProfileEditor.DesignPanels.Items; +using Artemis.UI.Shared; + +namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Section; + +public class ConfigurationSectionDesignViewModel : ActivatableViewModelBase +{ + public ConfigurationSection ConfigurationSection { get; } + public ObservableCollection Items { get; } + + public ConfigurationSectionDesignViewModel(ConfigurationSection configurationSection) + { + ConfigurationSection = configurationSection; + Items = []; + foreach (IConfigurationItem item in ConfigurationSection.Items) + { + if (item is ConfigurationTextItem textItem) + Items.Add(new ConfigurationTextItemDesignViewModel(textItem)); + else if (item is ConfigurationStringItem stringItem) + Items.Add(new ConfigurationStringItemDesignViewModel(stringItem)); + else if (item is ConfigurationBooleanItem booleanItem) + Items.Add(new ConfigurationBooleanItemDesignViewModel(booleanItem)); + else if (item is ConfigurationNumericItem numberItem) + Items.Add(new ConfigurationNumericItemDesignViewModel(numberItem)); + else if (item is ConfigurationSKColorItem colorItem) + Items.Add(new ConfigurationSKColorItemDesignViewModel(colorItem)); + else if (item is ConfigurationColorGradientItem colorGradientItem) + Items.Add(new ConfigurationColorGradientItemDesignViewModel(colorGradientItem)); + } + } +} \ No newline at end of file