Draft: Fixed weaknesses in Draft Edit command

This commit is contained in:
Yorik van Havre
2017-04-16 12:18:21 -03:00
parent 7a97e815c1
commit 9ce60ba553

View File

@@ -3718,6 +3718,11 @@ class Edit(Modifier):
self.running = False
self.trackers = []
self.obj = None
self.call = None
self.selectstate = None
self.originalDisplayMode = None
self.originalPoints = None
self.originalNodes = None
def GetResources(self):
return {'Pixmap' : 'Draft_Edit',
@@ -3731,22 +3736,50 @@ class Edit(Modifier):
Modifier.Activated(self,"Edit")
if FreeCADGui.Selection.getSelection():
self.selection = FreeCADGui.Selection.getSelection()
if "Proxy" in self.selection[0].PropertiesList:
if hasattr(self.selection[0].Proxy,"Type"):
self.proceed()
if len(self.selection) == 1:
if "Proxy" in self.selection[0].PropertiesList:
if hasattr(self.selection[0].Proxy,"Type"):
if not Draft.getType(self.selection[0]) in ["BezCurve","Wire","BSpline","Circle","Rectangle",
"Polygon","Dimension","Space","Structure","PanelCut",
"PanelSheet"]:
msg(translate("draft", "This object type is not editable\n"),'warning')
self.finish()
return
self.proceed()
return
else:
msg(translate("draft", "This object type is not editable\n"),'warning')
self.finish()
return
else:
msg(translate("draft", "This object type is not editable\n"),'warning')
self.finish()
return
else:
msg(translate("draft", "Please select only one object\n"),'warning')
self.finish()
return
self.ghost = None
self.ui.selectUi()
msg(translate("draft", "Select a Draft object to edit\n"))
if self.call:
self.view.removeEventCallback("SoEvent",self.call)
self.call = self.view.addEventCallback("SoEvent",selectObject)
def proceed(self):
if self.call:
self.view.removeEventCallback("SoEvent",self.call)
self.call = None
if self.doc:
self.obj = FreeCADGui.Selection.getSelection()
if self.obj:
self.obj = self.obj[0]
if not Draft.getType(self.obj) in ["BezCurve","Wire","BSpline","Circle","Rectangle",
"Polygon","Dimension","Space","Structure","PanelCut",
"PanelSheet"]:
msg(translate("draft", "This object type is not editable\n"),'warning')
self.finish()
return
if (Draft.getType(self.obj) == "BezCurve"):
self.ui.editUi("BezCurve")
else:
@@ -3867,12 +3900,19 @@ class Edit(Modifier):
for t in self.trackers:
t.finalize()
if self.obj:
if hasattr(self.obj.ViewObject,"Selectable"):
if hasattr(self.obj.ViewObject,"Selectable") and (self.selectstate != None):
self.obj.ViewObject.Selectable = self.selectstate
if Draft.getType(self.obj) == "Structure":
self.obj.ViewObject.DisplayMode = self.originalDisplayMode
self.obj.ViewObject.NodeSize = self.originalPoints
self.obj.ViewObject.ShowNodes = self.originalNodes
if self.originalDisplayMode != None:
self.obj.ViewObject.DisplayMode = self.originalDisplayMode
if self.originalPoints != None:
self.obj.ViewObject.NodeSize = self.originalPoints
if self.originalNodes != None:
self.obj.ViewObject.ShowNodes = self.originalNodes
self.selectstate = None
self.originalDisplayMode = None
self.originalPoints = None
self.originalNodes = None
Modifier.finish(self)
plane.restore()
if FreeCADGui.Snapper.grid: