Skip to content

Commit

Permalink
Merge pull request #4389 from marioalexis84/draft-close_button
Browse files Browse the repository at this point in the history
[0.20] [Draft] Call finish method if Close button is pressed in dumb taskdialog
  • Loading branch information
yorikvanhavre committed Apr 20, 2021
2 parents fc6d129 + 8f02f8c commit a25d7cd
Show file tree
Hide file tree
Showing 17 changed files with 28 additions and 24 deletions.
15 changes: 8 additions & 7 deletions src/Mod/Draft/DraftGui.py
Expand Up @@ -1179,12 +1179,12 @@ def setTitle(self,title,icon="Draft_Draft"):
else: # self.taskmode == 0 Draft toolbar is obsolete and has been disabled (February 2020)
self.cmdlabel.setText(title)

def selectUi(self,extra=None,callback=None):
def selectUi(self,extra=None, on_close_call=None):
if not self.taskmode:
# self.taskmode == 0 Draft toolbar is obsolete and has been disabled (February 2020)
self.labelx.setText(translate("draft", "Pick Object"))
self.labelx.show()
self.makeDumbTask(extra,callback)
self.makeDumbTask(extra, on_close_call)

def editUi(self, mode=None):
self.lastMode=mode
Expand Down Expand Up @@ -1306,20 +1306,21 @@ def relocate(self):
else:
self.layout.setDirection(QtGui.QBoxLayout.LeftToRight)

