Arch: fixed Continue mode

This commit is contained in:
Yorik van Havre 2014-02-21 17:52:14 -03:00
parent a63f4c1f2e
commit 3acd9719c5
4 changed files with 31 additions and 6 deletions

View File

@ -699,7 +699,7 @@ def pruneIncluded(objectslist):
newlist.append(obj)
return newlist
class SurveyObserver:
class _SurveyObserver:
"an observer for the survey() function"
def __init__(self,callback):
self.callback = callback
@ -730,7 +730,7 @@ def survey(callback=False):
if hasattr(FreeCADGui,"draftToolBar"):
FreeCADGui.draftToolBar.offUi()
else:
FreeCAD.SurveyObserver = SurveyObserver(callback=survey)
FreeCAD.SurveyObserver = _SurveyObserver(callback=survey)
FreeCADGui.Selection.addObserver(FreeCAD.SurveyObserver)
if FreeCAD.GuiUp:
if hasattr(FreeCADGui,"draftToolBar"):

View File

@ -465,9 +465,12 @@ class _CommandStructure:
lay0.addWidget(value5)
# continue button
value4 = QtGui.QCheckBox(translate("Arch","Continue").decode("utf8"))
value4 = QtGui.QCheckBox(translate("Arch","Con&tinue").decode("utf8"))
value4.setObjectName("ContinueCmd")
lay0.addWidget(value4)
if hasattr(FreeCADGui,"draftToolBar"):
value4.setChecked(FreeCADGui.draftToolBar.continueMode)
self.continueCmd = FreeCADGui.draftToolBar.continueMode
QtCore.QObject.connect(valuep,QtCore.SIGNAL("currentIndexChanged(int)"),self.setPreset)
QtCore.QObject.connect(self.vLength,QtCore.SIGNAL("valueChanged(double)"),self.setLength)
QtCore.QObject.connect(self.vWidth,QtCore.SIGNAL("valueChanged(double)"),self.setWidth)
@ -498,6 +501,8 @@ class _CommandStructure:
def setContinue(self,i):
self.continueCmd = bool(i)
if hasattr(FreeCADGui,"draftToolBar"):
FreeCADGui.draftToolBar.continueMode = bool(i)
def setPreset(self,i):
if i > 0:

View File

@ -305,8 +305,12 @@ class _CommandWall:
value3.setCurrentIndex(items.index(self.Align))
lay3.addWidget(value3)
value4 = QtGui.QCheckBox(translate("Arch","Continue").decode("utf8"))
value4 = QtGui.QCheckBox(translate("Arch","Con&tinue").decode("utf8"))
value4.setObjectName("ContinueCmd")
lay0.addWidget(value4)
if hasattr(FreeCADGui,"draftToolBar"):
value4.setChecked(FreeCADGui.draftToolBar.continueMode)
self.continueCmd = FreeCADGui.draftToolBar.continueMode
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)
@ -326,6 +330,8 @@ class _CommandWall:
def setContinue(self,i):
self.continueCmd = bool(i)
if hasattr(FreeCADGui,"draftToolBar"):
FreeCADGui.draftToolBar.continueMode = bool(i)
class _CommandMergeWalls:

View File

@ -1133,7 +1133,7 @@ class DraftToolBar:
self.finish()
spec = True
elif txt.endswith("t"):
self.continueCmd.setChecked(not self.continueCmd.isChecked())
self.toggleContinue()
elif txt.endswith("w"):
self.wipeLine()
elif txt.endswith("s"):
@ -1303,6 +1303,20 @@ class DraftToolBar:
self.baseWidget.setStyleSheet("#constrButton:Checked {background-color: "+self.getDefaultColor("constr",rgb=True)+" }")
self.constrMode = checked
def toggleContinue(self):
self.continueCmd.toggle()
if hasattr(self,"panel"):
if hasattr(self.panel,"form"):
if isinstance(self.panel.form,list):
for w in self.panel.form:
c = w.findChild(QtGui.QCheckBox,"ContinueCmd")
if c:
c.toggle()
else:
c = self.panel.form.findChild(QtGui.QCheckBox,"ContinueCmd")
if c:
c.toggle()
def isConstructionMode(self):
if self.tray or (not self.taskmode):
return self.constrButton.isChecked()