diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index fc4e6f194..114d0078e 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -533,11 +533,10 @@ class DraftToolBar: self.radiusValue.selectAll() def offUi(self): + todo.delay(FreeCADGui.Control.closeDialog,None) if self.taskmode: self.isTaskOn = False - todo.delay(FreeCADGui.Control.closeDialog,None) self.baseWidget = QtGui.QWidget() - # print "UI turned off" else: self.setTitle(translate("draft", "None")) self.labelx.setText(translate("draft", "X")) @@ -637,6 +636,7 @@ class DraftToolBar: if not self.taskmode: self.labelx.setText(translate("draft", "Pick Object")) self.labelx.show() + self.makeDumbTask() def editUi(self): self.taskUi(translate("draft", "Edit")) @@ -701,6 +701,15 @@ class DraftToolBar: else: self.layout.setDirection(QtGui.QBoxLayout.LeftToRight) + def makeDumbTask(self): + "create a dumb taskdialog to prevent deleting the temp object" + class TaskPanel: + def __init__(self): + pass + def getStandardButtons(self): + return 0 + panel = TaskPanel() + FreeCADGui.Control.showDialog(panel) #--------------------------------------------------------------------------- # Processing functions diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index ac1610bf4..e9b55d6e1 100755 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -389,24 +389,11 @@ class Line(Creator): self.obj=self.doc.addObject("Part::Feature",self.featureName) # self.obj.ViewObject.Selectable = False Draft.formatObject(self.obj) - if not Draft.getParam("UiMode"): self.makeDumbTask() self.call = self.view.addEventCallback("SoEvent",self.action) msg(translate("draft", "Pick first point:\n")) - def makeDumbTask(self): - "create a dumb taskdialog to prevent deleting the temp object" - class TaskPanel: - def __init__(self): - pass - def getStandardButtons(self): - return 0 - panel = TaskPanel() - FreeCADGui.Control.showDialog(panel) - def finish(self,closed=False,cont=False): "terminates the operation and closes the poly if asked" - if not Draft.getParam("UiMode"): - FreeCADGui.Control.closeDialog() if self.obj: old = self.obj.Name todo.delay(self.doc.removeObject,old) @@ -1627,6 +1614,12 @@ class Modifier: def __init__(self): self.commitList = [] + + def IsActive(self): + if Draft.getSelection(): + return True + else: + return False def Activated(self,name="None"): if FreeCAD.activeDraftCommand: @@ -1655,12 +1648,6 @@ class Modifier: self.snap = snapTracker() self.extsnap = lineTracker(dotted=True) self.planetrack = PlaneTracker() - - def IsActive(self): - if FreeCADGui.ActiveDocument: - return True - else: - return False def finish(self): self.node = [] diff --git a/src/Mod/Draft/DraftTrackers.py b/src/Mod/Draft/DraftTrackers.py index da064ffd9..29494d6fb 100644 --- a/src/Mod/Draft/DraftTrackers.py +++ b/src/Mod/Draft/DraftTrackers.py @@ -503,7 +503,10 @@ class wireTracker(Tracker): def update(self,wire): if wire: - self.line.numVertices.setValue(len(wire.Vertexes)) + if self.closed: + self.line.numVertices.setValue(len(wire.Vertexes)+1) + else: + self.line.numVertices.setValue(len(wire.Vertexes)) for i in range(len(wire.Vertexes)): p=wire.Vertexes[i].Point self.coords.point.set1Value(i,[p.x,p.y,p.z])