From 454096a34ecfe10447541d27f97ade418e586556 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Thu, 3 May 2012 18:57:59 -0300 Subject: [PATCH] Bugfix in Draft toolbar mode --- src/Mod/Draft/DraftGui.py | 19 ++++++++++++++++++- src/Mod/Draft/DraftTools.py | 3 ++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index 17b3dba50e..02c6c57d4a 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -154,7 +154,7 @@ class DraftTaskPanel: FreeCADGui.draftToolBar.escape() FreeCADGui.ActiveDocument.resetEdit() return True - + class DraftToolBar: "main draft Toolbar" def __init__(self): @@ -488,6 +488,21 @@ class DraftToolBar: self.retranslateUi(self.baseWidget) self.panel = DraftTaskPanel(self.baseWidget,extra) todo.delay(FreeCADGui.Control.showDialog,self.panel) + else: + # create a dummy task to block the UI during the works + class dummy: + "an empty dialog" + def getStandardButtons(self): + return int(QtGui.QDialogButtonBox.Cancel) + def accept(self): + FreeCADGui.ActiveDocument.resetEdit() + return True + def reject(self): + FreeCADGui.draftToolBar.isTaskOn = False + FreeCADGui.draftToolBar.escape() + FreeCADGui.ActiveDocument.resetEdit() + return True + todo.delay(FreeCADGui.Control.showDialog,dummy()) self.setTitle(title) def selectPlaneUi(self): @@ -871,6 +886,8 @@ class DraftToolBar: def escape(self): "escapes the current command" self.continueMode = False + if not self.taskmode: + self.continueCmd.setChecked(False) self.finish() def closeLine(self): diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index 3994fea19f..32654eb3a3 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -74,7 +74,7 @@ MODALT = MODS[Draft.getParam("modalt")] # sets defaults on first load -if not FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/").HasGroup("Draft"): +if not FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod").HasGroup("Draft"): p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Draft") p.SetBool("copymode",1) p.SetBool("alwaysSnap",1) @@ -84,6 +84,7 @@ if not FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/").HasGroup("Dra p.SetInt("precision",4) p.SetInt("gridEvery",10) p.SetFloat("gridSpacing",1.0) + p.SetInt("UiMode",1) #--------------------------------------------------------------------------- # General functions