FEM: Python VP, add return variable to unSetEdit methods and improve reseting the edit mode

This commit is contained in:
Bernd Hahnebach
2018-05-24 23:36:24 +02:00
parent 7512fb5628
commit be28744829
14 changed files with 59 additions and 55 deletions

View File

@@ -53,7 +53,7 @@ class ViewProxy(ViewProviderFemConstraint.ViewProxy):
def unsetEdit(self, vobj, mode=0):
FreeCADGui.Control.closeDialog()
return
return True
class _TaskPanel(object):

View File

@@ -53,7 +53,7 @@ class ViewProxy(ViewProviderFemConstraint.ViewProxy):
def unsetEdit(self, vobj, mode=0):
FreeCADGui.Control.closeDialog()
return
return True
class _TaskPanel(object):

View File

@@ -52,7 +52,7 @@ class ViewProxy(ViewProviderFemConstraint.ViewProxy):
def unsetEdit(self, vobj, mode=0):
FreeCADGui.Control.closeDialog()
return
return True
class _TaskPanel(object):

View File

@@ -82,7 +82,7 @@ class _ViewProviderFemElementFluid1D:
def unsetEdit(self, vobj, mode=0):
FreeCADGui.Control.closeDialog()
return
return True
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
@@ -160,21 +160,20 @@ class _TaskPanelFemElementFluid1D:
def accept(self):
self.set_fluidsection_props()
self.obj.References = self.selectionWidget.references
if self.sel_server:
FreeCADGui.Selection.removeObserver(self.sel_server)
FreeCAD.ActiveDocument.recompute()
self.set_back_all()
self.recompute_and_set_back_all()
return True
def reject(self):
self.set_back_all()
self.recompute_and_set_back_all()
return True
def set_back_all(self):
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)
FreeCADGui.ActiveDocument.resetEdit()
doc.resetEdit()
def get_fluidsection_props(self):
self.SectionType = self.obj.SectionType

View File

@@ -79,7 +79,7 @@ class _ViewProviderFemElementGeometry1D:
def unsetEdit(self, vobj, mode=0):
FreeCADGui.Control.closeDialog()
return
return True
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
@@ -128,19 +128,20 @@ class _TaskPanelFemElementGeometry1D:
def accept(self):
self.set_beamsection_props()
self.obj.References = self.selectionWidget.references
FreeCAD.ActiveDocument.recompute()
self.set_back_all()
self.recompute_and_set_back_all()
return True
def reject(self):
self.set_back_all()
self.recompute_and_set_back_all()
return True
def set_back_all(self):
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)
FreeCADGui.ActiveDocument.resetEdit()
doc.resetEdit()
def get_beamsection_props(self):
self.SectionType = self.obj.SectionType

View File

@@ -78,7 +78,7 @@ class _ViewProviderFemElementGeometry2D:
def unsetEdit(self, vobj, mode=0):
FreeCADGui.Control.closeDialog()
return
return True
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
@@ -120,19 +120,20 @@ class _TaskPanelFemElementGeometry2D:
def accept(self):
self.obj.Thickness = self.thickness
self.obj.References = self.selectionWidget.references
FreeCAD.ActiveDocument.recompute()
self.set_back_all()
self.recompute_and_set_back_all()
return True
def reject(self):
self.set_back_all()
self.recompute_and_set_back_all()
return True
def set_back_all(self):
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)
FreeCADGui.ActiveDocument.resetEdit()
doc.resetEdit()
def init_parameter_widget(self):
self.thickness = self.obj.Thickness

View File

@@ -79,7 +79,7 @@ class _ViewProviderFemElementRotation1D:
def unsetEdit(self, vobj, mode=0):
FreeCADGui.Control.closeDialog()
return
return True
'''
def setEdit(self, vobj, mode=0):
@@ -125,20 +125,20 @@ class _TaskPanelFemElementRotation1D:
def accept(self):
self.obj.Rotation = self.rotation
self.obj.References = self.selectionWidget.references
FreeCAD.ActiveDocument.recompute()
self.set_back_all()
self.recompute_and_set_back_all()
return True
def reject(self):
self.set_back_all()
self.recompute_and_set_back_all()
return True
def set_back_all(self):
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)
FreeCADGui.ActiveDocument.resetEdit()
doc.resetEdit()
def rotation_changed(self, base_quantity_value):
self.rotation = base_quantity_value

View File

@@ -75,7 +75,7 @@ class _ViewProviderFemMaterial:
def unsetEdit(self, vobj, mode):
FreeCADGui.Control.closeDialog()
return
return True
# overwrite the doubleClicked of material object python to make sure no other Material taskd (and thus no selection observer) is still active
def doubleClicked(self, vobj):
@@ -174,14 +174,14 @@ class _TaskPanelFemMaterial:
if self.selectionWidget.has_equal_references_shape_types():
self.obj.Material = self.material
self.obj.References = self.selectionWidget.references
self.set_back_all_and_recompute()
self.recompute_and_set_back_all()
return True
def reject(self):
self.set_back_all_and_recompute()
self.recompute_and_set_back_all()
return True
def set_back_all_and_recompute(self):
def recompute_and_set_back_all(self):
doc = FreeCADGui.getDocument(self.obj.Document)
doc.Document.recompute()
self.selectionWidget.setback_listobj_visibility()

View File

@@ -78,7 +78,7 @@ class _ViewProviderFemMeshBoundaryLayer:
def unsetEdit(self, vobj, mode=0):
FreeCADGui.Control.closeDialog()
return
return True
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
@@ -122,19 +122,20 @@ class _TaskPanelFemMeshBoundaryLayer:
def accept(self):
self.set_mesh_boundarylayer_props()
self.obj.References = self.selectionWidget.references
FreeCAD.ActiveDocument.recompute()
self.set_back_all()
self.recompute_and_set_back_all()
return True
def reject(self):
self.set_back_all()
self.recompute_and_set_back_all()
return True
def set_back_all(self):
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)
FreeCADGui.ActiveDocument.resetEdit()
doc.resetEdit()
def init_parameter_widget(self):
self.bl_min_thickness = self.obj.MinimumThickness

View File

@@ -75,7 +75,7 @@ class _ViewProviderFemMeshGmsh:
def unsetEdit(self, vobj, mode):
FreeCADGui.Control.closeDialog()
self.ViewObject.hide() # hide the mesh after edit is finished
return
return True
def doubleClicked(self, vobj):
# Group meshing is only active on active analysis, we should make sure the analysis the mesh belongs too is active

View File

@@ -77,7 +77,7 @@ class _ViewProviderFemMeshGroup:
def unsetEdit(self, vobj, mode=0):
FreeCADGui.Control.closeDialog()
return
return True
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
@@ -120,19 +120,20 @@ class _TaskPanelFemMeshGroup:
def accept(self):
self.obj.UseLabel = self.use_label
self.obj.References = self.selectionWidget.references
FreeCAD.ActiveDocument.recompute()
self.set_back_all()
self.recompute_and_set_back_all()
return True
def reject(self):
self.set_back_all()
self.recompute_and_set_back_all()
return True
def set_back_all(self):
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)
FreeCADGui.ActiveDocument.resetEdit()
doc.resetEdit()
def init_parameter_widget(self):
self.use_label = self.obj.UseLabel

View File

@@ -78,7 +78,7 @@ class _ViewProviderFemMeshRegion:
def unsetEdit(self, vobj, mode=0):
FreeCADGui.Control.closeDialog()
return
return True
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
@@ -120,19 +120,20 @@ class _TaskPanelFemMeshRegion:
def accept(self):
self.obj.CharacteristicLength = self.elelen
self.obj.References = self.selectionWidget.references
FreeCAD.ActiveDocument.recompute()
self.set_back_all()
self.recompute_and_set_back_all()
return True
def reject(self):
self.set_back_all()
self.recompute_and_set_back_all()
return True
def set_back_all(self):
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)
FreeCADGui.ActiveDocument.resetEdit()
doc.resetEdit()
def init_parameter_widget(self):
self.elelen = self.obj.CharacteristicLength

View File

@@ -94,7 +94,7 @@ class _ViewProviderFemResultMechanical:
def unsetEdit(self, vobj, mode=0):
FreeCADGui.Control.closeDialog()
self.Object.Mesh.ViewObject.hide() # hide the mesh after result viewing is finished, but do not reset the coloring
return
return True
def __getstate__(self):
return None

View File

@@ -71,7 +71,7 @@ class _ViewProviderFemSolverCalculix:
def unsetEdit(self, vobj, mode=0):
FreeCADGui.Control.closeDialog()
return
return True
def doubleClicked(self, vobj):
doc = FreeCADGui.getDocument(vobj.Object.Document)