Navigation Menu

Skip to content

Commit

Permalink
Draft: Fix multiple crashes when using modification functions - fixes #…
Browse files Browse the repository at this point in the history
  • Loading branch information
marioalexis84 committed Jan 2, 2021
1 parent 01072f3 commit 4d9e294
Show file tree
Hide file tree
Showing 13 changed files with 27 additions and 58 deletions.
8 changes: 3 additions & 5 deletions src/Mod/Draft/draftguitools/gui_array_simple.py
Expand Up @@ -79,16 +79,14 @@ def Activated(self, name=_tr("Array")):
if self.ui:
self.ui.selectUi()
_msg(translate("draft", "Select an object to array"))
self.call = \
self.view.addEventCallback("SoEvent",
gui_tool_utils.selectObject)
self.call = self.view.addEventCallback(
"SoEvent",
gui_tool_utils.selectObject)
else:
self.proceed()

def proceed(self):
"""Proceed with the command if one object was selected."""
if self.call:
self.view.removeEventCallback("SoEvent", self.call)
if Gui.Selection.getSelection():
obj = Gui.Selection.getSelection()[0]
Gui.addModule("Draft")
Expand Down
9 changes: 3 additions & 6 deletions src/Mod/Draft/draftguitools/gui_clone.py
Expand Up @@ -80,17 +80,14 @@ def Activated(self):
if self.ui:
self.ui.selectUi()
_msg(translate("draft", "Select an object to clone"))
self.call = \
self.view.addEventCallback("SoEvent",
gui_tool_utils.selectObject)
self.call = self.view.addEventCallback(
"SoEvent",
gui_tool_utils.selectObject)
else:
self.proceed()

def proceed(self):
"""Proceed with the command if one object was selected."""
if self.call:
self.view.removeEventCallback("SoEvent", self.call)

if Gui.Selection.getSelection():
sels = len(Gui.Selection.getSelection())
Gui.addModule("Draft")
Expand Down
9 changes: 3 additions & 6 deletions src/Mod/Draft/draftguitools/gui_downgrade.py
Expand Up @@ -71,17 +71,14 @@ def Activated(self):
if not Gui.Selection.getSelection():
self.ui.selectUi()
_msg(translate("draft", "Select an object to upgrade"))
self.call = \
self.view.addEventCallback("SoEvent",
gui_tool_utils.selectObject)
self.call = self.view.addEventCallback(
"SoEvent",
gui_tool_utils.selectObject)
else:
self.proceed()

def proceed(self):
"""Proceed with execution of the command after selection."""
if self.call:
self.view.removeEventCallback("SoEvent", self.call)

if Gui.Selection.getSelection():
Gui.addModule("Draft")
_cmd = 'Draft.downgrade'
Expand Down
9 changes: 3 additions & 6 deletions src/Mod/Draft/draftguitools/gui_draft2sketch.py
Expand Up @@ -71,17 +71,14 @@ def Activated(self):
if self.ui:
self.ui.selectUi()
_msg(translate("draft", "Select an object to convert."))
self.call = \
self.view.addEventCallback("SoEvent",
gui_tool_utils.selectObject)
self.call = self.view.addEventCallback(
"SoEvent",
gui_tool_utils.selectObject)
else:
self.proceed()

def proceed(self):
"""Proceed with the command if one object was selected."""
if self.call:
self.view.removeEventCallback("SoEvent", self.call)

sel = Gui.Selection.getSelection()
allSketches = True
allDraft = True
Expand Down
8 changes: 3 additions & 5 deletions src/Mod/Draft/draftguitools/gui_facebinders.py
Expand Up @@ -70,16 +70,14 @@ def Activated(self):
if self.ui:
self.ui.selectUi()
_msg(translate("draft", "Select faces from existing objects"))
self.call = \
self.view.addEventCallback("SoEvent",
gui_tool_utils.selectObject)
self.call = self.view.addEventCallback(
"SoEvent",
gui_tool_utils.selectObject)
else:
self.proceed()

def proceed(self):
"""Proceed when a valid selection has been made."""
if self.call:
self.view.removeEventCallback("SoEvent", self.call)
if Gui.Selection.getSelection():
App.ActiveDocument.openTransaction("Create Facebinder")
Gui.addModule("Draft")
Expand Down
7 changes: 3 additions & 4 deletions src/Mod/Draft/draftguitools/gui_join.py
Expand Up @@ -78,8 +78,9 @@ def Activated(self):
if not Gui.Selection.getSelection():
self.ui.selectUi()
_msg(translate("draft", "Select an object to join"))
self.call = self.view.addEventCallback("SoEvent",
gui_tool_utils.selectObject)
self.call = self.view.addEventCallback(
"SoEvent",
gui_tool_utils.selectObject)
else:
self.proceed()

Expand All @@ -90,8 +91,6 @@ def proceed(self):
visually share a point. This is due to the underlying `joinWires`
method not handling the points correctly.
"""
if self.call:
self.view.removeEventCallback("SoEvent", self.call)
if Gui.Selection.getSelection():
self.print_selection()
Gui.addModule("Draft")
Expand Down
6 changes: 3 additions & 3 deletions src/Mod/Draft/draftguitools/gui_offset.py
Expand Up @@ -78,9 +78,9 @@ def Activated(self):
if not Gui.Selection.getSelection():
self.ui.selectUi()
_msg(translate("draft", "Select an object to offset"))
self.call = \
self.view.addEventCallback("SoEvent",
gui_tool_utils.selectObject)
self.call = self.view.addEventCallback(
"SoEvent",
gui_tool_utils.selectObject)
elif len(Gui.Selection.getSelection()) > 1:
_wrn(translate("draft", "Offset only works "
"on one object at a time."))
Expand Down
3 changes: 0 additions & 3 deletions src/Mod/Draft/draftguitools/gui_patharray.py
Expand Up @@ -103,9 +103,6 @@ def Activated(self, name=_tr("Path array")):

def proceed(self):
"""Proceed with the command if one object was selected."""
if self.call:
self.view.removeEventCallback("SoEvent", self.call)

sel = Gui.Selection.getSelectionEx()
if len(sel) != 2:
_err(_tr("Please select exactly two objects, "
Expand Down
3 changes: 0 additions & 3 deletions src/Mod/Draft/draftguitools/gui_pathtwistedarray.py
Expand Up @@ -80,9 +80,6 @@ def Activated(self, name=_tr("Path twisted array")):

def proceed(self):
"""Proceed with the command if one object was selected."""
if self.call:
self.view.removeEventCallback("SoEvent", self.call)

sel = Gui.Selection.getSelectionEx()
if len(sel) != 2:
_err(_tr("Please select exactly two objects, "
Expand Down
3 changes: 0 additions & 3 deletions src/Mod/Draft/draftguitools/gui_pointarray.py
Expand Up @@ -113,9 +113,6 @@ def Activated(self, name="Point array"):

def proceed(self):
"""Proceed with the command if one object was selected."""
if self.call:
self.view.removeEventCallback("SoEvent", self.call)

sel = Gui.Selection.getSelectionEx()
if len(sel) != 2:
_err(_tr("Please select exactly two objects, "
Expand Down
9 changes: 3 additions & 6 deletions src/Mod/Draft/draftguitools/gui_shape2dview.py
Expand Up @@ -75,17 +75,14 @@ def Activated(self):
if self.ui:
self.ui.selectUi()
_msg(translate("draft", "Select an object to project"))
self.call = \
self.view.addEventCallback("SoEvent",
gui_tool_utils.selectObject)
self.call = self.view.addEventCallback(
"SoEvent",
gui_tool_utils.selectObject)
else:
self.proceed()

def proceed(self):
"""Proceed with the command if one object was selected."""
if self.call:
self.view.removeEventCallback("SoEvent", self.call)

faces = []
objs = []
vec = Gui.ActiveDocument.ActiveView.getViewDirection().negative()
Expand Down
2 changes: 0 additions & 2 deletions src/Mod/Draft/draftguitools/gui_split.py
Expand Up @@ -112,8 +112,6 @@ def proceed(self, info):
self.commit(translate("draft", "Split line"),
_cmd_list)

if self.call:
self.view.removeEventCallback("SoEvent", self.call)
self.finish()


Expand Down
9 changes: 3 additions & 6 deletions src/Mod/Draft/draftguitools/gui_upgrade.py
Expand Up @@ -73,17 +73,14 @@ def Activated(self):
if not Gui.Selection.getSelection():
self.ui.selectUi()
_msg(translate("draft", "Select an object to upgrade"))
self.call = \
self.view.addEventCallback("SoEvent",
gui_tool_utils.selectObject)
self.call = self.view.addEventCallback(
"SoEvent",
gui_tool_utils.selectObject)
else:
self.proceed()

def proceed(self):
"""Proceed with execution of the command after selection."""
if self.call:
self.view.removeEventCallback("SoEvent", self.call)

if Gui.Selection.getSelection():
Gui.addModule("Draft")
_cmd = 'Draft.upgrade'
Expand Down

0 comments on commit 4d9e294

Please sign in to comment.