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.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);
}
}