Draft: minor improvements for gui_edit.py (#17970)
* Draft: minor improvements for gui_edit.py * Fix error...
This commit is contained in:
@@ -364,17 +364,15 @@ class Edit(gui_base_original.Modifier):
|
||||
"""
|
||||
register editing callbacks (former action function)
|
||||
"""
|
||||
viewer = Gui.ActiveDocument.ActiveView.getViewer()
|
||||
self.render_manager = viewer.getSoRenderManager()
|
||||
view = Gui.ActiveDocument.ActiveView
|
||||
self.render_manager = self.view.getViewer().getSoRenderManager()
|
||||
if self._keyPressedCB is None:
|
||||
self._keyPressedCB = view.addEventCallbackPivy(
|
||||
self._keyPressedCB = self.view.addEventCallbackPivy(
|
||||
coin.SoKeyboardEvent.getClassTypeId(), self.keyPressed)
|
||||
if self._mouseMovedCB is None:
|
||||
self._mouseMovedCB = view.addEventCallbackPivy(
|
||||
self._mouseMovedCB = self.view.addEventCallbackPivy(
|
||||
coin.SoLocation2Event.getClassTypeId(), self.mouseMoved)
|
||||
if self._mousePressedCB is None:
|
||||
self._mousePressedCB = view.addEventCallbackPivy(
|
||||
self._mousePressedCB = self.view.addEventCallbackPivy(
|
||||
coin.SoMouseButtonEvent.getClassTypeId(), self.mousePressed)
|
||||
#App.Console.PrintMessage("Draft edit callbacks registered \n")
|
||||
|
||||
@@ -382,17 +380,16 @@ class Edit(gui_base_original.Modifier):
|
||||
"""
|
||||
remove callbacks used during editing if they exist
|
||||
"""
|
||||
view = Gui.ActiveDocument.ActiveView
|
||||
if self._keyPressedCB:
|
||||
view.removeEventCallbackSWIG(coin.SoKeyboardEvent.getClassTypeId(), self._keyPressedCB)
|
||||
self.view.removeEventCallbackSWIG(coin.SoKeyboardEvent.getClassTypeId(), self._keyPressedCB)
|
||||
self._keyPressedCB = None
|
||||
#App.Console.PrintMessage("Draft edit keyboard callback unregistered \n")
|
||||
if self._mouseMovedCB:
|
||||
view.removeEventCallbackSWIG(coin.SoLocation2Event.getClassTypeId(), self._mouseMovedCB)
|
||||
self.view.removeEventCallbackSWIG(coin.SoLocation2Event.getClassTypeId(), self._mouseMovedCB)
|
||||
self._mouseMovedCB = None
|
||||
#App.Console.PrintMessage("Draft edit location callback unregistered \n")
|
||||
if self._mousePressedCB:
|
||||
view.removeEventCallbackSWIG(coin.SoMouseButtonEvent.getClassTypeId(), self._mousePressedCB)
|
||||
self.view.removeEventCallbackSWIG(coin.SoMouseButtonEvent.getClassTypeId(), self._mousePressedCB)
|
||||
self._mousePressedCB = None
|
||||
#App.Console.PrintMessage("Draft edit mouse button callback unregistered \n")
|
||||
|
||||
@@ -572,18 +569,25 @@ class Edit(gui_base_original.Modifier):
|
||||
index, obj.ViewObject.LineColor, marker=marker))
|
||||
|
||||
def removeTrackers(self, obj=None):
|
||||
"""Remove Edit Trackers."""
|
||||
if obj:
|
||||
if obj.Name in self.trackers:
|
||||
for t in self.trackers[obj.Name]:
|
||||
t.finalize()
|
||||
self.trackers[obj.Name] = []
|
||||
else:
|
||||
for key in self.trackers.keys():
|
||||
"""Remove Edit Trackers.
|
||||
|
||||
Attributes
|
||||
----------
|
||||
obj: FreeCAD object
|
||||
Removes trackers only for given object,
|
||||
if obj is None, removes all trackers
|
||||
"""
|
||||
if obj is None:
|
||||
for key in self.trackers:
|
||||
for t in self.trackers[key]:
|
||||
t.finalize()
|
||||
self.trackers = {'object': []}
|
||||
|
||||
else:
|
||||
key = obj.Name
|
||||
if key in self.trackers:
|
||||
for t in self.trackers[key]:
|
||||
t.finalize()
|
||||
self.trackers[key] = []
|
||||
|
||||
def hideTrackers(self, obj=None):
|
||||
"""Hide Edit Trackers.
|
||||
@@ -810,15 +814,18 @@ class Edit(gui_base_original.Modifier):
|
||||
"""Restore objects style during editing mode.
|
||||
"""
|
||||
for obj in objs:
|
||||
if not obj.isAttachedToDocument():
|
||||
# Object has been deleted.
|
||||
continue
|
||||
obj_gui_tools = self.get_obj_gui_tools(obj)
|
||||
if obj_gui_tools and obj.isAttachedToDocument():
|
||||
if obj_gui_tools:
|
||||
obj_gui_tools.restore_object_style(obj, self.objs_formats[obj.Name])
|
||||
|
||||
|
||||
def get_specific_object_info(self, obj, pos):
|
||||
"""Return info of a specific object at a given position.
|
||||
"""
|
||||
selobjs = Gui.ActiveDocument.ActiveView.getObjectsInfo((pos[0],pos[1]))
|
||||
selobjs = self.view.getObjectsInfo((pos[0],pos[1]))
|
||||
if not selobjs:
|
||||
return
|
||||
for info in selobjs:
|
||||
@@ -834,7 +841,7 @@ class Edit(gui_base_original.Modifier):
|
||||
|
||||
If object is one of the edited objects (self.edited_objects).
|
||||
"""
|
||||
selobjs = Gui.ActiveDocument.ActiveView.getObjectsInfo((pos[0],pos[1]))
|
||||
selobjs = self.view.getObjectsInfo((pos[0],pos[1]))
|
||||
if not selobjs:
|
||||
return
|
||||
for info in selobjs:
|
||||
|
||||
Reference in New Issue
Block a user