Arch: Finally using proper UnitStrings in Arch tools

This commit is contained in:
Yorik van Havre
2016-06-10 19:08:00 -03:00
parent f7ef2ca971
commit c81111777a
4 changed files with 32 additions and 42 deletions

View File

@@ -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

View File

@@ -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"

View File

@@ -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)

View File

@@ -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)