Made Object3D listen for and update on Children modified
added Immutable Attribute added Hide From Tree View Attribute issue: MatterHackers/MCCentral#4806 support remove does not update tree view
This commit is contained in:
parent
adc1b4862e
commit
4c6db60ec6
8 changed files with 111 additions and 33 deletions
|
|
@ -295,9 +295,31 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
var menuTheme = this.MenuTheme;
|
||||
|
||||
if (addInSubmenu)
|
||||
if (!selectedItemType.IsDefined(typeof(ImmutableAttribute), false))
|
||||
{
|
||||
popupMenu.CreateSubMenu("Modify".Localize(), this.MenuTheme, (modifyMenu) =>
|
||||
if (addInSubmenu)
|
||||
{
|
||||
popupMenu.CreateSubMenu("Modify".Localize(), this.MenuTheme, (modifyMenu) =>
|
||||
{
|
||||
foreach (var nodeOperation in this.Graph.Operations)
|
||||
{
|
||||
foreach (var type in nodeOperation.MappedTypes)
|
||||
{
|
||||
if (type.IsAssignableFrom(selectedItemType)
|
||||
&& (nodeOperation.IsVisible?.Invoke(selectedItem) != false)
|
||||
&& nodeOperation.IsEnabled?.Invoke(selectedItem) != false)
|
||||
{
|
||||
var subMenuItem = modifyMenu.CreateMenuItem(nodeOperation.Title, nodeOperation.IconCollector?.Invoke(menuTheme));
|
||||
subMenuItem.Click += (s2, e2) =>
|
||||
{
|
||||
nodeOperation.Operation(selectedItem, scene).ConfigureAwait(false);
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var nodeOperation in this.Graph.Operations)
|
||||
{
|
||||
|
|
@ -307,33 +329,14 @@ namespace MatterHackers.MatterControl
|
|||
&& (nodeOperation.IsVisible?.Invoke(selectedItem) != false)
|
||||
&& nodeOperation.IsEnabled?.Invoke(selectedItem) != false)
|
||||
{
|
||||
var subMenuItem = modifyMenu.CreateMenuItem(nodeOperation.Title, nodeOperation.IconCollector?.Invoke(menuTheme));
|
||||
subMenuItem.Click += (s2, e2) =>
|
||||
menuItem = popupMenu.CreateMenuItem(nodeOperation.Title, nodeOperation.IconCollector?.Invoke(menuTheme));
|
||||
menuItem.Click += (s2, e2) =>
|
||||
{
|
||||
nodeOperation.Operation(selectedItem, scene).ConfigureAwait(false);
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var nodeOperation in this.Graph.Operations)
|
||||
{
|
||||
foreach (var type in nodeOperation.MappedTypes)
|
||||
{
|
||||
if (type.IsAssignableFrom(selectedItemType)
|
||||
&& (nodeOperation.IsVisible?.Invoke(selectedItem) != false)
|
||||
&& nodeOperation.IsEnabled?.Invoke(selectedItem) != false)
|
||||
{
|
||||
menuItem = popupMenu.CreateMenuItem(nodeOperation.Title, nodeOperation.IconCollector?.Invoke(menuTheme));
|
||||
menuItem.Click += (s2, e2) =>
|
||||
{
|
||||
nodeOperation.Operation(selectedItem, scene).ConfigureAwait(false);
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue