From 16b6bb47b4cb4e8f613894629ed8052896f5b540 Mon Sep 17 00:00:00 2001 From: Robert Date: Sat, 11 Dec 2021 00:53:48 +0100 Subject: [PATCH] Profile editor - Added initial VMs and UI panels UI screens - Simplified namespaces --- .../Plugins/PluginConfigurationViewModel.cs | 8 + .../Artemis.UI.Shared/Styles/Artemis.axaml | 10 + .../Artemis.UI.Shared/Styles/Border.axaml | 3 +- .../Artemis.UI/Artemis.UI.csproj.DotSettings | 9 +- .../Ninject/Factories/IVMFactory.cs | 3 +- .../Screens/Debugger/DebugViewModel.cs | 10 +- .../Tabs/DataModel/DataModelDebugView.axaml | 2 +- .../DataModel/DataModelDebugView.axaml.cs | 2 +- .../Tabs/DataModel/DataModelDebugViewModel.cs | 3 +- .../Debugger/Tabs/Logs/LogsDebugView.axaml | 2 +- .../Debugger/Tabs/Logs/LogsDebugView.axaml.cs | 2 +- .../Debugger/Tabs/Logs/LogsDebugViewModel.cs | 2 +- .../PerformanceDebugMeasurementViewModel.cs | 2 +- .../PerformanceDebugPluginView.axaml | 2 +- .../PerformanceDebugPluginView.axaml.cs | 3 +- .../PerformanceDebugPluginViewModel.cs | 2 +- .../PerformanceDebugProfilerView.axaml | 4 +- .../PerformanceDebugProfilerView.axaml.cs | 3 +- .../PerformanceDebugProfilerViewModel.cs | 2 +- .../Performance/PerformanceDebugView.axaml | 2 +- .../Performance/PerformanceDebugView.axaml.cs | 2 +- .../Performance/PerformanceDebugViewModel.cs | 2 +- .../Tabs/Render/RenderDebugView.axaml | 2 +- .../Tabs/Render/RenderDebugView.axaml.cs | 2 +- .../Tabs/Render/RenderDebugViewModel.cs | 10 +- .../Tabs/Settings/DebugSettingsView.axaml | 2 +- .../Tabs/Settings/DebugSettingsView.axaml.cs | 2 +- .../Tabs/Settings/DebugSettingsViewModel.cs | 2 +- .../Screens/Device/DeviceSettingsViewModel.cs | 2 +- .../Device/Tabs/DeviceInfoTabView.axaml | 2 +- .../Device/Tabs/DeviceInfoTabView.axaml.cs | 2 +- .../Device/Tabs/DeviceInfoTabViewModel.cs | 2 +- .../Device/Tabs/DeviceLedsTabView.axaml | 2 +- .../Device/Tabs/DeviceLedsTabView.axaml.cs | 2 +- .../Device/Tabs/DeviceLedsTabViewModel.cs | 2 +- .../Device/Tabs/DevicePropertiesTabView.axaml | 6 +- .../Tabs/DevicePropertiesTabView.axaml.cs | 2 +- .../Tabs/DevicePropertiesTabViewModel.cs | 2 +- .../Device/Tabs/InputMappingsTabView.axaml | 2 +- .../Device/Tabs/InputMappingsTabView.axaml.cs | 2 +- .../Device/Tabs/InputMappingsTabViewModel.cs | 2 +- .../Artemis.UI/Screens/Home/HomeView.axaml | 229 +++++++-------- ...uginPrerequisitesInstallDialogViewModel.cs | 2 +- ...inPrerequisitesUninstallDialogViewModel.cs | 2 +- .../Screens/Plugins/PluginFeatureViewModel.cs | 1 - .../Plugins/PluginSettingsViewModel.cs | 1 - .../VisualEditor/VisualEditorView.axaml | 41 +++ .../VisualEditor/VisualEditorView.axaml.cs | 45 +++ .../VisualEditor/VisualEditorViewModel.cs | 18 ++ .../ProfileEditor/ProfileEditorView.axaml | 265 +++++++++++++++++- .../ProfileEditor/ProfileEditorView.axaml.cs | 6 + .../ProfileEditor/ProfileEditorViewModel.cs | 16 +- .../Artemis.UI/Screens/Root/RootView.axaml | 13 +- .../Screens/Settings/SettingsView.axaml | 16 +- .../Screens/Settings/SettingsViewModel.cs | 1 - .../Screens/Settings/Tabs/AboutTabView.axaml | 2 +- .../Settings/Tabs/AboutTabView.axaml.cs | 2 +- .../Settings/Tabs/AboutTabViewModel.cs | 2 +- .../Settings/Tabs/DevicesTabView.axaml | 2 +- .../Settings/Tabs/DevicesTabView.axaml.cs | 2 +- .../Settings/Tabs/DevicesTabViewModel.cs | 2 +- .../Settings/Tabs/GeneralTabView.axaml | 2 +- .../Settings/Tabs/GeneralTabView.axaml.cs | 2 +- .../Settings/Tabs/GeneralTabViewModel.cs | 2 +- .../Settings/Tabs/PluginsTabView.axaml | 2 +- .../Settings/Tabs/PluginsTabView.axaml.cs | 2 +- .../Settings/Tabs/PluginsTabViewModel.cs | 2 +- .../SidebarCategoryEditView.axaml | 2 +- .../SidebarCategoryEditView.axaml.cs | 2 +- .../SidebarCategoryEditViewModel.cs | 2 +- .../ProfileConfigurationEditView.axaml | 4 +- .../ProfileConfigurationEditView.axaml.cs | 2 +- .../ProfileConfigurationEditViewModel.cs | 2 +- .../Sidebar/Dialogs/ProfileIconViewModel.cs | 2 +- .../Sidebar/Dialogs/ProfileModuleViewModel.cs | 2 +- .../Sidebar/SidebarCategoryViewModel.cs | 2 - .../SidebarProfileConfigurationViewModel.cs | 1 - .../Screens/Sidebar/SidebarViewModel.cs | 1 - .../SurfaceEditor/SurfaceEditorView.axaml | 192 ++++++------- .../SurfaceEditor/SurfaceEditorView.axaml.cs | 24 +- .../Screens/Workshop/WorkshopView.axaml | 45 +-- 81 files changed, 738 insertions(+), 355 deletions(-) create mode 100644 src/Avalonia/Artemis.UI/Screens/ProfileEditor/Panels/VisualEditor/VisualEditorView.axaml create mode 100644 src/Avalonia/Artemis.UI/Screens/ProfileEditor/Panels/VisualEditor/VisualEditorView.axaml.cs create mode 100644 src/Avalonia/Artemis.UI/Screens/ProfileEditor/Panels/VisualEditor/VisualEditorViewModel.cs diff --git a/src/Avalonia/Artemis.UI.Shared/Plugins/PluginConfigurationViewModel.cs b/src/Avalonia/Artemis.UI.Shared/Plugins/PluginConfigurationViewModel.cs index 813e195a6..dbed50afa 100644 --- a/src/Avalonia/Artemis.UI.Shared/Plugins/PluginConfigurationViewModel.cs +++ b/src/Avalonia/Artemis.UI.Shared/Plugins/PluginConfigurationViewModel.cs @@ -28,6 +28,14 @@ namespace Artemis.UI.Shared public void Close() { CloseRequested?.Invoke(this, EventArgs.Empty); + OnCloseRequested(); + } + + /// + /// Called when the the window hosting the view model should close + /// + public virtual void OnCloseRequested() + { } /// diff --git a/src/Avalonia/Artemis.UI.Shared/Styles/Artemis.axaml b/src/Avalonia/Artemis.UI.Shared/Styles/Artemis.axaml index 806683bee..f9f0aaa72 100644 --- a/src/Avalonia/Artemis.UI.Shared/Styles/Artemis.axaml +++ b/src/Avalonia/Artemis.UI.Shared/Styles/Artemis.axaml @@ -10,6 +10,16 @@ + + + + + + + + + + diff --git a/src/Avalonia/Artemis.UI.Shared/Styles/Border.axaml b/src/Avalonia/Artemis.UI.Shared/Styles/Border.axaml index 3cf4ad494..b1d279fb3 100644 --- a/src/Avalonia/Artemis.UI.Shared/Styles/Border.axaml +++ b/src/Avalonia/Artemis.UI.Shared/Styles/Border.axaml @@ -22,6 +22,7 @@ @@ -33,7 +34,7 @@ diff --git a/src/Avalonia/Artemis.UI/Artemis.UI.csproj.DotSettings b/src/Avalonia/Artemis.UI/Artemis.UI.csproj.DotSettings index 452c5acb6..9bdec1f7b 100644 --- a/src/Avalonia/Artemis.UI/Artemis.UI.csproj.DotSettings +++ b/src/Avalonia/Artemis.UI/Artemis.UI.csproj.DotSettings @@ -1,2 +1,9 @@  - True \ No newline at end of file + True + True + True + True + True + True + True + True \ No newline at end of file diff --git a/src/Avalonia/Artemis.UI/Ninject/Factories/IVMFactory.cs b/src/Avalonia/Artemis.UI/Ninject/Factories/IVMFactory.cs index 64b6a1704..bd173bd57 100644 --- a/src/Avalonia/Artemis.UI/Ninject/Factories/IVMFactory.cs +++ b/src/Avalonia/Artemis.UI/Ninject/Factories/IVMFactory.cs @@ -1,10 +1,9 @@ using System.Collections.ObjectModel; using Artemis.Core; using Artemis.UI.Screens.Device; -using Artemis.UI.Screens.Device.Tabs; using Artemis.UI.Screens.Plugins; using Artemis.UI.Screens.ProfileEditor; -using Artemis.UI.Screens.Settings.Tabs; +using Artemis.UI.Screens.Settings; using Artemis.UI.Screens.Sidebar; using Artemis.UI.Screens.SurfaceEditor; using Artemis.UI.Services; diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/DebugViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/DebugViewModel.cs index 20080c129..d1b773f1a 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/DebugViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/DebugViewModel.cs @@ -1,10 +1,10 @@ using System; using System.Reactive.Disposables; -using Artemis.UI.Screens.Debugger.Tabs.DataModel; -using Artemis.UI.Screens.Debugger.Tabs.Logs; -using Artemis.UI.Screens.Debugger.Tabs.Performance; -using Artemis.UI.Screens.Debugger.Tabs.Render; -using Artemis.UI.Screens.Debugger.Tabs.Settings; +using Artemis.UI.Screens.Debugger.DataModel; +using Artemis.UI.Screens.Debugger.Logs; +using Artemis.UI.Screens.Debugger.Performance; +using Artemis.UI.Screens.Debugger.Render; +using Artemis.UI.Screens.Debugger.Settings; using Artemis.UI.Services.Interfaces; using Artemis.UI.Shared; using FluentAvalonia.UI.Controls; diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/DataModel/DataModelDebugView.axaml b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/DataModel/DataModelDebugView.axaml index 4032e4ec9..772ffadee 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/DataModel/DataModelDebugView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/DataModel/DataModelDebugView.axaml @@ -5,7 +5,7 @@ xmlns:dataModel="clr-namespace:Artemis.UI.Shared.DataModelVisualization.Shared;assembly=Artemis.UI.Shared" xmlns:converters="clr-namespace:Artemis.UI.Shared.Converters;assembly=Artemis.UI.Shared" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.Debugger.Tabs.DataModel.DataModelDebugView"> + x:Class="Artemis.UI.Screens.Debugger.DataModel.DataModelDebugView"> diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/DataModel/DataModelDebugView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/DataModel/DataModelDebugView.axaml.cs index 47c67b6f7..daadbed40 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/DataModel/DataModelDebugView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/DataModel/DataModelDebugView.axaml.cs @@ -1,7 +1,7 @@ using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; -namespace Artemis.UI.Screens.Debugger.Tabs.DataModel +namespace Artemis.UI.Screens.Debugger.DataModel { public class DataModelDebugView : ReactiveUserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/DataModel/DataModelDebugViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/DataModel/DataModelDebugViewModel.cs index 71dac014d..7c9fbf74b 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/DataModel/DataModelDebugViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/DataModel/DataModelDebugViewModel.cs @@ -10,12 +10,11 @@ using Artemis.Core.Modules; using Artemis.Core.Services; using Artemis.UI.Shared; using Artemis.UI.Shared.DataModelVisualization.Shared; -using Artemis.UI.Shared.Services; using Artemis.UI.Shared.Services.Interfaces; using DynamicData; using ReactiveUI; -namespace Artemis.UI.Screens.Debugger.Tabs.DataModel +namespace Artemis.UI.Screens.Debugger.DataModel { public class DataModelDebugViewModel : ActivatableViewModelBase, IRoutableViewModel { diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml index ef116783a..737e78169 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml @@ -3,7 +3,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.Debugger.Tabs.Logs.LogsDebugView"> + x:Class="Artemis.UI.Screens.Debugger.Logs.LogsDebugView"> Logs diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml.cs index 6d3a3dae7..a524006ae 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml.cs @@ -1,7 +1,7 @@ using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; -namespace Artemis.UI.Screens.Debugger.Tabs.Logs +namespace Artemis.UI.Screens.Debugger.Logs { public class LogsDebugView : ReactiveUserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugViewModel.cs index a8356a48c..3833ce98d 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugViewModel.cs @@ -1,7 +1,7 @@ using Artemis.UI.Shared; using ReactiveUI; -namespace Artemis.UI.Screens.Debugger.Tabs.Logs +namespace Artemis.UI.Screens.Debugger.Logs { public class LogsDebugViewModel : ActivatableViewModelBase, IRoutableViewModel { diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugMeasurementViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugMeasurementViewModel.cs index 65bf5646e..4c1391c5d 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugMeasurementViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugMeasurementViewModel.cs @@ -2,7 +2,7 @@ using Artemis.UI.Shared; using ReactiveUI; -namespace Artemis.UI.Screens.Debugger.Tabs.Performance +namespace Artemis.UI.Screens.Debugger.Performance { public class PerformanceDebugMeasurementViewModel : ViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugPluginView.axaml b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugPluginView.axaml index 34ce88a5b..e85aa0b4d 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugPluginView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugPluginView.axaml @@ -4,7 +4,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:controls="clr-namespace:Artemis.UI.Shared.Controls;assembly=Artemis.UI.Shared" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.Debugger.Tabs.Performance.PerformanceDebugPluginView"> + x:Class="Artemis.UI.Screens.Debugger.Performance.PerformanceDebugPluginView"> diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugPluginView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugPluginView.axaml.cs index b9a6db6a7..0dcbfd612 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugPluginView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugPluginView.axaml.cs @@ -1,8 +1,7 @@ -using Avalonia; using Avalonia.Controls; using Avalonia.Markup.Xaml; -namespace Artemis.UI.Screens.Debugger.Tabs.Performance +namespace Artemis.UI.Screens.Debugger.Performance { public partial class PerformanceDebugPluginView : UserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugPluginViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugPluginViewModel.cs index 7406dd65a..1b8e3cc77 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugPluginViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugPluginViewModel.cs @@ -3,7 +3,7 @@ using System.Linq; using Artemis.Core; using Artemis.UI.Shared; -namespace Artemis.UI.Screens.Debugger.Tabs.Performance +namespace Artemis.UI.Screens.Debugger.Performance { public class PerformanceDebugPluginViewModel : ViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugProfilerView.axaml b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugProfilerView.axaml index 44c81a253..b78753878 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugProfilerView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugProfilerView.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:local="clr-namespace:Artemis.UI.Screens.Debugger.Tabs.Performance" + xmlns:local="clr-namespace:Artemis.UI.Screens.Debugger.Performance" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.Debugger.Tabs.Performance.PerformanceDebugProfilerView"> + x:Class="Artemis.UI.Screens.Debugger.Performance.PerformanceDebugProfilerView"> diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugProfilerView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugProfilerView.axaml.cs index c995bd53a..17c9bba7b 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugProfilerView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugProfilerView.axaml.cs @@ -1,8 +1,7 @@ -using Avalonia; using Avalonia.Controls; using Avalonia.Markup.Xaml; -namespace Artemis.UI.Screens.Debugger.Tabs.Performance +namespace Artemis.UI.Screens.Debugger.Performance { public partial class PerformanceDebugProfilerView : UserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugProfilerViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugProfilerViewModel.cs index 90d2e8ad4..0146265e3 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugProfilerViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugProfilerViewModel.cs @@ -3,7 +3,7 @@ using System.Linq; using Artemis.Core; using Artemis.UI.Shared; -namespace Artemis.UI.Screens.Debugger.Tabs.Performance +namespace Artemis.UI.Screens.Debugger.Performance { public class PerformanceDebugProfilerViewModel : ViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugView.axaml b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugView.axaml index a028787f8..ccd646ccf 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugView.axaml @@ -4,7 +4,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.Debugger.Tabs.Performance.PerformanceDebugView"> + x:Class="Artemis.UI.Screens.Debugger.Performance.PerformanceDebugView"> Performance diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugView.axaml.cs index d81eb0c80..6f538ef55 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugView.axaml.cs @@ -1,7 +1,7 @@ using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; -namespace Artemis.UI.Screens.Debugger.Tabs.Performance +namespace Artemis.UI.Screens.Debugger.Performance { public class PerformanceDebugView : ReactiveUserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugViewModel.cs index 2a1e7889d..781ff7e3c 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Performance/PerformanceDebugViewModel.cs @@ -9,7 +9,7 @@ using Artemis.Core.Services; using Artemis.UI.Shared; using ReactiveUI; -namespace Artemis.UI.Screens.Debugger.Tabs.Performance +namespace Artemis.UI.Screens.Debugger.Performance { public class PerformanceDebugViewModel : ActivatableViewModelBase, IRoutableViewModel { diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Render/RenderDebugView.axaml b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Render/RenderDebugView.axaml index 905d400d6..3143eeecf 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Render/RenderDebugView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Render/RenderDebugView.axaml @@ -3,7 +3,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.Debugger.Tabs.Render.RenderDebugView"> + x:Class="Artemis.UI.Screens.Debugger.Render.RenderDebugView"> Render diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Render/RenderDebugView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Render/RenderDebugView.axaml.cs index 0c90e2fb9..d44dc03c4 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Render/RenderDebugView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Render/RenderDebugView.axaml.cs @@ -1,7 +1,7 @@ using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; -namespace Artemis.UI.Screens.Debugger.Tabs.Render +namespace Artemis.UI.Screens.Debugger.Render { public class RenderDebugView : ReactiveUserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Render/RenderDebugViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Render/RenderDebugViewModel.cs index 316a79090..a86e5f53c 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Render/RenderDebugViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Render/RenderDebugViewModel.cs @@ -1,19 +1,13 @@ -using System.Diagnostics; -using System.IO; +using System.IO; using System.Reactive.Disposables; -using System.Reflection.Metadata.Ecma335; -using System.Timers; using Artemis.Core; using Artemis.Core.Services; using Artemis.UI.Shared; -using Avalonia; -using Avalonia.Controls; using Avalonia.Media.Imaging; -using Avalonia.Platform; using ReactiveUI; using SkiaSharp; -namespace Artemis.UI.Screens.Debugger.Tabs.Render +namespace Artemis.UI.Screens.Debugger.Render { public class RenderDebugViewModel : ActivatableViewModelBase, IRoutableViewModel { diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Settings/DebugSettingsView.axaml b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Settings/DebugSettingsView.axaml index ccdf809ea..502175ca1 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Settings/DebugSettingsView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Settings/DebugSettingsView.axaml @@ -3,6 +3,6 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.Debugger.Tabs.Settings.DebugSettingsView"> + x:Class="Artemis.UI.Screens.Debugger.Settings.DebugSettingsView"> Settings \ No newline at end of file diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Settings/DebugSettingsView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Settings/DebugSettingsView.axaml.cs index 1880378e0..d8ea87194 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Settings/DebugSettingsView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Settings/DebugSettingsView.axaml.cs @@ -1,7 +1,7 @@ using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; -namespace Artemis.UI.Screens.Debugger.Tabs.Settings +namespace Artemis.UI.Screens.Debugger.Settings { public class DebugSettingsView : ReactiveUserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Settings/DebugSettingsViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Settings/DebugSettingsViewModel.cs index 1cd12164d..2d1c41f11 100644 --- a/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Settings/DebugSettingsViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Debugger/Tabs/Settings/DebugSettingsViewModel.cs @@ -1,7 +1,7 @@ using Artemis.UI.Shared; using ReactiveUI; -namespace Artemis.UI.Screens.Debugger.Tabs.Settings +namespace Artemis.UI.Screens.Debugger.Settings { public class DebugSettingsViewModel : ActivatableViewModelBase, IRoutableViewModel { diff --git a/src/Avalonia/Artemis.UI/Screens/Device/DeviceSettingsViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Device/DeviceSettingsViewModel.cs index c031f8dba..315e3744f 100644 --- a/src/Avalonia/Artemis.UI/Screens/Device/DeviceSettingsViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Device/DeviceSettingsViewModel.cs @@ -3,7 +3,7 @@ using System.Threading.Tasks; using Artemis.Core; using Artemis.Core.Services; using Artemis.UI.Ninject.Factories; -using Artemis.UI.Screens.Settings.Tabs; +using Artemis.UI.Screens.Settings; using Artemis.UI.Shared; using Artemis.UI.Shared.Services.Interfaces; using Avalonia.Threading; diff --git a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceInfoTabView.axaml b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceInfoTabView.axaml index 5a29d5fa8..e95d9c6a6 100644 --- a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceInfoTabView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceInfoTabView.axaml @@ -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.Device.Tabs.DeviceInfoTabView"> + x:Class="Artemis.UI.Screens.Device.DeviceInfoTabView"> diff --git a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceInfoTabView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceInfoTabView.axaml.cs index 6970c9ce7..21a067882 100644 --- a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceInfoTabView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceInfoTabView.axaml.cs @@ -1,7 +1,7 @@ using Avalonia.Controls; using Avalonia.Markup.Xaml; -namespace Artemis.UI.Screens.Device.Tabs +namespace Artemis.UI.Screens.Device { public partial class DeviceInfoTabView : UserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceInfoTabViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceInfoTabViewModel.cs index 839b930b2..3005f651e 100644 --- a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceInfoTabViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceInfoTabViewModel.cs @@ -5,7 +5,7 @@ using Artemis.UI.Shared.Services.Interfaces; using Avalonia; using RGB.NET.Core; -namespace Artemis.UI.Screens.Device.Tabs +namespace Artemis.UI.Screens.Device { public class DeviceInfoTabViewModel : ActivatableViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceLedsTabView.axaml b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceLedsTabView.axaml index 394c08db0..ed5016814 100644 --- a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceLedsTabView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceLedsTabView.axaml @@ -3,6 +3,6 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.Device.Tabs.DeviceLedsTabView"> + x:Class="Artemis.UI.Screens.Device.DeviceLedsTabView"> Welcome to Avalonia! diff --git a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceLedsTabView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceLedsTabView.axaml.cs index b2cfe8437..2caa0fb1e 100644 --- a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceLedsTabView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceLedsTabView.axaml.cs @@ -1,7 +1,7 @@ using Avalonia.Controls; using Avalonia.Markup.Xaml; -namespace Artemis.UI.Screens.Device.Tabs +namespace Artemis.UI.Screens.Device { public partial class DeviceLedsTabView : UserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceLedsTabViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceLedsTabViewModel.cs index 30d48729f..f11989e93 100644 --- a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceLedsTabViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DeviceLedsTabViewModel.cs @@ -8,7 +8,7 @@ using Artemis.UI.Shared; using DynamicData.Binding; using ReactiveUI; -namespace Artemis.UI.Screens.Device.Tabs +namespace Artemis.UI.Screens.Device { public class DeviceLedsTabViewModel : ActivatableViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabView.axaml b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabView.axaml index a5a5a4585..07aa6519a 100644 --- a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabView.axaml @@ -5,14 +5,14 @@ xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia" xmlns:converters="clr-namespace:Artemis.UI.Shared.Converters;assembly=Artemis.UI.Shared" - xmlns:tabs="clr-namespace:Artemis.UI.Screens.Device.Tabs" + xmlns:device="clr-namespace:Artemis.UI.Screens.Device" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="1200" - x:Class="Artemis.UI.Screens.Device.Tabs.DevicePropertiesTabView"> + x:Class="Artemis.UI.Screens.Device.DevicePropertiesTabView"> - + diff --git a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabView.axaml.cs index 80370bc67..04685c04a 100644 --- a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabView.axaml.cs @@ -2,7 +2,7 @@ using Avalonia.Input; using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; -namespace Artemis.UI.Screens.Device.Tabs +namespace Artemis.UI.Screens.Device { public partial class DevicePropertiesTabView : ReactiveUserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabViewModel.cs index be267493f..77edab6ea 100644 --- a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabViewModel.cs @@ -10,7 +10,7 @@ using Artemis.UI.Shared.Services.Interfaces; using ReactiveUI; using SkiaSharp; -namespace Artemis.UI.Screens.Device.Tabs +namespace Artemis.UI.Screens.Device { public class DevicePropertiesTabViewModel : ActivatableViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/InputMappingsTabView.axaml b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/InputMappingsTabView.axaml index 602ca4c5c..4eb1d82af 100644 --- a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/InputMappingsTabView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/InputMappingsTabView.axaml @@ -3,6 +3,6 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.Device.Tabs.InputMappingsTabView"> + x:Class="Artemis.UI.Screens.Device.InputMappingsTabView"> Welcome to Avalonia! diff --git a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/InputMappingsTabView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/InputMappingsTabView.axaml.cs index 462e1455e..5b74ae0bf 100644 --- a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/InputMappingsTabView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/InputMappingsTabView.axaml.cs @@ -1,7 +1,7 @@ using Avalonia.Controls; using Avalonia.Markup.Xaml; -namespace Artemis.UI.Screens.Device.Tabs +namespace Artemis.UI.Screens.Device { public partial class InputMappingsTabView : UserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/InputMappingsTabViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/InputMappingsTabViewModel.cs index 96cf5d740..59e5ffc5f 100644 --- a/src/Avalonia/Artemis.UI/Screens/Device/Tabs/InputMappingsTabViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Device/Tabs/InputMappingsTabViewModel.cs @@ -9,7 +9,7 @@ using Artemis.UI.Shared; using ReactiveUI; using RGB.NET.Core; -namespace Artemis.UI.Screens.Device.Tabs +namespace Artemis.UI.Screens.Device { public class InputMappingsTabViewModel : ActivatableViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Home/HomeView.axaml b/src/Avalonia/Artemis.UI/Screens/Home/HomeView.axaml index ca58c2982..e12d80e0c 100644 --- a/src/Avalonia/Artemis.UI/Screens/Home/HomeView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Home/HomeView.axaml @@ -6,123 +6,124 @@ xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" mc:Ignorable="d" d:DesignWidth="1200" d:DesignHeight="900" x:Class="Artemis.UI.Screens.Home.HomeView"> - - + + + - - - + + + - - - - - - Plugins - - Artemis is built up using plugins. This means devices, brushes, effects and modules (for supporting games) can all be added via plugins. - - - Under Settings > Plugins you can find your currently installed plugins, these default plugins are created by Artemis developers. We're also keeping track of a list of third-party plugins on our wiki. - - - - - - - - - - - Get more plugins - - - - + + + + + + Plugins + + Artemis is built up using plugins. This means devices, brushes, effects and modules (for supporting games) can all be added via plugins. + + + Under Settings > Plugins you can find your currently installed plugins, these default plugins are created by Artemis developers. We're also keeping track of a list of third-party plugins on our wiki. + + + + + + + + + + + Get more plugins + + + + - - - - - Have a chat - - If you need help, have some feedback or have any other questions feel free to contact us through any of the following channels. - - + + + + + Have a chat + + If you need help, have some feedback or have any other questions feel free to contact us through any of the following channels. + + - - - - - - GitHub - - - - - - Website - - - - - - Discord - - - - - - E-mail - - - - - - - - - - - Open Source - - This project is open source. If you like it and want to say thanks you could hit the GitHub Star button, I like numbers. - - + + + + + + GitHub + + + + + + Website + + + + + + Discord + + + + + + E-mail + + + + + + + + + + + Open Source + + This project is open source. If you like it and want to say thanks you could hit the GitHub Star button, I like numbers. + + - - - - Donate - - - - Feel like making a donation? It would be gratefully received. Click the button to donate via PayPal. - - - - - - + + + + Donate + + + + Feel like making a donation? It would be gratefully received. Click the button to donate via PayPal. + + + + + + \ No newline at end of file diff --git a/src/Avalonia/Artemis.UI/Screens/Plugins/Dialogs/PluginPrerequisitesInstallDialogViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Plugins/Dialogs/PluginPrerequisitesInstallDialogViewModel.cs index 24fd35ba8..93d811451 100644 --- a/src/Avalonia/Artemis.UI/Screens/Plugins/Dialogs/PluginPrerequisitesInstallDialogViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Plugins/Dialogs/PluginPrerequisitesInstallDialogViewModel.cs @@ -10,7 +10,7 @@ using Artemis.UI.Shared; using Artemis.UI.Shared.Services.Interfaces; using ReactiveUI; -namespace Artemis.UI.Screens.Plugins.Dialogs +namespace Artemis.UI.Screens.Plugins { public class PluginPrerequisitesInstallDialogViewModel : DialogViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Plugins/Dialogs/PluginPrerequisitesUninstallDialogViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Plugins/Dialogs/PluginPrerequisitesUninstallDialogViewModel.cs index 0be1f29a8..9eeb5c7aa 100644 --- a/src/Avalonia/Artemis.UI/Screens/Plugins/Dialogs/PluginPrerequisitesUninstallDialogViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Plugins/Dialogs/PluginPrerequisitesUninstallDialogViewModel.cs @@ -11,7 +11,7 @@ using Artemis.UI.Shared; using Artemis.UI.Shared.Services.Interfaces; using ReactiveUI; -namespace Artemis.UI.Screens.Plugins.Dialogs +namespace Artemis.UI.Screens.Plugins { public class PluginPrerequisitesUninstallDialogViewModel : DialogViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Plugins/PluginFeatureViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Plugins/PluginFeatureViewModel.cs index cc7809133..145b09584 100644 --- a/src/Avalonia/Artemis.UI/Screens/Plugins/PluginFeatureViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Plugins/PluginFeatureViewModel.cs @@ -4,7 +4,6 @@ using System.Linq; using System.Threading.Tasks; using Artemis.Core; using Artemis.Core.Services; -using Artemis.UI.Screens.Plugins.Dialogs; using Artemis.UI.Shared; using Artemis.UI.Shared.Services.Builders; using Artemis.UI.Shared.Services.Interfaces; diff --git a/src/Avalonia/Artemis.UI/Screens/Plugins/PluginSettingsViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Plugins/PluginSettingsViewModel.cs index 1702e2e09..a1036f921 100644 --- a/src/Avalonia/Artemis.UI/Screens/Plugins/PluginSettingsViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Plugins/PluginSettingsViewModel.cs @@ -9,7 +9,6 @@ using Artemis.Core; using Artemis.Core.Services; using Artemis.UI.Exceptions; using Artemis.UI.Ninject.Factories; -using Artemis.UI.Screens.Plugins.Dialogs; using Artemis.UI.Shared; using Artemis.UI.Shared.Services.Interfaces; using Avalonia.Threading; diff --git a/src/Avalonia/Artemis.UI/Screens/ProfileEditor/Panels/VisualEditor/VisualEditorView.axaml b/src/Avalonia/Artemis.UI/Screens/ProfileEditor/Panels/VisualEditor/VisualEditorView.axaml new file mode 100644 index 000000000..6b7ed8652 --- /dev/null +++ b/src/Avalonia/Artemis.UI/Screens/ProfileEditor/Panels/VisualEditor/VisualEditorView.axaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Avalonia/Artemis.UI/Screens/ProfileEditor/Panels/VisualEditor/VisualEditorView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/ProfileEditor/Panels/VisualEditor/VisualEditorView.axaml.cs new file mode 100644 index 000000000..6f5d31f55 --- /dev/null +++ b/src/Avalonia/Artemis.UI/Screens/ProfileEditor/Panels/VisualEditor/VisualEditorView.axaml.cs @@ -0,0 +1,45 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Controls.PanAndZoom; +using Avalonia.Markup.Xaml; +using Avalonia.Media; +using Avalonia.ReactiveUI; + +namespace Artemis.UI.Screens.ProfileEditor.VisualEditor +{ + public class VisualEditorView : ReactiveUserControl + { + private readonly ZoomBorder _zoomBorder; + + public VisualEditorView() + { + InitializeComponent(); + + _zoomBorder = this.Find("ZoomBorder"); + _zoomBorder.PropertyChanged += ZoomBorderOnPropertyChanged; + UpdateZoomBorderBackground(); + } + + private void ZoomBorderOnPropertyChanged(object? sender, AvaloniaPropertyChangedEventArgs e) + { + if (e.Property.Name == nameof(_zoomBorder.Background)) + UpdateZoomBorderBackground(); + } + + private void UpdateZoomBorderBackground() + { + if (_zoomBorder.Background is VisualBrush visualBrush) + visualBrush.DestinationRect = new RelativeRect(_zoomBorder.OffsetX * -1, _zoomBorder.OffsetY * -1, 20, 20, RelativeUnit.Absolute); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } + + private void ZoomBorder_OnZoomChanged(object sender, ZoomChangedEventArgs e) + { + UpdateZoomBorderBackground(); + } + } +} \ No newline at end of file diff --git a/src/Avalonia/Artemis.UI/Screens/ProfileEditor/Panels/VisualEditor/VisualEditorViewModel.cs b/src/Avalonia/Artemis.UI/Screens/ProfileEditor/Panels/VisualEditor/VisualEditorViewModel.cs new file mode 100644 index 000000000..3ceed2d33 --- /dev/null +++ b/src/Avalonia/Artemis.UI/Screens/ProfileEditor/Panels/VisualEditor/VisualEditorViewModel.cs @@ -0,0 +1,18 @@ +using System.Collections.ObjectModel; +using Artemis.Core; +using Artemis.Core.Services; +using Artemis.UI.Services; +using Artemis.UI.Shared; + +namespace Artemis.UI.Screens.ProfileEditor.VisualEditor +{ + public class VisualEditorViewModel : ActivatableViewModelBase + { + public VisualEditorViewModel(IProfileEditorService profileEditorService, IRgbService rgbService) + { + Devices = new ObservableCollection(rgbService.EnabledDevices); + } + + public ObservableCollection Devices { get; } + } +} \ No newline at end of file diff --git a/src/Avalonia/Artemis.UI/Screens/ProfileEditor/ProfileEditorView.axaml b/src/Avalonia/Artemis.UI/Screens/ProfileEditor/ProfileEditorView.axaml index f29ad78f3..5c38fd817 100644 --- a/src/Avalonia/Artemis.UI/Screens/ProfileEditor/ProfileEditorView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/ProfileEditor/ProfileEditorView.axaml @@ -2,12 +2,265 @@ 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:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia" + xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="Artemis.UI.Screens.ProfileEditor.ProfileEditorView"> - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Properties/timeline + + + + + + + + Profile elements + + + + + + Conditions + + + + \ No newline at end of file diff --git a/src/Avalonia/Artemis.UI/Screens/ProfileEditor/ProfileEditorView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/ProfileEditor/ProfileEditorView.axaml.cs index 6949c7a36..1a68b5369 100644 --- a/src/Avalonia/Artemis.UI/Screens/ProfileEditor/ProfileEditorView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/ProfileEditor/ProfileEditorView.axaml.cs @@ -1,3 +1,4 @@ +using Avalonia.Interactivity; using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; @@ -14,5 +15,10 @@ namespace Artemis.UI.Screens.ProfileEditor { AvaloniaXamlLoader.Load(this); } + + private void MenuItem_OnSubmenuOpened(object? sender, RoutedEventArgs e) + { + + } } } \ No newline at end of file diff --git a/src/Avalonia/Artemis.UI/Screens/ProfileEditor/ProfileEditorViewModel.cs b/src/Avalonia/Artemis.UI/Screens/ProfileEditor/ProfileEditorViewModel.cs index 02c8b6734..73cd9f3f1 100644 --- a/src/Avalonia/Artemis.UI/Screens/ProfileEditor/ProfileEditorViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/ProfileEditor/ProfileEditorViewModel.cs @@ -1,6 +1,7 @@ using System; using System.Reactive.Disposables; using Artemis.Core; +using Artemis.UI.Screens.ProfileEditor.VisualEditor; using Artemis.UI.Services; using ReactiveUI; @@ -11,18 +12,23 @@ namespace Artemis.UI.Screens.ProfileEditor private ProfileConfiguration? _profile; /// - public ProfileEditorViewModel(IScreen hostScreen, IProfileEditorService profileEditorService) : base(hostScreen, "profile-editor") + public ProfileEditorViewModel(IScreen hostScreen, VisualEditorViewModel visualEditorViewModel, IProfileEditorService profileEditorService) : base(hostScreen, "profile-editor") { - this.WhenActivated(disposables => - { - profileEditorService.CurrentProfileConfiguration.WhereNotNull().Subscribe(p => Profile = p).DisposeWith(disposables); - }); + VisualEditorViewModel = visualEditorViewModel; + this.WhenActivated(disposables => { profileEditorService.CurrentProfileConfiguration.WhereNotNull().Subscribe(p => Profile = p).DisposeWith(disposables); }); } + public VisualEditorViewModel VisualEditorViewModel { get; } + public ProfileConfiguration? Profile { get => _profile; set => this.RaiseAndSetIfChanged(ref _profile, value); } + + public void OpenUrl(string url) + { + Utilities.OpenUrl(url); + } } } \ No newline at end of file diff --git a/src/Avalonia/Artemis.UI/Screens/Root/RootView.axaml b/src/Avalonia/Artemis.UI/Screens/Root/RootView.axaml index de64614fe..6c5dde4ca 100644 --- a/src/Avalonia/Artemis.UI/Screens/Root/RootView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Root/RootView.axaml @@ -12,13 +12,10 @@ - - - - - - - - + + + + + \ No newline at end of file diff --git a/src/Avalonia/Artemis.UI/Screens/Settings/SettingsView.axaml b/src/Avalonia/Artemis.UI/Screens/Settings/SettingsView.axaml index 5f69f6bf7..96433edb6 100644 --- a/src/Avalonia/Artemis.UI/Screens/Settings/SettingsView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Settings/SettingsView.axaml @@ -4,11 +4,13 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="Artemis.UI.Screens.Settings.SettingsView"> - - - - - - - + + + + + + + + + \ No newline at end of file diff --git a/src/Avalonia/Artemis.UI/Screens/Settings/SettingsViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Settings/SettingsViewModel.cs index 213a4c8fb..ba681f61b 100644 --- a/src/Avalonia/Artemis.UI/Screens/Settings/SettingsViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Settings/SettingsViewModel.cs @@ -1,5 +1,4 @@ using System.Collections.ObjectModel; -using Artemis.UI.Screens.Settings.Tabs; using Artemis.UI.Shared; using ReactiveUI; diff --git a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/AboutTabView.axaml b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/AboutTabView.axaml index a43553d8a..b88470250 100644 --- a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/AboutTabView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/AboutTabView.axaml @@ -6,7 +6,7 @@ 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="1000" d:DesignHeight="1400" - x:Class="Artemis.UI.Screens.Settings.Tabs.AboutTabView"> + x:Class="Artemis.UI.Screens.Settings.AboutTabView"> diff --git a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/AboutTabView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/AboutTabView.axaml.cs index 3d45b008b..2e756a45e 100644 --- a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/AboutTabView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/AboutTabView.axaml.cs @@ -1,7 +1,7 @@ using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; -namespace Artemis.UI.Screens.Settings.Tabs +namespace Artemis.UI.Screens.Settings { public partial class AboutTabView : ReactiveUserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/AboutTabViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/AboutTabViewModel.cs index 37438a374..c0641a06d 100644 --- a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/AboutTabViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/AboutTabViewModel.cs @@ -8,7 +8,7 @@ using Avalonia.Media.Imaging; using Flurl.Http; using ReactiveUI; -namespace Artemis.UI.Screens.Settings.Tabs +namespace Artemis.UI.Screens.Settings { public class AboutTabViewModel : ActivatableViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/DevicesTabView.axaml b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/DevicesTabView.axaml index 6b171cf0d..f1452902b 100644 --- a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/DevicesTabView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/DevicesTabView.axaml @@ -3,7 +3,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.Settings.Tabs.DevicesTabView"> + x:Class="Artemis.UI.Screens.Settings.DevicesTabView"> diff --git a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/DevicesTabView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/DevicesTabView.axaml.cs index a05dad7eb..389ffeb0e 100644 --- a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/DevicesTabView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/DevicesTabView.axaml.cs @@ -1,7 +1,7 @@ using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; -namespace Artemis.UI.Screens.Settings.Tabs +namespace Artemis.UI.Screens.Settings { public class DevicesTabView : ReactiveUserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/DevicesTabViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/DevicesTabViewModel.cs index 8f2975fcc..d8a184e4c 100644 --- a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/DevicesTabViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/DevicesTabViewModel.cs @@ -14,7 +14,7 @@ using Avalonia.Threading; using DynamicData; using ReactiveUI; -namespace Artemis.UI.Screens.Settings.Tabs +namespace Artemis.UI.Screens.Settings { public class DevicesTabViewModel : ActivatableViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/GeneralTabView.axaml b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/GeneralTabView.axaml index 6a8489623..a44f07962 100644 --- a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/GeneralTabView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/GeneralTabView.axaml @@ -6,7 +6,7 @@ xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia" xmlns:controls="clr-namespace:Artemis.UI.Shared.Controls;assembly=Artemis.UI.Shared" mc:Ignorable="d" d:DesignWidth="1000" d:DesignHeight="2400" - x:Class="Artemis.UI.Screens.Settings.Tabs.GeneralTabView"> + x:Class="Artemis.UI.Screens.Settings.GeneralTabView"> diff --git a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/GeneralTabView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/GeneralTabView.axaml.cs index 55eb76938..fb10d81df 100644 --- a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/GeneralTabView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/GeneralTabView.axaml.cs @@ -1,7 +1,7 @@ using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; -namespace Artemis.UI.Screens.Settings.Tabs +namespace Artemis.UI.Screens.Settings { public partial class GeneralTabView : ReactiveUserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/GeneralTabViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/GeneralTabViewModel.cs index 7bca17b40..d9c939373 100644 --- a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/GeneralTabViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/GeneralTabViewModel.cs @@ -14,7 +14,7 @@ using Artemis.UI.Shared; using ReactiveUI; using Serilog.Events; -namespace Artemis.UI.Screens.Settings.Tabs +namespace Artemis.UI.Screens.Settings { public class GeneralTabViewModel : ActivatableViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/PluginsTabView.axaml b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/PluginsTabView.axaml index 43f53c8e2..cb491bfbc 100644 --- a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/PluginsTabView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/PluginsTabView.axaml @@ -3,7 +3,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="1200" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.Settings.Tabs.PluginsTabView"> + x:Class="Artemis.UI.Screens.Settings.PluginsTabView"> diff --git a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/PluginsTabView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/PluginsTabView.axaml.cs index b2f7eaafd..ae0e0e9df 100644 --- a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/PluginsTabView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/PluginsTabView.axaml.cs @@ -1,7 +1,7 @@ using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; -namespace Artemis.UI.Screens.Settings.Tabs +namespace Artemis.UI.Screens.Settings { public partial class PluginsTabView : ReactiveUserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/PluginsTabViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/PluginsTabViewModel.cs index 97ba9f52d..b722f835d 100644 --- a/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/PluginsTabViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Settings/Tabs/PluginsTabViewModel.cs @@ -16,7 +16,7 @@ using Artemis.UI.Shared.Services.Interfaces; using Avalonia.Threading; using ReactiveUI; -namespace Artemis.UI.Screens.Settings.Tabs +namespace Artemis.UI.Screens.Settings { public class PluginsTabViewModel : ActivatableViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Sidebar/ContentDialogs/SidebarCategoryEditView.axaml b/src/Avalonia/Artemis.UI/Screens/Sidebar/ContentDialogs/SidebarCategoryEditView.axaml index e75f36ba3..ecc53c82e 100644 --- a/src/Avalonia/Artemis.UI/Screens/Sidebar/ContentDialogs/SidebarCategoryEditView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Sidebar/ContentDialogs/SidebarCategoryEditView.axaml @@ -3,7 +3,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.UI.Screens.Sidebar.ContentDialogs.SidebarCategoryEditView"> + x:Class="Artemis.UI.Screens.Sidebar.SidebarCategoryEditView"> diff --git a/src/Avalonia/Artemis.UI/Screens/Sidebar/ContentDialogs/SidebarCategoryEditView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Sidebar/ContentDialogs/SidebarCategoryEditView.axaml.cs index 4b5d1814e..409ffed41 100644 --- a/src/Avalonia/Artemis.UI/Screens/Sidebar/ContentDialogs/SidebarCategoryEditView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Sidebar/ContentDialogs/SidebarCategoryEditView.axaml.cs @@ -3,7 +3,7 @@ using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; using ReactiveUI; -namespace Artemis.UI.Screens.Sidebar.ContentDialogs +namespace Artemis.UI.Screens.Sidebar { public class SidebarCategoryEditView : ReactiveUserControl { diff --git a/src/Avalonia/Artemis.UI/Screens/Sidebar/ContentDialogs/SidebarCategoryEditViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Sidebar/ContentDialogs/SidebarCategoryEditViewModel.cs index 009eb2c34..a05972cdd 100644 --- a/src/Avalonia/Artemis.UI/Screens/Sidebar/ContentDialogs/SidebarCategoryEditViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Sidebar/ContentDialogs/SidebarCategoryEditViewModel.cs @@ -6,7 +6,7 @@ using FluentAvalonia.UI.Controls; using ReactiveUI; using ReactiveUI.Validation.Extensions; -namespace Artemis.UI.Screens.Sidebar.ContentDialogs +namespace Artemis.UI.Screens.Sidebar { public class SidebarCategoryEditViewModel : ContentDialogViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileConfigurationEditView.axaml b/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileConfigurationEditView.axaml index b4733a770..6280b0825 100644 --- a/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileConfigurationEditView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileConfigurationEditView.axaml @@ -7,9 +7,9 @@ xmlns:converters="clr-namespace:Artemis.UI.Shared.Converters;assembly=Artemis.UI.Shared" xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia" xmlns:svg="clr-namespace:Avalonia.Svg.Skia;assembly=Avalonia.Svg.Skia" - xmlns:local="clr-namespace:Artemis.UI.Screens.Sidebar.Dialogs" + xmlns:local="clr-namespace:Artemis.UI.Screens.Sidebar" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="850" - x:Class="Artemis.UI.Screens.Sidebar.Dialogs.ProfileConfigurationEditView" + x:Class="Artemis.UI.Screens.Sidebar.ProfileConfigurationEditView" Title="{Binding DisplayName}" Icon="/Assets/Images/Logo/bow.ico" Width="800" diff --git a/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileConfigurationEditView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileConfigurationEditView.axaml.cs index 04745fc4d..ce905a533 100644 --- a/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileConfigurationEditView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileConfigurationEditView.axaml.cs @@ -2,7 +2,7 @@ using Avalonia; using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; -namespace Artemis.UI.Screens.Sidebar.Dialogs +namespace Artemis.UI.Screens.Sidebar { public partial class ProfileConfigurationEditView : ReactiveWindow { diff --git a/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileConfigurationEditViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileConfigurationEditViewModel.cs index 769dd68ab..74831634d 100644 --- a/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileConfigurationEditViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileConfigurationEditViewModel.cs @@ -15,7 +15,7 @@ using Material.Icons; using Newtonsoft.Json; using ReactiveUI; -namespace Artemis.UI.Screens.Sidebar.Dialogs +namespace Artemis.UI.Screens.Sidebar { public class ProfileConfigurationEditViewModel : DialogViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileIconViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileIconViewModel.cs index 4d710375c..bb96c51e5 100644 --- a/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileIconViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileIconViewModel.cs @@ -1,7 +1,7 @@ using Artemis.UI.Shared; using Material.Icons; -namespace Artemis.UI.Screens.Sidebar.Dialogs +namespace Artemis.UI.Screens.Sidebar { public class ProfileIconViewModel : ViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileModuleViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileModuleViewModel.cs index 07562dd41..bd4880111 100644 --- a/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileModuleViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Sidebar/Dialogs/ProfileModuleViewModel.cs @@ -2,7 +2,7 @@ using Artemis.UI.Shared; using Material.Icons; -namespace Artemis.UI.Screens.Sidebar.Dialogs +namespace Artemis.UI.Screens.Sidebar { public class ProfileModuleViewModel : ViewModelBase { diff --git a/src/Avalonia/Artemis.UI/Screens/Sidebar/SidebarCategoryViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Sidebar/SidebarCategoryViewModel.cs index 9aad2003f..0323cfb56 100644 --- a/src/Avalonia/Artemis.UI/Screens/Sidebar/SidebarCategoryViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Sidebar/SidebarCategoryViewModel.cs @@ -6,8 +6,6 @@ using System.Threading.Tasks; using Artemis.Core; using Artemis.Core.Services; using Artemis.UI.Ninject.Factories; -using Artemis.UI.Screens.Sidebar.ContentDialogs; -using Artemis.UI.Screens.Sidebar.Dialogs; using Artemis.UI.Services; using Artemis.UI.Shared; using Artemis.UI.Shared.Services.Interfaces; diff --git a/src/Avalonia/Artemis.UI/Screens/Sidebar/SidebarProfileConfigurationViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Sidebar/SidebarProfileConfigurationViewModel.cs index e8557c37c..827c608d8 100644 --- a/src/Avalonia/Artemis.UI/Screens/Sidebar/SidebarProfileConfigurationViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Sidebar/SidebarProfileConfigurationViewModel.cs @@ -1,7 +1,6 @@ using System.Threading.Tasks; using Artemis.Core; using Artemis.Core.Services; -using Artemis.UI.Screens.Sidebar.Dialogs; using Artemis.UI.Shared; using Artemis.UI.Shared.Services.Interfaces; diff --git a/src/Avalonia/Artemis.UI/Screens/Sidebar/SidebarViewModel.cs b/src/Avalonia/Artemis.UI/Screens/Sidebar/SidebarViewModel.cs index 495f9f486..acf9e0978 100644 --- a/src/Avalonia/Artemis.UI/Screens/Sidebar/SidebarViewModel.cs +++ b/src/Avalonia/Artemis.UI/Screens/Sidebar/SidebarViewModel.cs @@ -10,7 +10,6 @@ using Artemis.UI.Ninject.Factories; using Artemis.UI.Screens.Home; using Artemis.UI.Screens.ProfileEditor; using Artemis.UI.Screens.Settings; -using Artemis.UI.Screens.Sidebar.ContentDialogs; using Artemis.UI.Screens.SurfaceEditor; using Artemis.UI.Screens.Workshop; using Artemis.UI.Services; diff --git a/src/Avalonia/Artemis.UI/Screens/SurfaceEditor/SurfaceEditorView.axaml b/src/Avalonia/Artemis.UI/Screens/SurfaceEditor/SurfaceEditorView.axaml index 525044ea5..b22986738 100644 --- a/src/Avalonia/Artemis.UI/Screens/SurfaceEditor/SurfaceEditorView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/SurfaceEditor/SurfaceEditorView.axaml @@ -8,107 +8,97 @@ mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="Artemis.UI.Screens.SurfaceEditor.SurfaceEditorView"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + + \ No newline at end of file diff --git a/src/Avalonia/Artemis.UI/Screens/SurfaceEditor/SurfaceEditorView.axaml.cs b/src/Avalonia/Artemis.UI/Screens/SurfaceEditor/SurfaceEditorView.axaml.cs index 3aa0278d7..526b11739 100644 --- a/src/Avalonia/Artemis.UI/Screens/SurfaceEditor/SurfaceEditorView.axaml.cs +++ b/src/Avalonia/Artemis.UI/Screens/SurfaceEditor/SurfaceEditorView.axaml.cs @@ -11,10 +11,10 @@ namespace Artemis.UI.Screens.SurfaceEditor { public class SurfaceEditorView : ReactiveUserControl { - private readonly SelectionRectangle _selectionRectangle; private readonly Grid _containerGrid; - private readonly ZoomBorder _zoomBorder; + private readonly SelectionRectangle _selectionRectangle; private readonly Border _surfaceBounds; + private readonly ZoomBorder _zoomBorder; public SurfaceEditorView() { @@ -25,8 +25,14 @@ namespace Artemis.UI.Screens.SurfaceEditor _selectionRectangle = this.Find("SelectionRectangle"); _surfaceBounds = this.Find("SurfaceBounds"); + _zoomBorder.PropertyChanged += ZoomBorderOnPropertyChanged; + UpdateZoomBorderBackground(); + } - ((VisualBrush) _zoomBorder.Background).DestinationRect = new RelativeRect(_zoomBorder.OffsetX * -1, _zoomBorder.OffsetY * -1, 20, 20, RelativeUnit.Absolute); + private void ZoomBorderOnPropertyChanged(object? sender, AvaloniaPropertyChangedEventArgs e) + { + if (e.Property.Name == nameof(_zoomBorder.Background)) + UpdateZoomBorderBackground(); } private void InitializeComponent() @@ -36,7 +42,7 @@ namespace Artemis.UI.Screens.SurfaceEditor private void ZoomBorder_OnZoomChanged(object sender, ZoomChangedEventArgs e) { - ((VisualBrush) _zoomBorder.Background).DestinationRect = new RelativeRect(_zoomBorder.OffsetX * -1, _zoomBorder.OffsetY * -1, 20, 20, RelativeUnit.Absolute); + UpdateZoomBorderBackground(); _selectionRectangle.BorderThickness = 1 / _zoomBorder.ZoomX; _surfaceBounds.BorderThickness = new Thickness(2 / _zoomBorder.ZoomX); } @@ -53,7 +59,9 @@ namespace Artemis.UI.Screens.SurfaceEditor ViewModel?.StartMouseDrag(e.GetPosition(_containerGrid)); } else + { ViewModel?.ClearSelection(); + } } private void ZoomBorder_OnPointerMoved(object? sender, PointerEventArgs e) @@ -61,7 +69,7 @@ namespace Artemis.UI.Screens.SurfaceEditor if (!e.GetCurrentPoint(this).Properties.IsLeftButtonPressed) return; - if (ReferenceEquals(e.Pointer.Captured, sender)) + if (ReferenceEquals(e.Pointer.Captured, sender)) ViewModel?.UpdateMouseDrag(e.GetPosition(_containerGrid)); } @@ -76,5 +84,11 @@ namespace Artemis.UI.Screens.SurfaceEditor e.Pointer.Capture(null); } } + + private void UpdateZoomBorderBackground() + { + if (_zoomBorder.Background is VisualBrush visualBrush) + visualBrush.DestinationRect = new RelativeRect(_zoomBorder.OffsetX * -1, _zoomBorder.OffsetY * -1, 20, 20, RelativeUnit.Absolute); + } } } \ No newline at end of file diff --git a/src/Avalonia/Artemis.UI/Screens/Workshop/WorkshopView.axaml b/src/Avalonia/Artemis.UI/Screens/Workshop/WorkshopView.axaml index 6a71044e9..bb411e736 100644 --- a/src/Avalonia/Artemis.UI/Screens/Workshop/WorkshopView.axaml +++ b/src/Avalonia/Artemis.UI/Screens/Workshop/WorkshopView.axaml @@ -6,27 +6,28 @@ xmlns:controls="clr-namespace:Artemis.UI.Shared.Controls;assembly=Artemis.UI.Shared" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="Artemis.UI.Screens.Workshop.WorkshopView"> - - Workshop!! :3 - - - Notification tests - - - - + + + Workshop!! :3 + + + Notification tests + + + + - - - - - + + + + + \ No newline at end of file