def makeDumbTask(self,extra=None,callback=None):
def makeDumbTask(self, extra=None, on_close_call=None):
"""create a dumb taskdialog to prevent deleting the temp object"""
class TaskPanel:
def __init__(self,extra=None,callback=None):
def __init__(self, extra=None, callback=None):
if extra:
self.form = [extra]
self.callback = callback
def getStandardButtons(self):
return int(QtGui.QDialogButtonBox.Close)
def reject(self):
if callback:
callback()
if self.callback:
self.callback()
return True
FreeCADGui.Control.closeDialog()
panel = TaskPanel(extra,callback)
panel = TaskPanel(extra, on_close_call)
FreeCADGui.Control.showDialog(panel)


Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Draft/draftguitools/gui_clone.py
Expand Up @@ -75,7 +75,7 @@ def Activated(self):
super(Clone, self).Activated(name=translate("draft","Clone"))
if not Gui.Selection.getSelection():
if self.ui:
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to clone"))
self.call = self.view.addEventCallback(
"SoEvent",
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Draft/draftguitools/gui_downgrade.py
Expand Up @@ -63,7 +63,7 @@ def Activated(self):
super(Downgrade, self).Activated(name=translate("draft","Downgrade"))
if self.ui:
if not Gui.Selection.getSelection():
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to upgrade"))
self.call = self.view.addEventCallback(
"SoEvent",
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Draft/draftguitools/gui_draft2sketch.py
Expand Up @@ -62,7 +62,7 @@ def Activated(self):
super(Draft2Sketch, self).Activated(name=translate("draft","Convert Draft/Sketch"))
if not Gui.Selection.getSelection():
if self.ui:
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to convert."))
self.call = self.view.addEventCallback(
"SoEvent",
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Draft/draftguitools/gui_edit.py
Expand Up @@ -300,7 +300,7 @@ def Activated(self):
if Gui.Selection.getSelection():
self.proceed()
else:
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
App.Console.PrintMessage(translate("draft",
"Select a Draft object to edit")
+ "\n")
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Draft/draftguitools/gui_facebinders.py
Expand Up @@ -67,7 +67,7 @@ def Activated(self):

if not Gui.Selection.getSelection():
if self.ui:
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select faces from existing objects"))
self.call = self.view.addEventCallback(
"SoEvent",
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Draft/draftguitools/gui_join.py
Expand Up @@ -72,7 +72,7 @@ def Activated(self):
if not self.ui:
return
if not Gui.Selection.getSelection():
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to join"))
self.call = self.view.addEventCallback(
"SoEvent",
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Draft/draftguitools/gui_mirror.py
Expand Up @@ -70,7 +70,7 @@ def Activated(self):
self.ghost = None
if self.ui:
if not Gui.Selection.getSelection():
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to mirror"))
self.call = \
self.view.addEventCallback("SoEvent",
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Draft/draftguitools/gui_move.py
Expand Up @@ -78,7 +78,7 @@ def get_object_selection(self):
"""Get the object selection."""
if Gui.Selection.getSelectionEx():
return self.proceed()
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to move"))
self.call = \
self.view.addEventCallback("SoEvent", gui_tool_utils.selectObject)
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Draft/draftguitools/gui_offset.py
Expand Up @@ -72,7 +72,7 @@ def Activated(self):
self.arctrack = None
if self.ui:
if not Gui.Selection.getSelection():
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to offset"))
self.call = self.view.addEventCallback(
"SoEvent",
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Draft/draftguitools/gui_rotate.py
Expand Up @@ -75,7 +75,7 @@ def get_object_selection(self):
"""Get the object selection."""
if Gui.Selection.getSelection():
return self.proceed()
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to rotate"))
self.call = \
self.view.addEventCallback("SoEvent", gui_tool_utils.selectObject)
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Draft/draftguitools/gui_scale.py
Expand Up @@ -84,7 +84,7 @@ def get_object_selection(self):
"""Get object selection and proceed if successful."""
if Gui.Selection.getSelection():
return self.proceed()
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to scale"))
self.call = self.view.addEventCallback("SoEvent",
gui_tool_utils.selectObject)
Expand Down
1 change: 1 addition & 0 deletions src/Mod/Draft/draftguitools/gui_selectplane.py
Expand Up @@ -91,6 +91,7 @@ def Activated(self):
# Create task panel
FreeCADGui.Control.closeDialog()
self.taskd = task_selectplane.SelectPlaneTaskPanel()
self.taskd.reject = self.reject

# Fill values
self.taskd.form.checkCenter.setChecked(self.param.GetBool("CenterPlaneOnView", False))
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Draft/draftguitools/gui_shape2dview.py
Expand Up @@ -64,7 +64,7 @@ def Activated(self):
super(Shape2DView, self).Activated(name=translate("draft","Project 2D view"))
if not Gui.Selection.getSelection():
if self.ui:
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to project"))
self.call = self.view.addEventCallback(
"SoEvent",
Expand Down
8 changes: 5 additions & 3 deletions src/Mod/Draft/draftguitools/gui_stretch.py
Expand Up @@ -67,9 +67,11 @@ def GetResources(self):
def Activated(self):
"""Execute when the command is called."""
super(Stretch, self).Activated(name=translate("draft","Stretch"))
self.rectracker = None
self.nodetracker = None
if self.ui:
if not Gui.Selection.getSelection():
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to stretch"))
self.call = \
self.view.addEventCallback("SoEvent",
Expand Down Expand Up @@ -251,9 +253,9 @@ def numericInput(self, numx, numy, numz):

def finish(self, closed=False):
"""Terminate the operation of the command. and clean up."""
if hasattr(self, "rectracker") and self.rectracker:
if self.rectracker:
self.rectracker.finalize()
if hasattr(self, "nodetracker") and self.nodetracker:
if self.nodetracker:
for n in self.nodetracker:
n.finalize()
super(Stretch, self).finish()
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Draft/draftguitools/gui_trimex.py
Expand Up @@ -87,7 +87,7 @@ def Activated(self):
self.width = None
if self.ui:
if not Gui.Selection.getSelection():
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select objects to trim or extend"))
self.call = \
self.view.addEventCallback("SoEvent",
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Draft/draftguitools/gui_upgrade.py
Expand Up @@ -63,7 +63,7 @@ def Activated(self):
super(Upgrade, self).Activated(name=translate("draft","Upgrade"))
if self.ui:
if not Gui.Selection.getSelection():
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to upgrade"))
self.call = self.view.addEventCallback(
"SoEvent",
Expand Down

0 comments on commit a25d7cd

Please sign in to comment.