Fem: Remove selection observer - fixes #14001

This commit is contained in:
marioalexis
2024-06-05 12:00:56 -03:00
committed by Chris Hennes
parent 83a268881d
commit 932c73f0de
19 changed files with 31 additions and 37 deletions

View File

@@ -592,6 +592,11 @@ class GeometryElementsSelection(QtGui.QWidget):
return False
return True
def finish_selection(self):
self.setback_listobj_visibility()
if self.sel_server:
FreeCADGui.Selection.removeObserver(self.sel_server)
class FemSelectionObserver:
"""selection observer especially for the needs of geometry reference selection of FEM"""

View File

@@ -100,6 +100,7 @@ class _TaskPanel(object):
def reject(self):
self.restore_visibility()
self.selection_widget.finish_selection()
FreeCADGui.ActiveDocument.resetEdit()
return True
@@ -110,6 +111,7 @@ class _TaskPanel(object):
self.obj.Mode = self.mode
self.obj.Document.recompute()
self.selection_widget.finish_selection()
FreeCADGui.ActiveDocument.resetEdit()
self.restore_visibility()
return True

View File

@@ -155,13 +155,8 @@ class _TaskPanel:
doc = FreeCADGui.getDocument(self.obj.Document)
doc.Document.recompute()
self.AxisSelectionWidget.setback_listobj_visibility()
if self.AxisSelectionWidget.sel_server:
FreeCADGui.Selection.removeObserver(self.AxisSelectionWidget.sel_server)
self.BodySelectionWidget.setback_listobj_visibility()
if self.BodySelectionWidget.sel_server:
FreeCADGui.Selection.removeObserver(self.BodySelectionWidget.sel_server)
self.AxisSelectionWidget.finish_selection()
self.BodySelectionWidget.finish_selection()
doc.resetEdit()

View File

@@ -78,6 +78,7 @@ class _TaskPanel(object):
def reject(self):
self._restoreVisibility()
self._selectionWidget.finish_selection()
FreeCADGui.ActiveDocument.resetEdit()
return True
@@ -86,6 +87,7 @@ class _TaskPanel(object):
self._obj.References = self._selectionWidget.references
self._applyWidgetChanges()
self._obj.Document.recompute()
self._selectionWidget.finish_selection()
FreeCADGui.ActiveDocument.resetEdit()
self._restoreVisibility()
return True

View File

@@ -102,6 +102,7 @@ class _TaskPanel(object):
def reject(self):
self._restoreVisibility()
self._selectionWidget.finish_selection()
FreeCADGui.ActiveDocument.resetEdit()
return True
@@ -110,6 +111,7 @@ class _TaskPanel(object):
self._obj.References = self._selectionWidget.references
self._applyWidgetChanges()
self._obj.Document.recompute()
self._selectionWidget.finish_selection()
FreeCADGui.ActiveDocument.resetEdit()
self._restoreVisibility()
return True

View File

@@ -169,6 +169,7 @@ class _TaskPanel(object):
self._part.ViewObject.show()
def reject(self):
self._selectionWidget.finish_selection()
FreeCADGui.ActiveDocument.resetEdit()
self._restoreVisibility()
return True
@@ -178,6 +179,7 @@ class _TaskPanel(object):
self._obj.References = self._selectionWidget.references
self._applyWidgetChanges()
self._obj.Document.recompute()
self._selectionWidget.finish_selection()
FreeCADGui.ActiveDocument.resetEdit()
self._restoreVisibility()
return True

View File

@@ -168,6 +168,7 @@ class _TaskPanel(object):
self._part.ViewObject.show()
def reject(self):
self._selectionWidget.finish_selection()
FreeCADGui.ActiveDocument.resetEdit()
self._restoreVisibility()
return True
@@ -177,6 +178,7 @@ class _TaskPanel(object):
self._obj.References = self._selectionWidget.references
self._applyWidgetChanges()
self._obj.Document.recompute()
self._selectionWidget.finish_selection()
FreeCADGui.ActiveDocument.resetEdit()
self._restoreVisibility()
return True

View File

@@ -77,6 +77,7 @@ class _TaskPanel(object):
def reject(self):
self._restoreVisibility()
self._selectionWidget.finish_selection()
FreeCADGui.ActiveDocument.resetEdit()
return True
@@ -85,6 +86,7 @@ class _TaskPanel(object):
self._obj.References = self._selectionWidget.references
self._applyWidgetChanges()
self._obj.Document.recompute()
self._selectionWidget.finish_selection()
FreeCADGui.ActiveDocument.resetEdit()
self._restoreVisibility()
return True

View File

@@ -78,6 +78,7 @@ class _TaskPanel(object):
def reject(self):
self._restoreVisibility()
self._selectionWidget.finish_selection()
FreeCADGui.ActiveDocument.resetEdit()
return True
@@ -86,6 +87,7 @@ class _TaskPanel(object):
self._obj.References = self._selectionWidget.references
self._applyWidgetChanges()
self._obj.Document.recompute()
self._selectionWidget.finish_selection()
FreeCADGui.ActiveDocument.resetEdit()
self._restoreVisibility()
return True

