diff --git a/MatterControlLib/PartPreviewWindow/View3D/TrackballTumbleWidgetExtended.cs b/MatterControlLib/PartPreviewWindow/View3D/TrackballTumbleWidgetExtended.cs index a44aa4e2b..5f5779c18 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/TrackballTumbleWidgetExtended.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/TrackballTumbleWidgetExtended.cs @@ -61,6 +61,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public TrackBallController TrackBallController { get; } public TrackBallTransformType TransformState { get; set; } public double ZoomDelta { get; set; } = 0.2f; + public bool TurntableEnabled { get; set; } public void DoRotateAroundOrigin(Vector2 mousePosition) { diff --git a/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs b/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs index 61fcbb698..3f0e4248a 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs @@ -471,16 +471,21 @@ namespace MatterHackers.MatterControl.PartPreviewWindow AddRoundButton(zoomToSelectionButton, RotatedMargin(zoomToSelectionButton, MathHelper.Tau * .4)).Click += (s, e) => ZoomToSelection(); + var turntableEnabled = UserSettings.Instance.get(UserSettingsKey.TurntableMode) != "False"; + TrackballTumbleWidget.TurntableEnabled = turntableEnabled; + var turnTableButton = new RadioIconButton(StaticData.Instance.LoadIcon("spin.png", 16, 16).SetToColor(theme.TextColor), theme) { ToolTipText = "Turntable Mode".Localize(), Margin = theme.ButtonSpacing, ToggleButton = true, SiblingRadioButtonList = new List(), + Checked = turntableEnabled, }; - AddRoundButton(turnTableButton, RotatedMargin(turnTableButton, - MathHelper.Tau * .4)).Click += (s, e) => + AddRoundButton(turnTableButton, RotatedMargin(turnTableButton, -MathHelper.Tau * .4)); + turnTableButton.CheckedStateChanged += (s, e) => { - // toggle the turn table mode + UserSettings.Instance.set(UserSettingsKey.TurntableMode, turnTableButton.Checked.ToString()); }; var projectionButton = new RadioIconButton(StaticData.Instance.LoadIcon("perspective.png", 16, 16).SetToColor(theme.TextColor), theme) diff --git a/MatterControlLib/SettingsManagement/UserSettings.cs b/MatterControlLib/SettingsManagement/UserSettings.cs index 65f0c517f..0d029524b 100644 --- a/MatterControlLib/SettingsManagement/UserSettings.cs +++ b/MatterControlLib/SettingsManagement/UserSettings.cs @@ -80,6 +80,7 @@ namespace MatterHackers.MatterControl public const string TerminalTabVisible = nameof(TerminalTabVisible); public const string ThemeName = nameof(ThemeName); public const string ThumbnailRenderingMode = nameof(ThumbnailRenderingMode); + public const string TurntableMode = nameof(TurntableMode); public const string UpdateFeedType = nameof(UpdateFeedType); public const string MainTabKey = nameof(MainTabKey); }