From ce455de2c508fa9c3d760ce825f3835fe720129a Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Wed, 17 Apr 2024 15:39:29 +0200 Subject: [PATCH] Assembly: Mark new features as experimental. To enable them you need to create a parameter called ExperimentalFeatures and set it to true. --- src/Mod/Assembly/InitGui.py | 22 +++++++++++++--------- src/Mod/Assembly/JointObject.py | 17 ++++++++++++++++- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/Mod/Assembly/InitGui.py b/src/Mod/Assembly/InitGui.py index 003d9ef3d8..f4090de97f 100644 --- a/src/Mod/Assembly/InitGui.py +++ b/src/Mod/Assembly/InitGui.py @@ -64,21 +64,20 @@ class AssemblyWorkbench(Workbench): from PySide import QtCore, QtGui from PySide.QtCore import QT_TRANSLATE_NOOP import CommandCreateAssembly, CommandInsertLink, CommandCreateJoint, CommandSolveAssembly, CommandExportASMT, CommandCreateView - from Preferences import PreferencesPage - - # from Preferences import preferences + import Preferences FreeCADGui.addLanguagePath(":/translations") FreeCADGui.addIconPath(":/icons") - FreeCADGui.addPreferencePage(PreferencesPage, QT_TRANSLATE_NOOP("QObject", "Assembly")) + FreeCADGui.addPreferencePage( + Preferences.PreferencesPage, QT_TRANSLATE_NOOP("QObject", "Assembly") + ) # build commands list cmdList = [ "Assembly_CreateAssembly", "Assembly_InsertLink", "Assembly_SolveAssembly", - "Assembly_CreateView", ] cmdListMenuOnly = [ @@ -94,12 +93,17 @@ class AssemblyWorkbench(Workbench): "Assembly_CreateJointSlider", "Assembly_CreateJointBall", "Assembly_CreateJointDistance", - "Separator", - "Assembly_CreateJointRackPinion", - "Assembly_CreateJointScrew", - "Assembly_CreateJointGearBelt", ] + if Preferences.preferences().GetBool("ExperimentalFeatures", False): + cmdList = cmdList + ["Assembly_CreateView"] + cmdListJoints = cmdListJoints + [ + "Separator", + "Assembly_CreateJointRackPinion", + "Assembly_CreateJointScrew", + "Assembly_CreateJointGearBelt", + ] + self.appendToolbar(QT_TRANSLATE_NOOP("Workbench", "Assembly"), cmdList) self.appendToolbar(QT_TRANSLATE_NOOP("Workbench", "Assembly Joints"), cmdListJoints) diff --git a/src/Mod/Assembly/JointObject.py b/src/Mod/Assembly/JointObject.py index 3ececc1896..53287fcd89 100644 --- a/src/Mod/Assembly/JointObject.py +++ b/src/Mod/Assembly/JointObject.py @@ -57,6 +57,16 @@ TranslatedJointTypes = [ translate("Assembly", "Belt"), ] +TranslatedJointTypesNoExperimental = [ + translate("Assembly", "Fixed"), + translate("Assembly", "Revolute"), + translate("Assembly", "Cylindrical"), + translate("Assembly", "Slider"), + translate("Assembly", "Ball"), + translate("Assembly", "Distance"), +] + + JointTypes = [ "Fixed", "Revolute", @@ -1168,7 +1178,12 @@ class TaskAssemblyCreateJoint(QtCore.QObject): if self.activeType == "Part": self.form.setWindowTitle("Match parts") self.form.jointType.hide() - self.form.jointType.addItems(TranslatedJointTypes) + + if Preferences.preferences().GetBool("ExperimentalFeatures", True): + self.form.jointType.addItems(TranslatedJointTypes) + else: + self.form.jointType.addItems(TranslatedJointTypesNoExperimental) + self.form.jointType.setCurrentIndex(jointTypeIndex) self.form.jointType.currentIndexChanged.connect(self.onJointTypeChanged)