Browse Source

Dock node graph to document area

flabbet 7 months ago
parent
commit
f6c2556d8e
1 changed files with 18 additions and 14 deletions
  1. 18 14
      src/PixiEditor/ViewModels/Dock/LayoutManager.cs

+ 18 - 14
src/PixiEditor/ViewModels/Dock/LayoutManager.cs

@@ -39,7 +39,7 @@ internal class LayoutManager
         PaletteViewerDockViewModel paletteViewerDockViewModel =
         PaletteViewerDockViewModel paletteViewerDockViewModel =
             new(mainViewModel.ColorsSubViewModel, mainViewModel.DocumentManagerSubViewModel);
             new(mainViewModel.ColorsSubViewModel, mainViewModel.DocumentManagerSubViewModel);
         TimelineDockViewModel timelineDockViewModel = new(mainViewModel.DocumentManagerSubViewModel);
         TimelineDockViewModel timelineDockViewModel = new(mainViewModel.DocumentManagerSubViewModel);
-        
+
         NodeGraphDockViewModel nodeGraphDockViewModel = new(mainViewModel.DocumentManagerSubViewModel);
         NodeGraphDockViewModel nodeGraphDockViewModel = new(mainViewModel.DocumentManagerSubViewModel);
         /*
         /*
         ChannelsDockViewModel channelsDockDockViewModel = new(mainViewModel.WindowSubViewModel);
         ChannelsDockViewModel channelsDockDockViewModel = new(mainViewModel.WindowSubViewModel);
@@ -56,7 +56,7 @@ internal class LayoutManager
         /*
         /*
         RegisterDockable(channelsDockDockViewModel);
         RegisterDockable(channelsDockDockViewModel);
         */
         */
-        
+
         DefaultLayout = new LayoutTree
         DefaultLayout = new LayoutTree
         {
         {
             Root = new DockableTree
             Root = new DockableTree
@@ -70,11 +70,7 @@ internal class LayoutManager
                     SplitDirection = DockingDirection.Bottom,
                     SplitDirection = DockingDirection.Bottom,
                     SecondSize = 300,
                     SecondSize = 300,
                     AutoExpand = true,
                     AutoExpand = true,
-                    Second = new DockableArea()
-                    {
-                        Id = "TimelineArea",
-                        CloseRegionOnEmpty = false
-                    }
+                    Second = new DockableArea() { Id = "TimelineArea", CloseRegionOnEmpty = false }
                 },
                 },
                 SecondSize = 360,
                 SecondSize = 360,
                 SplitDirection = DockingDirection.Right,
                 SplitDirection = DockingDirection.Right,
@@ -98,8 +94,7 @@ internal class LayoutManager
                         SplitDirection = DockingDirection.Bottom,
                         SplitDirection = DockingDirection.Bottom,
                         Second = new DockableArea
                         Second = new DockableArea
                         {
                         {
-                            Id = "LayersArea",
-                            Dockables = [ DockContext.CreateDockable(layersDockViewModel) ]
+                            Id = "LayersArea", Dockables = [DockContext.CreateDockable(layersDockViewModel)]
                         },
                         },
                     },
                     },
                     FirstSize = 0.66,
                     FirstSize = 0.66,
@@ -212,14 +207,23 @@ internal class LayoutManager
             bool attached = false;
             bool attached = false;
             ActiveLayout.Root.Traverse(((element, tree) =>
             ActiveLayout.Root.Traverse(((element, tree) =>
             {
             {
-                if (element is IDockableHost host && element.Id == $"{id}Area" && !attached)
+                if (element is IDockableHost host)
                 {
                 {
-                    host.AddDockable(created);
-                    host.ActiveDockable = created;
-                    attached = true;
+                    if (element.Id == $"{id}Area" && !attached)
+                    {
+                        host.AddDockable(created);
+                        host.ActiveDockable = created;
+                        attached = true;
+                    }
+                    else if (id == NodeGraphDockViewModel.TabId && element.Id == "DocumentArea")
+                    {
+                        host.AddDockable(created);
+                        host.ActiveDockable = created;
+                        attached = true;
+                    }
                 }
                 }
             }));
             }));
-            
+
             if (!attached)
             if (!attached)
             {
             {
                 DockContext.Float(created, 0, 0);
                 DockContext.Float(created, 0, 0);