From 4ea350896797a1efa13413fe6ae573887a83ef6b Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Thu, 28 Mar 2019 17:02:54 -0300 Subject: [PATCH] Arch: Wall, structure, window and panel tools now remember and keep last used values --- src/Mod/Arch/ArchIFC.py | 1 + src/Mod/Arch/ArchPanel.py | 3 +++ src/Mod/Arch/ArchStructure.py | 3 +++ src/Mod/Arch/ArchWall.py | 14 ++++++++++++++ src/Mod/Arch/ArchWindow.py | 18 +++++++++++------- 5 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/Mod/Arch/ArchIFC.py b/src/Mod/Arch/ArchIFC.py index 15d025b8d1..686a27576f 100644 --- a/src/Mod/Arch/ArchIFC.py +++ b/src/Mod/Arch/ArchIFC.py @@ -54,6 +54,7 @@ def addIfcProductAttribute(obj, attribute): obj.addProperty("App::PropertyEnumeration", attribute["name"], "IFC Attributes", QT_TRANSLATE_NOOP("App::Property", "Description of IFC attributes are not yet implemented")) setattr(obj, attribute["name"], attribute["enum_values"]) else: + import ArchIFCSchema propertyType = "App::" + ArchIFCSchema.IfcTypes[attribute["type"]]["property"] obj.addProperty(propertyType, attribute["name"], "IFC Attributes", QT_TRANSLATE_NOOP("App::Property", "Description of IFC attributes are not yet implemented")) diff --git a/src/Mod/Arch/ArchPanel.py b/src/Mod/Arch/ArchPanel.py index 38bc6c76c5..18f49f3875 100644 --- a/src/Mod/Arch/ArchPanel.py +++ b/src/Mod/Arch/ArchPanel.py @@ -297,14 +297,17 @@ class CommandPanel: def setWidth(self,d): self.Width = d + FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").SetFloat("PanelWidth",d) def setThickness(self,d): self.Thickness = d + FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").SetFloat("PanelThickness",d) def setLength(self,d): self.Length = d + FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").SetFloat("PanelLength",d) def setContinue(self,i): diff --git a/src/Mod/Arch/ArchStructure.py b/src/Mod/Arch/ArchStructure.py index 09db2c5f4f..65cc69ca01 100644 --- a/src/Mod/Arch/ArchStructure.py +++ b/src/Mod/Arch/ArchStructure.py @@ -392,16 +392,19 @@ class _CommandStructure: self.Width = d self.tracker.width(d) + FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").SetFloat("StructureWidth",d) def setHeight(self,d): self.Height = d self.tracker.height(d) + FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").SetFloat("StructureHeight",d) def setLength(self,d): self.Length = d self.tracker.length(d) + FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").SetFloat("StructureLength",d) def setContinue(self,i): diff --git a/src/Mod/Arch/ArchWall.py b/src/Mod/Arch/ArchWall.py index af2f20c9a7..bc16195bea 100644 --- a/src/Mod/Arch/ArchWall.py +++ b/src/Mod/Arch/ArchWall.py @@ -385,11 +385,21 @@ class _CommandWall: grid.addWidget(label4,5,0,1,1) grid.addWidget(value4,5,1,1,1) + label5 = QtGui.QLabel(translate("Arch","Use sketches", utf8_decode=True)) + value5 = QtGui.QCheckBox() + value5.setObjectName("UseSketches") + value5.setLayoutDirection(QtCore.Qt.RightToLeft) + label5.setBuddy(value5) + value5.setChecked(FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").GetBool("WallSketches",True)) + grid.addWidget(label5,6,0,1,1) + grid.addWidget(value5,6,1,1,1) + QtCore.QObject.connect(self.Length,QtCore.SIGNAL("valueChanged(double)"),self.setLength) QtCore.QObject.connect(value1,QtCore.SIGNAL("valueChanged(double)"),self.setWidth) QtCore.QObject.connect(value2,QtCore.SIGNAL("valueChanged(double)"),self.setHeight) QtCore.QObject.connect(value3,QtCore.SIGNAL("currentIndexChanged(int)"),self.setAlign) QtCore.QObject.connect(value4,QtCore.SIGNAL("stateChanged(int)"),self.setContinue) + QtCore.QObject.connect(value5,QtCore.SIGNAL("stateChanged(int)"),self.setUseSketch) QtCore.QObject.connect(self.Length,QtCore.SIGNAL("returnPressed()"),value1.setFocus) QtCore.QObject.connect(self.Length,QtCore.SIGNAL("returnPressed()"),value1.selectAll) QtCore.QObject.connect(value1,QtCore.SIGNAL("returnPressed()"),value2.setFocus) @@ -435,6 +445,10 @@ class _CommandWall: if hasattr(FreeCADGui,"draftToolBar"): FreeCADGui.draftToolBar.continueMode = bool(i) + def setUseSketch(self,i): + + FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").SetBool("WallSketches",bool(i)) + def createFromGUI(self): FreeCAD.ActiveDocument.openTransaction(translate("Arch","Create Wall")) diff --git a/src/Mod/Arch/ArchWindow.py b/src/Mod/Arch/ArchWindow.py index 5de7ce2c7d..0001fa3726 100644 --- a/src/Mod/Arch/ArchWindow.py +++ b/src/Mod/Arch/ArchWindow.py @@ -812,14 +812,17 @@ class _CommandWindow: elif param == "Height": wid.setText(FreeCAD.Units.Quantity(self.Height,FreeCAD.Units.Length).UserString) elif param == "O1": - wid.setText(FreeCAD.Units.Quantity(0,FreeCAD.Units.Length).UserString) - setattr(self,param,0) + n = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").GetFloat("WindowO1",0.0) + wid.setText(FreeCAD.Units.Quantity(n,FreeCAD.Units.Length).UserString) + setattr(self,param,n) elif param == "W1": - wid.setText(FreeCAD.Units.Quantity(self.Thickness*2,FreeCAD.Units.Length).UserString) - setattr(self,param,self.Thickness*2) + n = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").GetFloat("WindowW1",self.Thickness*2) + wid.setText(FreeCAD.Units.Quantity(n,FreeCAD.Units.Length).UserString) + setattr(self,param,n) else: - wid.setText(FreeCAD.Units.Quantity(self.Thickness,FreeCAD.Units.Length).UserString) - setattr(self,param,self.Thickness) + n = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").GetFloat("Window"+param,self.Thickness) + wid.setText(FreeCAD.Units.Quantity(n,FreeCAD.Units.Length).UserString) + setattr(self,param,n) grid.addWidget(lab,i,0,1,1) grid.addWidget(wid,i,1,1,1) i += 1 @@ -830,7 +833,7 @@ class _CommandWindow: def getValueChanged(self,p): - return lambda d : self.setParams(p, d) + return lambda d : self.setParams(p, d) def setSill(self,d): @@ -846,6 +849,7 @@ class _CommandWindow: self.tracker.length(self.Width) self.tracker.height(self.Height) self.tracker.width(self.W1) + FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").SetFloat("Window"+param,d) def setPreset(self,i):