From a2a7f9157bcfe871b1e6e3c2aee73c551925efd9 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Mon, 25 Sep 2017 07:01:01 -0700 Subject: [PATCH 1/2] Refresh scene tree on change --- Submodules/agg-sharp | 2 +- Utilities/InspectForm.cs | 25 ++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) 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..c512629dc 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; From acbe1199d8b83050a05a2f79bb1550ed41e0a564 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Mon, 25 Sep 2017 08:06:18 -0700 Subject: [PATCH 2/2] Draw selection --- Utilities/InspectForm.cs | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/Utilities/InspectForm.cs b/Utilities/InspectForm.cs index c512629dc..2e760ad22 100644 --- a/Utilities/InspectForm.cs +++ b/Utilities/InspectForm.cs @@ -456,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; } @@ -482,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); } }