Merge pull request #2486 from jlewin/design_tools

Refresh scene tree on change
This commit is contained in:
johnlewin 2017-09-25 08:16:41 -07:00 committed by GitHub
commit c81daa3b02
2 changed files with 34 additions and 13 deletions

@ -1 +1 @@
Subproject commit f0ad78edaad8ff552419ecd16dbab9c8f285aade Subproject commit 29b6348acd4a4779a52bc193009343e637efff21

View file

@ -27,12 +27,22 @@ namespace MatterHackers.MatterControl
: this(inspectedSystemWindow) : this(inspectedSystemWindow)
{ {
this.scene = scene; this.scene = scene;
this.scene.ChildrenModified += Scene_ChildrenModified;
sceneTreeView.SuspendLayout(); sceneTreeView.SuspendLayout();
this.AddTree(scene, null, "Scene"); this.AddTree(scene, null, "Scene");
sceneTreeView.ResumeLayout(); 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) public InspectForm(GuiWidget inspectedSystemWindow)
{ {
InitializeComponent(); InitializeComponent();
@ -238,6 +248,8 @@ namespace MatterHackers.MatterControl
parentNode.Nodes.Add(node); parentNode.Nodes.Add(node);
} }
node.Expand();
return node; return node;
} }
@ -249,15 +261,21 @@ namespace MatterHackers.MatterControl
}; };
sceneTreeNodes.Add(item, node); sceneTreeNodes.Add(item, node);
if (parentNode == null) if (parentNode == null)
{ {
sceneTreeView.Nodes.Add(node); sceneTreeView.Nodes.Add(node);
node.Expand();
} }
else else
{ {
parentNode.Nodes.Add(node); parentNode.Nodes.Add(node);
parentNode.Expand();
} }
return node; return node;
} }
@ -389,6 +407,11 @@ namespace MatterHackers.MatterControl
inspectedSystemWindow.AfterDraw -= systemWindow_AfterDraw; inspectedSystemWindow.AfterDraw -= systemWindow_AfterDraw;
inspectedSystemWindow.MouseMove -= systemWindow_MouseMove; inspectedSystemWindow.MouseMove -= systemWindow_MouseMove;
if (scene != null)
{
scene.ChildrenModified -= Scene_ChildrenModified;
}
if (mouseUpWidget != null) if (mouseUpWidget != null)
{ {
mouseUpWidget.MouseUp -= inspectedWidget_MouseUp; mouseUpWidget.MouseUp -= inspectedWidget_MouseUp;
@ -433,20 +456,19 @@ namespace MatterHackers.MatterControl
private void SceneTreeView_DrawNode(object sender, DrawTreeNodeEventArgs e) private void SceneTreeView_DrawNode(object sender, DrawTreeNodeEventArgs e)
{ {
var node = e.Node; var node = e.Node;
if (node.IsVisible) if (node.IsVisible)
{ {
var item = node.Tag as IObject3D; var item = node.Tag as IObject3D;
Brush brush; Brush brush;
//if (node == activeTreeNode)
//{ if (scene.HasSelection
// brush = SystemBrushes.Highlight; && (scene.SelectedItem == item
//} || scene.SelectedItem.Children.Contains(item)))
//else if (aggAncestryTree.Contains(item)) {
//{
// brush = Brushes.LightBlue; brush = SystemBrushes.Highlight;
//} }
//else else
{ {
brush = Brushes.Transparent; brush = Brushes.Transparent;
} }
@ -459,7 +481,6 @@ namespace MatterHackers.MatterControl
node == activeTreeNode ? boldFont : node.NodeFont, node == activeTreeNode ? boldFont : node.NodeFont,
new Point(node.Bounds.Left, node.Bounds.Top), new Point(node.Bounds.Left, node.Bounds.Top),
SystemColors.ControlText, SystemColors.ControlText,
//item.ActuallyVisibleOnScreen() ? SystemColors.ControlText : SystemColors.GrayText,
Color.Transparent); Color.Transparent);
} }
} }