From 3acd9719c530fbbd439df6a85cfaac2d47ef1b7b Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Fri, 21 Feb 2014 17:52:14 -0300 Subject: [PATCH] Arch: fixed Continue mode --- src/Mod/Arch/ArchCommands.py | 4 ++-- src/Mod/Arch/ArchStructure.py | 9 +++++++-- src/Mod/Arch/ArchWall.py | 8 +++++++- src/Mod/Draft/DraftGui.py | 16 +++++++++++++++- 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/Mod/Arch/ArchCommands.py b/src/Mod/Arch/ArchCommands.py index bac4c477c..ff5dc90aa 100644 --- a/src/Mod/Arch/ArchCommands.py +++ b/src/Mod/Arch/ArchCommands.py @@ -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"): diff --git a/src/Mod/Arch/ArchStructure.py b/src/Mod/Arch/ArchStructure.py index 6e9bc01a2..f24e24527 100644 --- a/src/Mod/Arch/ArchStructure.py +++ b/src/Mod/Arch/ArchStructure.py @@ -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: diff --git a/src/Mod/Arch/ArchWall.py b/src/Mod/Arch/ArchWall.py index 09909e62a..24ed95110 100644 --- a/src/Mod/Arch/ArchWall.py +++ b/src/Mod/Arch/ArchWall.py @@ -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: diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index 0bb68b7d2..535fad219 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -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()