BIM: Revise close panel on doc close solution (#21302)
* BIM: Revise close panel on doc close solution Use built-in feature to close the task panels. See #21253. * Keep self.doc
This commit is contained in:
@@ -288,7 +288,7 @@ class BIMWorkbench(Workbench):
|
||||
FreeCADGui.addCommand("BIM_Create2DViews", BIM_Create2DViews(self.create_2dviews))
|
||||
insert_at_index = self.annotationtools.index("BIM_TDPage")
|
||||
self.annotationtools.insert(insert_at_index, "BIM_Create2DViews")
|
||||
|
||||
|
||||
# load rebar tools (Reinforcement addon)
|
||||
|
||||
try:
|
||||
@@ -507,7 +507,6 @@ class BIMWorkbench(Workbench):
|
||||
import BimStatus
|
||||
from nativeifc import ifc_observer
|
||||
from draftutils import grid_observer
|
||||
from draftutils import doc_observer
|
||||
|
||||
PARAMS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/BIM")
|
||||
|
||||
@@ -517,7 +516,6 @@ class BIMWorkbench(Workbench):
|
||||
FreeCADGui.Snapper.show()
|
||||
WorkingPlane._view_observer_start()
|
||||
grid_observer._view_observer_setup()
|
||||
doc_observer._doc_observer_start()
|
||||
|
||||
if PARAMS.GetBool("FirstTime", True) and (not hasattr(FreeCAD, "TestEnvironment")):
|
||||
todo.ToDo.delay(FreeCADGui.runCommand, "BIM_Welcome")
|
||||
@@ -588,7 +586,6 @@ class BIMWorkbench(Workbench):
|
||||
import WorkingPlane
|
||||
from nativeifc import ifc_observer
|
||||
from draftutils import grid_observer
|
||||
from draftutils import doc_observer
|
||||
|
||||
PARAMS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/BIM")
|
||||
|
||||
@@ -602,7 +599,6 @@ class BIMWorkbench(Workbench):
|
||||
FreeCADGui.Snapper.hide()
|
||||
WorkingPlane._view_observer_stop()
|
||||
grid_observer._view_observer_setup()
|
||||
doc_observer._doc_observer_stop()
|
||||
|
||||
# print("Deactivating status icon")
|
||||
todo.ToDo.delay(BimStatus.setStatusIcons, False)
|
||||
|
||||
@@ -615,18 +615,23 @@ class DraftToolBar:
|
||||
# Interface modes
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
def taskUi(self,title="Draft",extra=None,icon="Draft_Draft"):
|
||||
def _show_dialog(self, panel):
|
||||
task = FreeCADGui.Control.showDialog(panel)
|
||||
task.setDocumentName(FreeCADGui.ActiveDocument.Document.Name)
|
||||
task.setAutoCloseOnDeletedDocument(True)
|
||||
|
||||
def taskUi(self,title="Draft", extra=None, icon="Draft_Draft"):
|
||||
# reset InputField values
|
||||
self.reset_ui_values()
|
||||
self.isTaskOn = True
|
||||
todo.delay(FreeCADGui.Control.closeDialog,None)
|
||||
todo.delay(FreeCADGui.Control.closeDialog, None)
|
||||
self.baseWidget = DraftBaseWidget()
|
||||
self.layout = QtWidgets.QVBoxLayout(self.baseWidget)
|
||||
self.setupToolBar(task=True)
|
||||
self.retranslateUi(self.baseWidget)
|
||||
self.panel = DraftTaskPanel(self.baseWidget,extra)
|
||||
todo.delay(FreeCADGui.Control.showDialog,self.panel)
|
||||
self.setTitle(title,icon)
|
||||
self.panel = DraftTaskPanel(self.baseWidget, extra)
|
||||
todo.delay(self._show_dialog, self.panel)
|
||||
self.setTitle(title, icon)
|
||||
|
||||
def redraw(self):
|
||||
"""utility function that is performed after each clicked point"""
|
||||
@@ -922,9 +927,9 @@ class DraftToolBar:
|
||||
if self.callback:
|
||||
self.callback()
|
||||
return True
|
||||
todo.delay(FreeCADGui.Control.closeDialog,None)
|
||||
todo.delay(FreeCADGui.Control.closeDialog, None)
|
||||
panel = TaskPanel(extra, on_close_call)
|
||||
todo.delay(FreeCADGui.Control.showDialog,panel)
|
||||
todo.delay(self._show_dialog, panel)
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user