diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index f0ad78eda..29b6348ac 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit f0ad78edaad8ff552419ecd16dbab9c8f285aade +Subproject commit 29b6348acd4a4779a52bc193009343e637efff21 diff --git a/Utilities/InspectForm.cs b/Utilities/InspectForm.cs index b0eb3f204..2e760ad22 100644 --- a/Utilities/InspectForm.cs +++ b/Utilities/InspectForm.cs @@ -27,12 +27,22 @@ namespace MatterHackers.MatterControl : this(inspectedSystemWindow) { this.scene = scene; - + this.scene.ChildrenModified += Scene_ChildrenModified; sceneTreeView.SuspendLayout(); this.AddTree(scene, null, "Scene"); sceneTreeView.ResumeLayout(); } + private void Scene_ChildrenModified(object sender, EventArgs e) + { + sceneTreeView.SuspendLayout(); + sceneTreeView.Nodes.Clear(); + sceneTreeNodes.Clear(); + + this.AddTree(scene, null, "Scene"); + sceneTreeView.ResumeLayout(); + } + public InspectForm(GuiWidget inspectedSystemWindow) { InitializeComponent(); @@ -238,6 +248,8 @@ namespace MatterHackers.MatterControl parentNode.Nodes.Add(node); } + node.Expand(); + return node; } @@ -249,15 +261,21 @@ namespace MatterHackers.MatterControl }; sceneTreeNodes.Add(item, node); + if (parentNode == null) { sceneTreeView.Nodes.Add(node); + node.Expand(); + } else { parentNode.Nodes.Add(node); + parentNode.Expand(); } + + return node; } @@ -389,6 +407,11 @@ namespace MatterHackers.MatterControl inspectedSystemWindow.AfterDraw -= systemWindow_AfterDraw; inspectedSystemWindow.MouseMove -= systemWindow_MouseMove; + if (scene != null) + { + scene.ChildrenModified -= Scene_ChildrenModified; + } + if (mouseUpWidget != null) { mouseUpWidget.MouseUp -= inspectedWidget_MouseUp; @@ -433,20 +456,19 @@ namespace MatterHackers.MatterControl private void SceneTreeView_DrawNode(object sender, DrawTreeNodeEventArgs e) { var node = e.Node; - if (node.IsVisible) { var item = node.Tag as IObject3D; Brush brush; - //if (node == activeTreeNode) - //{ - // brush = SystemBrushes.Highlight; - //} - //else if (aggAncestryTree.Contains(item)) - //{ - // brush = Brushes.LightBlue; - //} - //else + + if (scene.HasSelection + && (scene.SelectedItem == item + || scene.SelectedItem.Children.Contains(item))) + { + + brush = SystemBrushes.Highlight; + } + else { brush = Brushes.Transparent; } @@ -459,7 +481,6 @@ namespace MatterHackers.MatterControl node == activeTreeNode ? boldFont : node.NodeFont, new Point(node.Bounds.Left, node.Bounds.Top), SystemColors.ControlText, - //item.ActuallyVisibleOnScreen() ? SystemColors.ControlText : SystemColors.GrayText, Color.Transparent); } }