From 7c048482bf08fe4b3662e50098fa8476b2d95031 Mon Sep 17 00:00:00 2001 From: markus Date: Wed, 22 Aug 2018 13:54:13 -0700 Subject: [PATCH] Hiding all/most properties that are supposed to be hidden on document restore again. --- src/Mod/Path/PathScripts/PathAreaOp.py | 10 ++++++++++ src/Mod/Path/PathScripts/PathChamfer.py | 3 +++ src/Mod/Path/PathScripts/PathDressupDogbone.py | 3 +++ src/Mod/Path/PathScripts/PathDressupRampEntry.py | 3 +++ src/Mod/Path/PathScripts/PathEngrave.py | 7 +++---- src/Mod/Path/PathScripts/PathJob.py | 2 ++ src/Mod/Path/PathScripts/PathOp.py | 14 ++++++++++++-- src/Mod/Path/PathScripts/PathProfileBase.py | 4 ++++ src/Mod/Path/PathScripts/PathProfileContour.py | 3 +++ src/Mod/Path/PathScripts/PathStock.py | 11 ++++++++--- src/Mod/Path/PathScripts/PathSurface.py | 3 +++ src/Mod/Path/PathScripts/PathToolController.py | 6 ++++-- src/Mod/Path/PathScripts/PathToolLenOffset.py | 6 ++++-- 13 files changed, 62 insertions(+), 13 deletions(-) diff --git a/src/Mod/Path/PathScripts/PathAreaOp.py b/src/Mod/Path/PathScripts/PathAreaOp.py index f3d8e8032b..c5880a8381 100644 --- a/src/Mod/Path/PathScripts/PathAreaOp.py +++ b/src/Mod/Path/PathScripts/PathAreaOp.py @@ -126,6 +126,16 @@ class ObjectOp(PathOp.ObjectOp): self.areaOpOnChanged(obj, prop) + def opOnDocumentRestored(self, obj): + for prop in ['AreaParams', 'PathParams', 'removalshape']: + if hasattr(obj, prop): + obj.setEditorMode(prop, 2) + self.areaOpOnDocumentRestored(obj) + + def areaOpOnDocumentRestored(self, obj): + '''areaOpOnDocumentRestored(obj) ... overwrite to fully restore receiver''' + pass + def opSetDefaultValues(self, obj): '''opSetDefaultValues(obj) ... base implementation, do not overwrite. The base implementation sets the depths and heights based on the diff --git a/src/Mod/Path/PathScripts/PathChamfer.py b/src/Mod/Path/PathScripts/PathChamfer.py index b114f0de83..4e35c74ee7 100644 --- a/src/Mod/Path/PathScripts/PathChamfer.py +++ b/src/Mod/Path/PathScripts/PathChamfer.py @@ -72,6 +72,9 @@ class ObjectChamfer(PathEngraveBase.ObjectOp): obj.Join = ['Round', 'Miter'] obj.setEditorMode('Join', 2) # hide for now + def opOnDocumentRestored(self, obj): + obj.setEditorMode('Join', 2) # hide for now + def opExecute(self, obj): PathLog.track(obj.Label) (depth, offset) = toolDepthAndOffset(obj.Width.Value, obj.ExtraDepth.Value, self.tool) diff --git a/src/Mod/Path/PathScripts/PathDressupDogbone.py b/src/Mod/Path/PathScripts/PathDressupDogbone.py index 82032f2bc3..8a086ebe31 100644 --- a/src/Mod/Path/PathScripts/PathDressupDogbone.py +++ b/src/Mod/Path/PathScripts/PathDressupDogbone.py @@ -392,6 +392,9 @@ class ObjectDressup: obj.Proxy = self obj.Base = base + def onDocumentRestored(self, obj): + obj.setEditorMode('BoneBlacklist', 2) # hide this one + def __getstate__(self): return None diff --git a/src/Mod/Path/PathScripts/PathDressupRampEntry.py b/src/Mod/Path/PathScripts/PathDressupRampEntry.py index 8ee3c1a6bc..5f03f60de1 100644 --- a/src/Mod/Path/PathScripts/PathDressupRampEntry.py +++ b/src/Mod/Path/PathScripts/PathDressupRampEntry.py @@ -80,6 +80,9 @@ class ObjectDressup: else: obj.setEditorMode('CustomFeedRate', 2) + def onDocumentRestored(self, obj): + self.setEditorProperties(obj) + def setup(self, obj): obj.Angle = 60 obj.Method = 2 diff --git a/src/Mod/Path/PathScripts/PathEngrave.py b/src/Mod/Path/PathScripts/PathEngrave.py index 0ac4eeb72d..2eaac83397 100644 --- a/src/Mod/Path/PathScripts/PathEngrave.py +++ b/src/Mod/Path/PathScripts/PathEngrave.py @@ -56,19 +56,18 @@ class ObjectEngrave(PathEngraveBase.ObjectOp): def setupAdditionalProperties(self, obj): if not hasattr(obj, 'BaseShapes'): obj.addProperty("App::PropertyLinkList", "BaseShapes", "Path", QtCore.QT_TRANSLATE_NOOP("PathEngrave", "Additional base objects to be engraved")) - obj.setEditorMode('BaseShapes', 2) # hide + obj.setEditorMode('BaseShapes', 2) # hide if not hasattr(obj, 'BaseObject'): obj.addProperty("App::PropertyLink", "BaseObject", "Path", QtCore.QT_TRANSLATE_NOOP("PathEngrave", "Additional base objects to be engraved")) - obj.setEditorMode('BaseObject', 2) # hide + obj.setEditorMode('BaseObject', 2) # hide def initOperation(self, obj): '''initOperation(obj) ... create engraving specific properties.''' obj.addProperty("App::PropertyInteger", "StartVertex", "Path", QtCore.QT_TRANSLATE_NOOP("PathEngrave", "The vertex index to start the path from")) self.setupAdditionalProperties(obj) - def onDocumentRestored(self, obj): + def opOnDocumentRestored(self, obj): # upgrade ... - super(self.__class__, self).onDocumentRestored(obj) self.setupAdditionalProperties(obj) def opExecute(self, obj): diff --git a/src/Mod/Path/PathScripts/PathJob.py b/src/Mod/Path/PathScripts/PathJob.py index 207204db91..de9bf09803 100644 --- a/src/Mod/Path/PathScripts/PathJob.py +++ b/src/Mod/Path/PathScripts/PathJob.py @@ -212,6 +212,8 @@ class ObjectJob: self.fixupResourceClone(obj, 'Base', 'BaseGeometry') self.fixupOperations(obj) self.setupSetupSheet(obj) + obj.setEditorMode('Operations', 2) # hide + obj.setEditorMode('Placement', 2) def onChanged(self, obj, prop): if prop == "PostProcessor" and obj.PostProcessor: diff --git a/src/Mod/Path/PathScripts/PathOp.py b/src/Mod/Path/PathScripts/PathOp.py index 4d768c8aab..c79a83fb0f 100644 --- a/src/Mod/Path/PathScripts/PathOp.py +++ b/src/Mod/Path/PathScripts/PathOp.py @@ -158,6 +158,17 @@ class ObjectOp(object): if self.setDefaultValues(obj): obj.Proxy = self + def setEditorModes(self, obj, features): + '''Editor modes are not preserved during document store/restore, set editor modes for all properties''' + + for op in ['OpStartDepth', 'OpFinalDepth', 'OpToolDiameter']: + if hasattr(obj, op): + obj.setEditorMode(op, 1) # read-only + + if FeatureDepths & features: + if FeatureNoFinalDepth & features: + obj.setEditorMode('OpFinalDepth', 2) + def onDocumentRestored(self, obj): features = self.opFeatures(obj) if FeatureBaseGeometry & features and 'App::PropertyLinkSubList' == obj.getTypeIdOfProperty('Base'): @@ -174,9 +185,8 @@ class ObjectOp(object): if FeatureDepths & features and not hasattr(obj, 'OpStartDepth'): self.addOpValues(obj, ['start', 'final']) - if FeatureNoFinalDepth & features: - obj.setEditorMode('OpFinalDepth', 2) + self.setEditorModes(obj, features) self.opOnDocumentRestored(obj) def __getstate__(self): diff --git a/src/Mod/Path/PathScripts/PathProfileBase.py b/src/Mod/Path/PathScripts/PathProfileBase.py index bb2e29637a..5262e27ff3 100644 --- a/src/Mod/Path/PathScripts/PathProfileBase.py +++ b/src/Mod/Path/PathScripts/PathProfileBase.py @@ -79,6 +79,10 @@ class ObjectProfile(PathAreaOp.ObjectOp): else: obj.setEditorMode('MiterLimit', 2) + def areaOpOnDocumentRestored(self, obj): + for prop in ['UseComp', 'JoinType']: + self.areaOpOnChanged(obj, prop) + def areaOpAreaParams(self, obj, isHole): '''areaOpAreaParams(obj, isHole) ... returns dictionary with area parameters. Do not overwrite.''' diff --git a/src/Mod/Path/PathScripts/PathProfileContour.py b/src/Mod/Path/PathScripts/PathProfileContour.py index f12e74b5d7..08547783c9 100644 --- a/src/Mod/Path/PathScripts/PathProfileContour.py +++ b/src/Mod/Path/PathScripts/PathProfileContour.py @@ -70,6 +70,9 @@ class ObjectContour(PathProfileBase.ObjectProfile): self.baseObject().initAreaOp(obj) obj.setEditorMode('Side', 2) # it's always outside + def areaOpOnDocumentRestored(self, obj): + obj.setEditorMode('Side', 2) # it's always outside + def areaOpSetDefaultValues(self, obj): '''areaOpSetDefaultValues(obj) ... call super's implementation and set Side="Outside".''' self.baseObject().areaOpSetDefaultValues(obj) diff --git a/src/Mod/Path/PathScripts/PathStock.py b/src/Mod/Path/PathScripts/PathStock.py index 164d44c6b1..94fa78649b 100644 --- a/src/Mod/Path/PathScripts/PathStock.py +++ b/src/Mod/Path/PathScripts/PathStock.py @@ -79,7 +79,12 @@ def shapeBoundBox(obj): PathLog.error(translate('PathStock', "Invalid base object %s - no shape found") % obj.Name) return None -class StockFromBase: +class Stock(object): + def onDocumentRestored(self, obj): + if hasattr(obj, 'StockType'): + obj.setEditorMode('StockType', 2) # hide + +class StockFromBase(Stock): def __init__(self, obj, base): "Make stock" @@ -130,7 +135,7 @@ class StockFromBase: self.execute(obj) -class StockCreateBox: +class StockCreateBox(Stock): MinExtent = 0.001 def __init__(self, obj): @@ -165,7 +170,7 @@ class StockCreateBox: if prop in ['Length', 'Width', 'Height'] and not 'Restore' in obj.State: self.execute(obj) -class StockCreateCylinder: +class StockCreateCylinder(Stock): MinExtent = 0.001 def __init__(self, obj): diff --git a/src/Mod/Path/PathScripts/PathSurface.py b/src/Mod/Path/PathScripts/PathSurface.py index b00e4abf7e..cf9b25fbd8 100644 --- a/src/Mod/Path/PathScripts/PathSurface.py +++ b/src/Mod/Path/PathScripts/PathSurface.py @@ -95,6 +95,9 @@ class ObjectSurface(PathOp.ObjectOp): if prop == "Algorithm": self.setEditorProperties(obj) + def opOnDocumentRestored(self, obj): + self.setEditorProperties(obj) + def opExecute(self, obj): '''opExecute(obj) ... process surface operation''' PathLog.track() diff --git a/src/Mod/Path/PathScripts/PathToolController.py b/src/Mod/Path/PathScripts/PathToolController.py index ccb54ca243..0cbfb3d894 100644 --- a/src/Mod/Path/PathScripts/PathToolController.py +++ b/src/Mod/Path/PathScripts/PathToolController.py @@ -81,8 +81,10 @@ class ToolController: obj.addProperty("App::PropertySpeed", "VertRapid", "Rapid", QtCore.QT_TRANSLATE_NOOP("App::Property", "Rapid rate for vertical moves in Z")) obj.addProperty("App::PropertySpeed", "HorizRapid", "Rapid", QtCore.QT_TRANSLATE_NOOP("App::Property", "Rapid rate for horizontal moves")) obj.Proxy = self - mode = 2 - obj.setEditorMode('Placement', mode) + obj.setEditorMode('Placement', 2) + + def onDocumentRestored(self, obj): + obj.setEditorMode('Placement', 2) def setFromTemplate(self, obj, template): '''setFromTemplate(obj, xmlItem) ... extract properties from xmlItem and assign to receiver.''' diff --git a/src/Mod/Path/PathScripts/PathToolLenOffset.py b/src/Mod/Path/PathScripts/PathToolLenOffset.py index c9d37cdcc3..a3845ed94d 100644 --- a/src/Mod/Path/PathScripts/PathToolLenOffset.py +++ b/src/Mod/Path/PathScripts/PathToolLenOffset.py @@ -40,8 +40,10 @@ class ToolLenOffset: obj.addProperty("App::PropertyLength", "Height", "HeightOffset",QtCore.QT_TRANSLATE_NOOP("App::Property","The first height value in Z, to rapid to, before making a feed move in Z")) obj.addProperty("App::PropertyBool","Active","HeightOffset",QtCore.QT_TRANSLATE_NOOP("App::Property","Make False, to prevent operation from generating code")) obj.Proxy = self - mode = 2 - obj.setEditorMode('Placement', mode) + obj.setEditorMode('Placement', 2) + + def onDocumentRestored(self, obj): + obj.setEditorMode('Placement', 2) def execute(self, obj):