Navigation Menu

Skip to content

Commit

Permalink
Arch: Allow to draw walls by entering length, width and height on the…
Browse files Browse the repository at this point in the history
… GUI - fixes #2000
  • Loading branch information
yorikvanhavre committed Nov 30, 2015
1 parent a557cd4 commit fd802ba
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion src/Mod/Arch/ArchWall.py
Expand Up @@ -161,6 +161,7 @@ def IsActive(self):
def Activated(self):
self.Align = "Center"
self.Length = None
self.lengthValue = 0
self.continueCmd = False
p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch")
self.Width = p.GetFloat("WallWidth",200)
Expand Down Expand Up @@ -322,11 +323,20 @@ def taskbox(self):
grid.addWidget(label4,4,0,1,1)
grid.addWidget(value4,4,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(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)
QtCore.QObject.connect(value1,QtCore.SIGNAL("returnPressed()"),value2.selectAll)
QtCore.QObject.connect(value2,QtCore.SIGNAL("returnPressed()"),self.createFromGUI)
return w

def setLength(self,d):
self.lengthValue = d

def setWidth(self,d):
self.Width = d
Expand All @@ -343,7 +353,15 @@ def setContinue(self,i):
self.continueCmd = bool(i)
if hasattr(FreeCADGui,"draftToolBar"):
FreeCADGui.draftToolBar.continueMode = bool(i)


def createFromGUI(self):
FreeCAD.ActiveDocument.openTransaction(translate("Arch","Create Wall"))
FreeCADGui.addModule("Arch")
FreeCADGui.doCommand('Arch.makeWall(length='+str(self.lengthValue)+',width='+str(self.Width)+',height='+str(self.Height)+',align="'+str(self.Align)+'")')
FreeCAD.ActiveDocument.commitTransaction()
FreeCAD.ActiveDocument.recompute()
if hasattr(FreeCADGui,"draftToolBar"):
FreeCADGui.draftToolBar.escape()

class _CommandMergeWalls:
"the Arch Merge Walls command definition"
Expand Down

0 comments on commit fd802ba

Please sign in to comment.