Fix loading state - SelectedObjectPanel/LayerPosition/TumbleCube
This commit is contained in:
parent
a28e92bd27
commit
98b109df13
5 changed files with 28 additions and 33 deletions
|
|
@ -105,9 +105,10 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
HAnchor = HAnchor.Right | HAnchor.Absolute,
|
||||
Width = 60,
|
||||
Margin = new BorderDouble(0, 80, 8, 42),
|
||||
Maximum = sceneContext.LoadedGCode?.LayerCount ?? 1
|
||||
};
|
||||
view3DContainer.AddChild(layerScrollbar);
|
||||
|
||||
|
||||
layerRenderRatioSlider = new DoubleSolidSlider(new Vector2(), SliceLayerSelector.SliderWidth);
|
||||
layerRenderRatioSlider.FirstValue = 0;
|
||||
layerRenderRatioSlider.FirstValueChanged += (s, e) =>
|
||||
|
|
@ -130,12 +131,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
};
|
||||
view3DContainer.AddChild(layerRenderRatioSlider);
|
||||
|
||||
sceneContext.LoadedGCodeChanged += BedPlate_LoadedGCodeChanged;
|
||||
|
||||
view3DContainer.AddChild(PrintProgressWidget(printer));
|
||||
|
||||
AddSettingsTabBar(leftToRight, view3DWidget);
|
||||
|
||||
sceneContext.LoadedGCodeChanged += BedPlate_LoadedGCodeChanged;
|
||||
|
||||
view3DWidget.BoundsChanged += (s, e) =>
|
||||
{
|
||||
SetSliderSizes();
|
||||
|
|
@ -209,19 +210,21 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
gcode3DWidget.Visible = viewMode == PartViewMode.Layers3D;
|
||||
gcode2DWidget.Visible = viewMode == PartViewMode.Layers2D;
|
||||
|
||||
view3DWidget.meshViewerWidget.IsActive = !showSliceLayers;
|
||||
view3DWidget.meshViewerWidget.ModelView = viewMode == PartViewMode.Model;
|
||||
|
||||
if (showSliceLayers)
|
||||
{
|
||||
printer.Bed.Scene.ClearSelection();
|
||||
}
|
||||
|
||||
var slidersVisible = sceneContext.RenderInfo != null && showSliceLayers;
|
||||
var slidersVisible = viewMode != PartViewMode.Model && printer.Bed.LoadedGCode?.LayerCount > 0;
|
||||
|
||||
layerScrollbar.Visible = slidersVisible;
|
||||
layerRenderRatioSlider.Visible = slidersVisible;
|
||||
|
||||
view3DWidget.selectedObjectContainer.Visible = !showSliceLayers && sceneContext.Scene.HasSelection;
|
||||
view3DWidget.selectedObjectContainer.Visible = view3DWidget.meshViewerWidget.ModelView
|
||||
&& sceneContext.Scene.HasSelection
|
||||
&& printer?.ViewState.ViewMode != PartViewMode.Layers2D;
|
||||
}
|
||||
|
||||
private GCodeFile loadedGCode => sceneContext.LoadedGCode;
|
||||
|
|
@ -422,7 +425,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
private void Parent_KeyDown(object sender, KeyEventArgs keyEvent)
|
||||
{
|
||||
if (gcode3DWidget.Visible)
|
||||
if (gcode3DWidget.Visible
|
||||
|| gcode2DWidget.Visible)
|
||||
{
|
||||
switch (keyEvent.KeyCode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -50,10 +50,10 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
private ThemeConfig theme;
|
||||
private View3DWidget view3DWidget;
|
||||
private InteractiveScene scene;
|
||||
|
||||
private PrinterConfig printer;
|
||||
private Dictionary<Type, HashSet<IObject3DEditor>> objectEditorsByType;
|
||||
|
||||
public SelectedObjectPanel(View3DWidget view3DWidget, InteractiveScene scene, ThemeConfig theme)
|
||||
public SelectedObjectPanel(View3DWidget view3DWidget, InteractiveScene scene, ThemeConfig theme, PrinterConfig printer)
|
||||
: base(FlowDirection.TopToBottom)
|
||||
{
|
||||
this.HAnchor |= HAnchor.Left;
|
||||
|
|
@ -64,6 +64,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
this.view3DWidget = view3DWidget;
|
||||
this.theme = theme;
|
||||
this.scene = scene;
|
||||
this.printer = printer;
|
||||
|
||||
this.AddChild(itemName = new TextWidget("", textColor: ActiveTheme.Instance.PrimaryTextColor)
|
||||
{
|
||||
|
|
@ -167,7 +168,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
this.editorPanel.RemoveAllChildren();
|
||||
|
||||
this.Parent.Visible = true;
|
||||
var viewMode = printer?.ViewState.ViewMode;
|
||||
|
||||
this.Parent.Visible = viewMode == null || viewMode == PartViewMode.Model;
|
||||
|
||||
HashSet<IObject3DEditor> mappedEditors;
|
||||
objectEditorsByType.TryGetValue(selectedItem.GetType(), out mappedEditors);
|
||||
|
|
@ -200,12 +203,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
HAnchor = HAnchor.Stretch
|
||||
};
|
||||
|
||||
//dropDownList.SelectionChanged += (s, e) =>
|
||||
//{
|
||||
// ShowObjectEditor(
|
||||
// mappedEditors.Where(m => m.Name == dropDownList.SelectedLabel).FirstOrDefault());
|
||||
//};
|
||||
|
||||
foreach (IObject3DEditor editor in mappedEditors)
|
||||
{
|
||||
MenuItem menuItem = dropDownList.AddItem(editor.Name);
|
||||
|
|
|
|||
|
|
@ -75,18 +75,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
this.AddChild(labelContainer);
|
||||
}
|
||||
|
||||
public override void OnLoad(EventArgs args)
|
||||
{
|
||||
this.AddChild(new TumbleCubeControl(this)
|
||||
{
|
||||
Margin = new BorderDouble(50, 0, 0, 50),
|
||||
VAnchor = VAnchor.Top,
|
||||
HAnchor = HAnchor.Left,
|
||||
});
|
||||
|
||||
base.OnLoad(args);
|
||||
}
|
||||
|
||||
internal void SetRenderTarget(GuiWidget renderSource)
|
||||
{
|
||||
renderSource.AfterDraw += RenderSource_DrawExtra;
|
||||
|
|
|
|||
|
|
@ -317,7 +317,7 @@ namespace MatterHackers.MeshVisualizer
|
|||
|
||||
public RenderTypes RenderType
|
||||
{
|
||||
get => this.IsActive ? renderType : RenderTypes.Wireframe;
|
||||
get => this.ModelView ? renderType : RenderTypes.Wireframe;
|
||||
set
|
||||
{
|
||||
if (renderType != value)
|
||||
|
|
@ -415,7 +415,7 @@ namespace MatterHackers.MeshVisualizer
|
|||
base.OnClosed(e);
|
||||
}
|
||||
|
||||
public bool IsActive { get; set; } = true;
|
||||
public bool ModelView { get; set; } = true;
|
||||
|
||||
private void DrawObject(IObject3D object3D, List<IObject3D> transparentMeshes, bool parentSelected, DrawEventArgs e)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -428,7 +428,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
this.TrackballTumbleWidget.TransformState = TrackBallController.MouseDownType.Rotation;
|
||||
|
||||
selectedObjectPanel = new SelectedObjectPanel(this, this.Scene, theme)
|
||||
selectedObjectPanel = new SelectedObjectPanel(this, this.Scene, theme, printer)
|
||||
{
|
||||
BackgroundColor = theme.InteractionLayerOverlayColor,
|
||||
VAnchor = VAnchor.Top | VAnchor.Fit,
|
||||
|
|
@ -444,9 +444,16 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
SplitterWidth = theme.SplitterWidth,
|
||||
Visible = false,
|
||||
};
|
||||
this.AddChild(selectedObjectContainer);
|
||||
this.InteractionLayer.AddChild(selectedObjectContainer);
|
||||
selectedObjectContainer.AddChild(selectedObjectPanel);
|
||||
|
||||
this.InteractionLayer.AddChild(new TumbleCubeControl(this.InteractionLayer)
|
||||
{
|
||||
Margin = new BorderDouble(50, 0, 0, 50),
|
||||
VAnchor = VAnchor.Top,
|
||||
HAnchor = HAnchor.Left,
|
||||
});
|
||||
|
||||
UiThread.RunOnIdle(AutoSpin);
|
||||
|
||||
// Wire up CommunicationStateChanged to lock footer bar when SyncToPrint is enabled
|
||||
|
|
@ -1786,7 +1793,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
var selectedItem = Scene.SelectedItem;
|
||||
|
||||
|
||||
if (materialButtons?.Count > 0)
|
||||
{
|
||||
bool setSelection = false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue