Browse Source

Fixed tests

CPKreuz 4 years ago
parent
commit
f8e8edf82f

+ 7 - 0
PixiEditor/ViewModels/ISetableOwner.cs

@@ -0,0 +1,7 @@
+namespace PixiEditor.ViewModels
+{
+    public interface ISetableOwner<TOwner>
+    {
+        public void SetOwner(TOwner owner);
+    }
+}

+ 11 - 1
PixiEditor/ViewModels/SubViewModels/Main/WindowViewModel.cs

@@ -5,12 +5,17 @@ using System.Linq;
 
 namespace PixiEditor.ViewModels.SubViewModels.Main
 {
-    public class WindowViewModel : SubViewModel<ViewModelMain>
+    public class WindowViewModel : SubViewModel<ViewModelMain>, ISetableOwner<ViewModelMain>
     {
         public MainWindow MainWindow { get; private set; }
 
         public RelayCommand ShowAvalonDockWindowCommand { get; set; }
 
+        public WindowViewModel()
+            : this(null)
+        {
+        }
+
         public WindowViewModel(ViewModelMain owner)
             : base(owner)
         {
@@ -19,6 +24,11 @@ namespace PixiEditor.ViewModels.SubViewModels.Main
             MainWindow = (MainWindow)System.Windows.Application.Current?.MainWindow;
         }
 
+        public void SetOwner(ViewModelMain owner)
+        {
+            Owner = owner;
+        }
+
         private void ShowAvalonDockWindow(object parameter)
         {
             string id = (string)parameter;

+ 4 - 2
PixiEditor/ViewModels/ViewModelMain.cs

@@ -70,7 +70,7 @@ namespace PixiEditor.ViewModels
 
         public StylusViewModel StylusSubViewModel { get; set; }
 
-        public WindowViewModel WindowViewModel { get; set; }
+        public WindowViewModel WindowSubViewModel { get; set; }
 
         public IPreferences Preferences { get; set; }
 
@@ -114,7 +114,9 @@ namespace PixiEditor.ViewModels
             DocumentSubViewModel = new DocumentViewModel(this);
             DiscordViewModel = new DiscordViewModel(this, "764168193685979138");
             UpdateSubViewModel = new UpdateViewModel(this);
-            WindowViewModel = new WindowViewModel(this);
+
+            WindowSubViewModel = services.GetService<WindowViewModel>();
+            WindowSubViewModel?.SetOwner(this);
 
             StylusSubViewModel = services.GetService<StylusViewModel>();
             StylusSubViewModel?.SetOwner(this);

+ 1 - 1
PixiEditor/Views/MainWindow.xaml

@@ -137,7 +137,7 @@
                     <MenuItem Header="_Open Startup Window" ToolTip="Hello there!"
                               Command="{Binding MiscSubViewModel.OpenHelloThereWindowCommand}"/>
                     <MenuItem Header="_Open Navigation Window"
-                              Command="{Binding WindowViewModel.ShowAvalonDockWindowCommand}" CommandParameter="navigation"/>
+                              Command="{Binding WindowSubViewModel.ShowAvalonDockWindowCommand}" CommandParameter="navigation"/>
                 </MenuItem>
                 <MenuItem Header="_Help">
                     <MenuItem Header="_Documentation" Command="{Binding MiscSubViewModel.OpenHyperlinkCommand}"

+ 2 - 1
PixiEditor/Views/MainWindow.xaml.cs

@@ -34,7 +34,8 @@ namespace PixiEditor
 
             IServiceCollection services = new ServiceCollection()
                 .AddSingleton<IPreferences>(preferences)
-                .AddSingleton(new StylusViewModel());
+                .AddSingleton<StylusViewModel>()
+                .AddSingleton<WindowViewModel>();
 
             pixiEditorLogo = BitmapFactory.FromResource(@"/Images/PixiEditorLogo.png");