Merge pull request #4389 from marioalexis84/draft-close_button
[0.20] [Draft] Call finish method if Close button is pressed in dumb taskdialog
This commit is contained in:
@@ -1179,12 +1179,12 @@ class DraftToolBar:
|
||||
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
|
||||
@@ -1306,20 +1306,21 @@ class DraftToolBar:
|
||||
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)
|
||||
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ class Clone(gui_base_original.Modifier):
|
||||
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",
|
||||
|
||||
@@ -63,7 +63,7 @@ class Downgrade(gui_base_original.Modifier):
|
||||
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",
|
||||
|
||||
@@ -62,7 +62,7 @@ class Draft2Sketch(gui_base_original.Modifier):
|
||||
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",
|
||||
|
||||
@@ -300,7 +300,7 @@ class Edit(gui_base_original.Modifier):
|
||||
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")
|
||||
|
||||
@@ -67,7 +67,7 @@ class Facebinder(gui_base_original.Creator):
|
||||
|
||||
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",
|
||||
|
||||
@@ -72,7 +72,7 @@ class Join(gui_base_original.Modifier):
|
||||
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",
|
||||
|
||||
@@ -70,7 +70,7 @@ class Mirror(gui_base_original.Modifier):
|
||||
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",
|
||||
|
||||
@@ -78,7 +78,7 @@ class Move(gui_base_original.Modifier):
|
||||
"""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)
|
||||
|
||||
@@ -72,7 +72,7 @@ class Offset(gui_base_original.Modifier):
|
||||
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",
|
||||
|
||||
@@ -75,7 +75,7 @@ class Rotate(gui_base_original.Modifier):
|
||||
"""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)
|
||||
|
||||
@@ -84,7 +84,7 @@ class Scale(gui_base_original.Modifier):
|
||||
"""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)
|
||||
|
||||
@@ -91,6 +91,7 @@ class Draft_SelectPlane:
|
||||
# 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))
|
||||
|
||||
@@ -64,7 +64,7 @@ class Shape2DView(gui_base_original.Modifier):
|
||||
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",
|
||||
|
||||
@@ -67,9 +67,11 @@ class Stretch(gui_base_original.Modifier):
|
||||
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",
|
||||
@@ -251,9 +253,9 @@ class Stretch(gui_base_original.Modifier):
|
||||
|
||||
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()
|
||||
|
||||
@@ -87,7 +87,7 @@ class Trimex(gui_base_original.Modifier):
|
||||
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",
|
||||
|
||||
@@ -63,7 +63,7 @@ class Upgrade(gui_base_original.Modifier):
|
||||
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",
|
||||
|
||||
Reference in New Issue
Block a user