fixed bug #549 - Undo of offset objects causes Draft tools to stop functioning
This commit is contained in:
parent
c6c12a1ecf
commit
3e48193ada
|
@ -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
|
||||
|
|
|
@ -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 = []
|
||||
|
|
|
@ -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])
|
||||
|
|
Loading…
Reference in New Issue
Block a user