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