diff --git a/src/Mod/Arch/ArchPanel.py b/src/Mod/Arch/ArchPanel.py index 8bc866f693..702e62d882 100644 --- a/src/Mod/Arch/ArchPanel.py +++ b/src/Mod/Arch/ArchPanel.py @@ -104,8 +104,6 @@ class _CommandPanel: self.Profile = None self.continueCmd = False self.rotated = False - self.DECIMALS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Units").GetInt("Decimals",2) - self.FORMAT = "%." + str(self.DECIMALS) + "f mm" sel = FreeCADGui.Selection.getSelection() if sel: if len(sel) == 1: @@ -173,21 +171,21 @@ class _CommandPanel: # length label1 = QtGui.QLabel(translate("Arch","Length").decode("utf8")) self.vLength = ui.createWidget("Gui::InputField") - self.vLength.setText(self.FORMAT % self.Length) + self.vLength.setText(FreeCAD.Units.Quantity(self.Length,FreeCAD.Units.Length).UserString) grid.addWidget(label1,1,0,1,1) grid.addWidget(self.vLength,1,1,1,1) # width label2 = QtGui.QLabel(translate("Arch","Width").decode("utf8")) self.vWidth = ui.createWidget("Gui::InputField") - self.vWidth.setText(self.FORMAT % self.Width) + self.vWidth.setText(FreeCAD.Units.Quantity(self.Width,FreeCAD.Units.Length).UserString) grid.addWidget(label2,2,0,1,1) grid.addWidget(self.vWidth,2,1,1,1) # height label3 = QtGui.QLabel(translate("Arch","Thickness").decode("utf8")) self.vHeight = ui.createWidget("Gui::InputField") - self.vHeight.setText(self.FORMAT % self.Thickness) + self.vHeight.setText(FreeCAD.Units.Quantity(self.Thickness,FreeCAD.Units.Length).UserString) grid.addWidget(label3,3,0,1,1) grid.addWidget(self.vHeight,3,1,1,1) @@ -244,9 +242,9 @@ class _CommandPanel: def setPreset(self,i): if i > 0: - self.vLength.setText(self.FORMAT % float(Presets[i][1])) - self.vWidth.setText(self.FORMAT % float(Presets[i][2])) - self.vHeight.setText(self.FORMAT % float(Presets[i][3])) + self.vLength.setText(FreeCAD.Units.Quantity(float(Presets[i][1]),FreeCAD.Units.Length).UserString) + self.vWidth.setText(FreeCAD.Units.Quantity(float(Presets[i][2]),FreeCAD.Units.Length).UserString) + self.vHeight.setText(FreeCAD.Units.Quantity(float(Presets[i][3]),FreeCAD.Units.Length).UserString) def rotate(self): self.rotated = not self.rotated diff --git a/src/Mod/Arch/ArchStructure.py b/src/Mod/Arch/ArchStructure.py index eea5a27f43..3f9682de27 100644 --- a/src/Mod/Arch/ArchStructure.py +++ b/src/Mod/Arch/ArchStructure.py @@ -137,9 +137,6 @@ class _CommandStructure: self.Height = p.GetFloat("StructureHeight",1000) self.Profile = None self.continueCmd = False - self.DECIMALS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Units").GetInt("Decimals",2) - import DraftGui - self.FORMAT = DraftGui.makeFormatSpec(self.DECIMALS,'Length') sel = FreeCADGui.Selection.getSelection() if sel: st = Draft.getObjectsOfType(sel,"Structure") @@ -233,27 +230,29 @@ class _CommandStructure: # length label1 = QtGui.QLabel(translate("Arch","Length").decode("utf8")) self.vLength = ui.createWidget("Gui::InputField") - self.vLength.setText(self.FORMAT % self.Length) + self.vLength.setText(FreeCAD.Units.Quantity(self.Length,FreeCAD.Units.Length).UserString) grid.addWidget(label1,2,0,1,1) grid.addWidget(self.vLength,2,1,1,1) # width label2 = QtGui.QLabel(translate("Arch","Width").decode("utf8")) self.vWidth = ui.createWidget("Gui::InputField") - self.vWidth.setText(self.FORMAT % self.Width) + self.vWidth.setText(FreeCAD.Units.Quantity(self.Width,FreeCAD.Units.Length).UserString) grid.addWidget(label2,3,0,1,1) grid.addWidget(self.vWidth,3,1,1,1) # height label3 = QtGui.QLabel(translate("Arch","Height").decode("utf8")) self.vHeight = ui.createWidget("Gui::InputField") - self.vHeight.setText(self.FORMAT % self.Height) + self.vHeight.setText(FreeCAD.Units.Quantity(self.Height,FreeCAD.Units.Length).UserString) grid.addWidget(label3,4,0,1,1) grid.addWidget(self.vHeight,4,1,1,1) # horizontal button - value5 = QtGui.QPushButton(translate("Arch","Switch Length/Height").decode("utf8")) - grid.addWidget(value5,5,0,1,2) + value5 = QtGui.QPushButton(translate("Arch","Switch L/H").decode("utf8")) + grid.addWidget(value5,5,0,1,1) + value6 = QtGui.QPushButton(translate("Arch","Switch L/W").decode("utf8")) + grid.addWidget(value6,5,1,1,1) # continue button label4 = QtGui.QLabel(translate("Arch","Con&tinue").decode("utf8")) @@ -273,7 +272,8 @@ class _CommandStructure: QtCore.QObject.connect(self.vWidth,QtCore.SIGNAL("valueChanged(double)"),self.setWidth) QtCore.QObject.connect(self.vHeight,QtCore.SIGNAL("valueChanged(double)"),self.setHeight) QtCore.QObject.connect(value4,QtCore.SIGNAL("stateChanged(int)"),self.setContinue) - QtCore.QObject.connect(value5,QtCore.SIGNAL("pressed()"),self.rotate) + QtCore.QObject.connect(value5,QtCore.SIGNAL("pressed()"),self.rotateLH) + QtCore.QObject.connect(value6,QtCore.SIGNAL("pressed()"),self.rotateLW) return w def update(self,point,info): @@ -316,19 +316,20 @@ class _CommandStructure: def setPreset(self,i): if i > 0: p=self.pSelect[i-1][0] - self.vLength.setText(self.FORMAT % float(Presets[p][4])) - self.vWidth.setText(self.FORMAT % float(Presets[p][5])) + self.vLength.setText(FreeCAD.Units.Quantity(float(Presets[p][4]),FreeCAD.Units.Length).UserString) + self.vWidth.setText(FreeCAD.Units.Quantity(float(Presets[p][5]),FreeCAD.Units.Length).UserString) self.Profile = Presets[p] else: self.Profile = None - def rotate(self): - l = self.Length - w = self.Width - h = self.Height - self.vLength.setText(self.FORMAT % h) - self.vHeight.setText(self.FORMAT % w) - self.vWidth.setText(self.FORMAT % l) + def rotateLH(self): + self.vLength.setText(FreeCAD.Units.Quantity(self.Height,FreeCAD.Units.Length).UserString) + self.vHeight.setText(FreeCAD.Units.Quantity(self.Length,FreeCAD.Units.Length).UserString) + + def rotateLW(self): + self.vLength.setText(FreeCAD.Units.Quantity(self.Width,FreeCAD.Units.Length).UserString) + self.vWidth.setText(FreeCAD.Units.Quantity(self.Length,FreeCAD.Units.Length).UserString) + class _Structure(ArchComponent.Component): "The Structure object" diff --git a/src/Mod/Arch/ArchWall.py b/src/Mod/Arch/ArchWall.py index 9d395345d0..3e51b1c950 100644 --- a/src/Mod/Arch/ArchWall.py +++ b/src/Mod/Arch/ArchWall.py @@ -168,9 +168,6 @@ class _CommandWall: self.Height = p.GetFloat("WallHeight",3000) self.JOIN_WALLS_SKETCHES = p.GetBool("joinWallSketches",False) self.AUTOJOIN = p.GetBool("autoJoinWalls",True) - self.DECIMALS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Units").GetInt("Decimals",2) - import DraftGui - self.FORMAT = DraftGui.makeFormatSpec(self.DECIMALS,'Length') sel = FreeCADGui.Selection.getSelectionEx() done = False self.existing = [] @@ -279,7 +276,7 @@ class _CommandWall: dv = dv.negative() self.tracker.update([b.add(dv),point.add(dv)]) if self.Length: - self.Length.setText(self.FORMAT % bv.Length) + self.Length.setText(FreeCAD.Units.Quantity(bv.Length,FreeCAD.Units.Length).UserString) def taskbox(self): "sets up a taskbox widget" @@ -296,13 +293,13 @@ class _CommandWall: label1 = QtGui.QLabel(translate("Arch","Width").decode("utf8")) value1 = ui.createWidget("Gui::InputField") - value1.setText(self.FORMAT % self.Width) + value1.setText(FreeCAD.Units.Quantity(self.Width,FreeCAD.Units.Length).UserString) grid.addWidget(label1,1,0,1,1) grid.addWidget(value1,1,1,1,1) label2 = QtGui.QLabel(translate("Arch","Height").decode("utf8")) value2 = ui.createWidget("Gui::InputField") - value2.setText(self.FORMAT % self.Height) + value2.setText(FreeCAD.Units.Quantity(self.Height,FreeCAD.Units.Length).UserString) grid.addWidget(label2,2,0,1,1) grid.addWidget(value2,2,1,1,1) diff --git a/src/Mod/Arch/ArchWindow.py b/src/Mod/Arch/ArchWindow.py index 905cbcb5bd..f33cc691ef 100644 --- a/src/Mod/Arch/ArchWindow.py +++ b/src/Mod/Arch/ArchWindow.py @@ -397,9 +397,6 @@ class _CommandWindow: self.Include = True self.baseFace = None self.wparams = ["Width","Height","H1","H2","H3","W1","W2","O1","O2"] - self.DECIMALS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Units").GetInt("Decimals",2) - import DraftGui - self.FORMAT = DraftGui.makeFormatSpec(self.DECIMALS,'Length') # autobuild mode if FreeCADGui.Selection.getSelectionEx(): @@ -556,11 +553,11 @@ class _CommandWindow: setattr(self,"val"+param,ui.createWidget("Gui::InputField")) wid = getattr(self,"val"+param) if param == "Width": - wid.setText(self.FORMAT % self.Width) + wid.setText(FreeCAD.Units.Quantity(self.Width,FreeCAD.Units.Length).UserString) elif param == "Height": - wid.setText(self.FORMAT % self.Height) + wid.setText(FreeCAD.Units.Quantity(self.Height,FreeCAD.Units.Length).UserString) else: - wid.setText(self.FORMAT % self.Thickness) + wid.setText(FreeCAD.Units.Quantity(self.Thickness,FreeCAD.Units.Length).UserString) setattr(self,param,self.Thickness) grid.addWidget(lab,i,0,1,1) grid.addWidget(wid,i,1,1,1) @@ -862,9 +859,6 @@ class _ArchWindowTaskPanel: def __init__(self): self.obj = None - self.DECIMALS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Units").GetInt("Decimals",2) - import DraftGui - self.FORMAT = DraftGui.makeFormatSpec(self.DECIMALS,'Length') self.form = QtGui.QWidget() self.form.setObjectName("TaskPanel") self.grid = QtGui.QGridLayout(self.form) @@ -1079,7 +1073,7 @@ class _ArchWindowTaskPanel: else: f.setCurrentIndex(0) elif i in [3,4]: - f.setProperty("text",self.FORMAT % float(t)) + f.setProperty("text",FreeCAD.Units.Quantity(float(t),FreeCAD.Units.Length).UserString) else: f.setText(t)