Changes for new Mesh viewer api
Finer settings for what causes reload of ui in slice settings.
This commit is contained in:
parent
0838cc5e0f
commit
5c506e7317
6 changed files with 72 additions and 23 deletions
|
|
@ -186,11 +186,20 @@ namespace MatterHackers.MatterControl
|
|||
ColumnTwo.CloseAndRemoveAllChildren();
|
||||
|
||||
double buildHeight = ActiveSliceSettings.Instance.BuildHeight;
|
||||
part3DView = new View3DTransformPart(PrinterConnectionAndCommunication.Instance.ActivePrintItem, new Vector3(ActiveSliceSettings.Instance.BedSize, buildHeight), ActiveSliceSettings.Instance.BedShape, View3DTransformPart.WindowType.Embeded, View3DTransformPart.AutoRotate.Enabled);
|
||||
part3DView = new View3DTransformPart(PrinterConnectionAndCommunication.Instance.ActivePrintItem,
|
||||
new Vector3(ActiveSliceSettings.Instance.BedSize, buildHeight),
|
||||
ActiveSliceSettings.Instance.BedCenter,
|
||||
ActiveSliceSettings.Instance.BedShape,
|
||||
View3DTransformPart.WindowType.Embeded,
|
||||
View3DTransformPart.AutoRotate.Enabled);
|
||||
part3DView.Margin = new BorderDouble(bottom: 4);
|
||||
part3DView.AnchorAll();
|
||||
|
||||
partGcodeView = new ViewGcodeBasic(PrinterConnectionAndCommunication.Instance.ActivePrintItem, new Vector3(ActiveSliceSettings.Instance.BedSize, buildHeight), ActiveSliceSettings.Instance.BedShape, ActiveSliceSettings.Instance.BedCenter, false);
|
||||
partGcodeView = new ViewGcodeBasic(PrinterConnectionAndCommunication.Instance.ActivePrintItem,
|
||||
new Vector3(ActiveSliceSettings.Instance.BedSize, buildHeight),
|
||||
ActiveSliceSettings.Instance.BedCenter,
|
||||
ActiveSliceSettings.Instance.BedShape,
|
||||
false);
|
||||
partGcodeView.AnchorAll();
|
||||
|
||||
ColumnTwo.AddChild(part3DView);
|
||||
|
|
|
|||
|
|
@ -43,12 +43,13 @@ using MatterHackers.VectorMath;
|
|||
using MatterHackers.MatterControl.DataStorage;
|
||||
using MatterHackers.MatterControl.PrintQueue;
|
||||
using MatterHackers.MeshVisualizer;
|
||||
using MatterHackers.MatterControl.SlicerConfiguration;
|
||||
|
||||
namespace MatterHackers.MatterControl.PartPreviewWindow
|
||||
{
|
||||
public class PartPreview3DWidget : PartPreviewWidget
|
||||
{
|
||||
protected MeshViewerWidget meshViewerWidget;
|
||||
public MeshViewerWidget meshViewerWidget;
|
||||
event EventHandler unregisterEvents;
|
||||
|
||||
protected ViewControls3D viewControls3D;
|
||||
|
|
@ -57,6 +58,31 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
{
|
||||
}
|
||||
|
||||
public override void OnParentChanged(EventArgs e)
|
||||
{
|
||||
ActivePrinterProfile.Instance.ActivePrinterChanged.RegisterEvent((sender, changeEventArgs) =>
|
||||
{
|
||||
double buildHeight = ActiveSliceSettings.Instance.BuildHeight;
|
||||
|
||||
UiThread.RunOnIdle((state) =>
|
||||
{
|
||||
#if false
|
||||
"bed_size",
|
||||
"print_center",
|
||||
"build_height",
|
||||
"bed_shape",
|
||||
"center_part_on_bed",
|
||||
#endif
|
||||
meshViewerWidget.CreatePrintBed(
|
||||
new Vector3(ActiveSliceSettings.Instance.BedSize, buildHeight),
|
||||
ActiveSliceSettings.Instance.BedCenter,
|
||||
ActiveSliceSettings.Instance.BedShape);
|
||||
});
|
||||
}, ref unregisterEvents);
|
||||
|
||||
base.OnParentChanged(e);
|
||||
}
|
||||
|
||||
public override void OnClosed(EventArgs e)
|
||||
{
|
||||
if (unregisterEvents != null)
|
||||
|
|
|
|||
|
|
@ -64,7 +64,13 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
{
|
||||
string part3DViewLabelFull = string.Format("{0} {1} ", "3D", "View".Localize());
|
||||
|
||||
view3DTransformPart = new View3DTransformPart(printItem, new Vector3(ActiveSliceSettings.Instance.BedSize, buildHeight), ActiveSliceSettings.Instance.BedShape, View3DTransformPart.WindowType.StandAlone, autoRotate3DView);
|
||||
view3DTransformPart = new View3DTransformPart(printItem,
|
||||
new Vector3(ActiveSliceSettings.Instance.BedSize, buildHeight),
|
||||
ActiveSliceSettings.Instance.BedCenter,
|
||||
ActiveSliceSettings.Instance.BedShape,
|
||||
View3DTransformPart.WindowType.StandAlone,
|
||||
autoRotate3DView);
|
||||
|
||||
TabPage partPreview3DView = new TabPage(view3DTransformPart, part3DViewLabelFull);
|
||||
tabControl.AddTab(new SimpleTextTabWidget(partPreview3DView, "3D View Tab", 16,
|
||||
ActiveTheme.Instance.TabLabelSelected, new RGBA_Bytes(), ActiveTheme.Instance.TabLabelUnselected, new RGBA_Bytes()));
|
||||
|
|
@ -73,7 +79,11 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
// put in the 2d gcode view
|
||||
TabPage layerView;
|
||||
{
|
||||
viewGcodeBasic = new ViewGcodeBasic(printItem, new Vector3(ActiveSliceSettings.Instance.BedSize, buildHeight), ActiveSliceSettings.Instance.BedShape, ActiveSliceSettings.Instance.BedCenter, true);
|
||||
viewGcodeBasic = new ViewGcodeBasic(printItem,
|
||||
new Vector3(ActiveSliceSettings.Instance.BedSize, buildHeight),
|
||||
ActiveSliceSettings.Instance.BedCenter,
|
||||
ActiveSliceSettings.Instance.BedShape,
|
||||
true);
|
||||
layerView = new TabPage(viewGcodeBasic, LocalizedString.Get("Layer View"));
|
||||
tabControl.AddTab(new SimpleTextTabWidget(layerView, "Layer View Tab", 16,
|
||||
ActiveTheme.Instance.TabLabelSelected, new RGBA_Bytes(), ActiveTheme.Instance.TabLabelUnselected, new RGBA_Bytes()));
|
||||
|
|
|
|||
|
|
@ -252,7 +252,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
public enum WindowType { Embeded, StandAlone };
|
||||
public enum AutoRotate { Enabled, Disabled };
|
||||
|
||||
public View3DTransformPart(PrintItemWrapper printItemWrapper, Vector3 viewerVolume, MeshViewerWidget.BedShape bedShape, WindowType windowType, AutoRotate autoRotate)
|
||||
public View3DTransformPart(PrintItemWrapper printItemWrapper, Vector3 viewerVolume, Vector2 bedCenter, MeshViewerWidget.BedShape bedShape, WindowType windowType, AutoRotate autoRotate)
|
||||
{
|
||||
this.windowType = windowType;
|
||||
autoRotateEnabled = (autoRotate == AutoRotate.Enabled);
|
||||
|
|
@ -271,7 +271,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
GuiWidget viewArea = new GuiWidget();
|
||||
viewArea.AnchorAll();
|
||||
{
|
||||
meshViewerWidget = new MeshViewerWidget(viewerVolume, 1, bedShape, "Press 'Add' to select an item.".Localize());
|
||||
meshViewerWidget = new MeshViewerWidget(viewerVolume, bedCenter, bedShape, "Press 'Add' to select an item.".Localize());
|
||||
|
||||
// this is to add an image to the bed
|
||||
string imagePathAndFile = Path.Combine(ApplicationDataStorage.Instance.ApplicationStaticDataPath, "OEMSettings", "bedimage.png");
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
Vector3 viewerVolume;
|
||||
MeshViewerWidget.BedShape bedShape;
|
||||
|
||||
public ViewGcodeBasic(PrintItemWrapper printItem, Vector3 viewerVolume, MeshViewerWidget.BedShape bedShape, Vector2 bedCenter, bool addCloseButton)
|
||||
public ViewGcodeBasic(PrintItemWrapper printItem, Vector3 viewerVolume, Vector2 bedCenter, MeshViewerWidget.BedShape bedShape, bool addCloseButton)
|
||||
{
|
||||
this.viewerVolume = viewerVolume;
|
||||
this.bedShape = bedShape;
|
||||
|
|
@ -199,7 +199,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
mainContainerTopToBottom.AddChild(buttonBottomPanel);
|
||||
this.AddChild(mainContainerTopToBottom);
|
||||
|
||||
meshViewerWidget = new MeshViewerWidget(viewerVolume, 1, bedShape, "".Localize());
|
||||
meshViewerWidget = new MeshViewerWidget(viewerVolume, bedCenter, bedShape, "".Localize());
|
||||
meshViewerWidget.AnchorAll();
|
||||
meshViewerWidget.AlwaysRenderBed = true;
|
||||
gcodeDispalyWidget.AddChild(meshViewerWidget);
|
||||
|
|
|
|||
|
|
@ -60,12 +60,12 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
{
|
||||
}
|
||||
|
||||
public UiState(SliceSettingsWidget settingsToCopy)
|
||||
public UiState(SliceSettingsWidget settingsWidgetToCopyFrom)
|
||||
{
|
||||
if (settingsToCopy != null)
|
||||
if (settingsWidgetToCopyFrom != null)
|
||||
{
|
||||
settingsToCopy.CurrentlyActiveCategory(out selectedCategory.index, out selectedCategory.name);
|
||||
settingsToCopy.CurrentlyActiveGroup(out selectedGroup.index, out selectedGroup.name);
|
||||
settingsWidgetToCopyFrom.CurrentlyActiveCategory(out selectedCategory.index, out selectedCategory.name);
|
||||
settingsWidgetToCopyFrom.CurrentlyActiveGroup(out selectedGroup.index, out selectedGroup.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -481,11 +481,16 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
}
|
||||
|
||||
|
||||
List<string> settingToReload = new List<string>() {"bed_size", "print_center", "build_height", "bed_shape"};
|
||||
|
||||
private void ResetIfNeeded(OrganizerSettingsData settingData)
|
||||
List<string> settingToReloadUiWhenChanged = new List<string>()
|
||||
{
|
||||
if (settingToReload.Contains(settingData.SlicerConfigName))
|
||||
"has_fan",
|
||||
"has_heated_bed",
|
||||
"has_sd_card_reader",
|
||||
};
|
||||
|
||||
private void ReloadUiIfRequired(OrganizerSettingsData settingData)
|
||||
{
|
||||
if (settingToReloadUiWhenChanged.Contains(settingData.SlicerConfigName))
|
||||
{
|
||||
ApplicationWidget.Instance.ReloadAll(null, null);
|
||||
}
|
||||
|
|
@ -569,7 +574,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
doubleEditWidget.ActuallNumberEdit.EditComplete += (sender, e) =>
|
||||
{
|
||||
SaveSetting(settingData.SlicerConfigName, ((NumberEdit)sender).Value.ToString());
|
||||
ResetIfNeeded(settingData);
|
||||
ReloadUiIfRequired(settingData);
|
||||
};
|
||||
leftToRightLayout.AddChild(doubleEditWidget);
|
||||
leftToRightLayout.AddChild(getSettingInfoData(settingData));
|
||||
|
|
@ -673,8 +678,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
{
|
||||
MenuItem menuItem = ((MenuItem)sender);
|
||||
SaveSetting(settingData.SlicerConfigName, menuItem.Text);
|
||||
ResetIfNeeded(settingData);
|
||||
|
||||
ReloadUiIfRequired(settingData);
|
||||
};
|
||||
}
|
||||
leftToRightLayout.AddChild(selectableOptions);
|
||||
|
|
@ -699,7 +703,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
SaveSetting(settingData.SlicerConfigName, "0");
|
||||
// Now hide all of the settings that this control is associated with.
|
||||
}
|
||||
ApplicationWidget.Instance.ReloadAll(null, null);
|
||||
ReloadUiIfRequired(settingData);
|
||||
};
|
||||
leftToRightLayout.AddChild(checkBoxWidget);
|
||||
}
|
||||
|
|
@ -723,7 +727,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
xEditWidget.ActuallNumberEdit.EditComplete += (sender, e) =>
|
||||
{
|
||||
SaveSetting(settingData.SlicerConfigName, xEditWidget.ActuallNumberEdit.Value.ToString() + "," + yEditWidget.ActuallNumberEdit.Value.ToString());
|
||||
ResetIfNeeded(settingData);
|
||||
ReloadUiIfRequired(settingData);
|
||||
};
|
||||
|
||||
leftToRightLayout.AddChild(xEditWidget);
|
||||
|
|
@ -735,7 +739,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
yEditWidget.ActuallNumberEdit.EditComplete += (sender, e) =>
|
||||
{
|
||||
SaveSetting(settingData.SlicerConfigName, xEditWidget.ActuallNumberEdit.Value.ToString() + "," + yEditWidget.ActuallNumberEdit.Value.ToString());
|
||||
ResetIfNeeded(settingData);
|
||||
ReloadUiIfRequired(settingData);
|
||||
};
|
||||
leftToRightLayout.AddChild(yEditWidget);
|
||||
TextWidget yText = new TextWidget("y");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue