improve overflow menu on properties panel
default to outline mode issue: MatterHackers/MCCentral#4136 Consider if Modify menu in Overflow menu improves usage
This commit is contained in:
parent
bed9bed52b
commit
4e0962a4e7
5 changed files with 32 additions and 13 deletions
|
|
@ -137,7 +137,7 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
private static PrinterConfig emptyPrinter = new PrinterConfig(PrinterSettings.Empty);
|
||||
|
||||
public PopupMenu GetActionMenuForSceneItem(IObject3D selectedItem, InteractiveScene scene)
|
||||
public PopupMenu GetActionMenuForSceneItem(IObject3D selectedItem, InteractiveScene scene, bool addInSubmenu)
|
||||
{
|
||||
var popupMenu = new PopupMenu(ApplicationController.Instance.MenuTheme);
|
||||
|
||||
|
|
@ -162,12 +162,12 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
popupMenu.CreateHorizontalLine();
|
||||
|
||||
if (true) //allowOperations)
|
||||
var selectedItemType = selectedItem.GetType();
|
||||
|
||||
var menuTheme = ApplicationController.Instance.MenuTheme;
|
||||
|
||||
if (addInSubmenu)
|
||||
{
|
||||
var selectedItemType = selectedItem.GetType();
|
||||
|
||||
var menuTheme = ApplicationController.Instance.MenuTheme;
|
||||
|
||||
popupMenu.CreateSubMenu("Modify".Localize(), ApplicationController.Instance.MenuTheme, (modifyMenu) =>
|
||||
{
|
||||
foreach (var nodeOperation in ApplicationController.Instance.Graph.Operations)
|
||||
|
|
@ -187,7 +187,26 @@ namespace MatterHackers.MatterControl
|
|||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var nodeOperation in ApplicationController.Instance.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);
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return popupMenu;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -633,7 +633,7 @@ namespace MatterHackers.MatterControl
|
|||
public class SceneContextViewState
|
||||
{
|
||||
private BedConfig sceneContext;
|
||||
private RenderTypes renderType = RenderTypes.Shaded;
|
||||
private RenderTypes renderType = RenderTypes.Outlines;
|
||||
|
||||
public SceneContextViewState(BedConfig sceneContext)
|
||||
{
|
||||
|
|
@ -643,7 +643,7 @@ namespace MatterHackers.MatterControl
|
|||
string renderTypeString = UserSettings.Instance.get(UserSettingsKey.defaultRenderSetting);
|
||||
if (renderTypeString == null)
|
||||
{
|
||||
renderTypeString = "Shaded";
|
||||
renderTypeString = "Outlines";
|
||||
UserSettings.Instance.set(UserSettingsKey.defaultRenderSetting, renderTypeString);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
};
|
||||
overflowButton.DynamicPopupContent = () =>
|
||||
{
|
||||
return ApplicationController.Instance.GetActionMenuForSceneItem(item, sceneContext.Scene);
|
||||
return ApplicationController.Instance.GetActionMenuForSceneItem(item, sceneContext.Scene, false);
|
||||
};
|
||||
toolbar.AddChild(overflowButton);
|
||||
|
||||
|
|
|
|||
|
|
@ -190,7 +190,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
{
|
||||
UiThread.RunOnIdle(() =>
|
||||
{
|
||||
var menu = ApplicationController.Instance.GetActionMenuForSceneItem((IObject3D)treeView.SelectedNode.Tag, Scene);
|
||||
var menu = ApplicationController.Instance.GetActionMenuForSceneItem((IObject3D)treeView.SelectedNode.Tag, Scene, true);
|
||||
|
||||
var systemWindow = this.Parents<SystemWindow>().FirstOrDefault();
|
||||
systemWindow.ShowPopup(
|
||||
|
|
@ -1215,7 +1215,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
UiThread.RunOnIdle(() =>
|
||||
{
|
||||
var menu = ApplicationController.Instance.GetActionMenuForSceneItem(selectedItem, Scene);
|
||||
var menu = ApplicationController.Instance.GetActionMenuForSceneItem(selectedItem, Scene, true);
|
||||
|
||||
var systemWindow = this.Parents<SystemWindow>().FirstOrDefault();
|
||||
systemWindow.ShowPopup(
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 3dfdf792b388971298bbeb1f4cef338fac5d412d
|
||||
Subproject commit 6490424fdd99eac73e75f4d178ef0f55031d3913
|
||||
Loading…
Add table
Add a link
Reference in a new issue