View File

@@ -105,9 +105,7 @@ class _TaskPanel:
def recompute_and_set_back_all(self):
doc = FreeCADGui.getDocument(self.obj.Document)
doc.Document.recompute()
self.selectionWidget.setback_listobj_visibility()
if self.selectionWidget.sel_server:
FreeCADGui.Selection.removeObserver(self.selectionWidget.sel_server)
self.selectionWidget.finish_selection()
doc.resetEdit()
def init_parameter_widget(self):

View File

@@ -111,9 +111,7 @@ class _TaskPanel:
def recompute_and_set_back_all(self):
doc = FreeCADGui.getDocument(self.obj.Document)
doc.Document.recompute()
self.selectionWidget.setback_listobj_visibility()
if self.selectionWidget.sel_server:
FreeCADGui.Selection.removeObserver(self.selectionWidget.sel_server)
self.selectionWidget.finish_selection()
doc.resetEdit()
def init_parameter_widget(self):

View File

@@ -255,9 +255,7 @@ class _TaskPanel:
def recompute_and_set_back_all(self):
doc = FreeCADGui.getDocument(self.obj.Document)
doc.Document.recompute()
self.selectionWidget.setback_listobj_visibility()
if self.selectionWidget.sel_server:
FreeCADGui.Selection.removeObserver(self.selectionWidget.sel_server)
self.selectionWidget.finish_selection()
doc.resetEdit()
def get_fluidsection_props(self):

View File

@@ -112,9 +112,7 @@ class _TaskPanel:
def recompute_and_set_back_all(self):
doc = FreeCADGui.getDocument(self.obj.Document)
doc.Document.recompute()
self.selectionWidget.setback_listobj_visibility()
if self.selectionWidget.sel_server:
FreeCADGui.Selection.removeObserver(self.selectionWidget.sel_server)
self.selectionWidget.finish_selection()
doc.resetEdit()
def get_beamsection_props(self):

View File

@@ -81,9 +81,7 @@ class _TaskPanel:
def recompute_and_set_back_all(self):
doc = FreeCADGui.getDocument(self.obj.Document)
doc.Document.recompute()
self.selectionWidget.setback_listobj_visibility()
if self.selectionWidget.sel_server:
FreeCADGui.Selection.removeObserver(self.selectionWidget.sel_server)
self.selectionWidget.finish_selection()
doc.resetEdit()
def init_parameter_widget(self):

View File

@@ -81,9 +81,7 @@ class _TaskPanel:
def recompute_and_set_back_all(self):
doc = FreeCADGui.getDocument(self.obj.Document)
doc.Document.recompute()
self.selectionWidget.setback_listobj_visibility()
if self.selectionWidget.sel_server:
FreeCADGui.Selection.removeObserver(self.selectionWidget.sel_server)
self.selectionWidget.finish_selection()
doc.resetEdit()
def rotation_changed(self, base_quantity_value):

View File

@@ -230,9 +230,7 @@ class _TaskPanel:
def recompute_and_set_back_all(self):
doc = FreeCADGui.getDocument(self.obj.Document)
doc.Document.recompute()
self.selectionWidget.setback_listobj_visibility()
if self.selectionWidget.sel_server:
FreeCADGui.Selection.removeObserver(self.selectionWidget.sel_server)
self.selectionWidget.finish_selection()
doc.resetEdit()
def do_not_set_thermal_zeros(self):

View File

@@ -93,9 +93,7 @@ class _TaskPanel:
def recompute_and_set_back_all(self):
doc = FreeCADGui.getDocument(self.obj.Document)
doc.Document.recompute()
self.selectionWidget.setback_listobj_visibility()
if self.selectionWidget.sel_server:
FreeCADGui.Selection.removeObserver(self.selectionWidget.sel_server)
self.selectionWidget.finish_selection()
doc.resetEdit()
def init_parameter_widget(self):

View File

@@ -87,9 +87,7 @@ class _TaskPanel:
def recompute_and_set_back_all(self):
doc = FreeCADGui.getDocument(self.obj.Document)
doc.Document.recompute()
self.selectionWidget.setback_listobj_visibility()
if self.selectionWidget.sel_server:
FreeCADGui.Selection.removeObserver(self.selectionWidget.sel_server)
self.selectionWidget.finish_selection()
doc.resetEdit()
def init_parameter_widget(self):

View File

@@ -82,9 +82,7 @@ class _TaskPanel:
def recompute_and_set_back_all(self):
doc = FreeCADGui.getDocument(self.obj.Document)
doc.Document.recompute()
self.selectionWidget.setback_listobj_visibility()
if self.selectionWidget.sel_server:
FreeCADGui.Selection.removeObserver(self.selectionWidget.sel_server)
self.selectionWidget.finish_selection()
doc.resetEdit()
def init_parameter_widget(self):