From f14eaa217f6b331c6a3e308385518ad91981bd4f Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Mon, 21 May 2018 14:32:39 +0200 Subject: [PATCH] FEM: Python object VP, add a pop up if a task panel is open while another one will be opened --- .../_ViewProviderFemConstraintSelfWeight.py | 11 +++++++---- .../_ViewProviderFemElementFluid1D.py | 12 ++++++++---- .../_ViewProviderFemElementGeometry1D.py | 12 ++++++++---- .../_ViewProviderFemElementGeometry2D.py | 12 ++++++++---- .../_ViewProviderFemElementRotation1D.py | 11 +++++++---- .../Fem/femguiobjects/_ViewProviderFemMaterial.py | 14 +++++++++----- .../_ViewProviderFemMaterialMechanicalNonlinear.py | 11 +++++++---- .../_ViewProviderFemMeshBoundaryLayer.py | 12 ++++++++---- .../Fem/femguiobjects/_ViewProviderFemMeshGmsh.py | 5 ++++- .../Fem/femguiobjects/_ViewProviderFemMeshGroup.py | 12 ++++++++---- .../femguiobjects/_ViewProviderFemMeshRegion.py | 12 ++++++++---- .../_ViewProviderFemResultMechanical.py | 12 ++++++++---- .../_ViewProviderFemSolverCalculix.py | 5 ++++- 13 files changed, 94 insertions(+), 47 deletions(-) diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintSelfWeight.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintSelfWeight.py index 13d421c74a..5605c0c858 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintSelfWeight.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintSelfWeight.py @@ -54,12 +54,15 @@ class _ViewProviderFemConstraintSelfWeight: return False def doubleClicked(self, vobj): - doc = FreeCADGui.getDocument(vobj.Object.Document) + guidoc = FreeCADGui.getDocument(vobj.Object.Document) # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702 - if not doc.getInEdit(): - doc.setEdit(vobj.Object.Name) + if not guidoc.getInEdit(): + guidoc.setEdit(vobj.Object.Name) else: - FreeCAD.Console.PrintError('Active Task Dialog found! Please close this one first!\n') + from PySide.QtGui import QMessageBox + message = 'Active Task Dialog found! Please close this one before open a new one!' + QMessageBox.critical(None, "Error in tree view", message) + FreeCAD.Console.PrintError(message + '\n') return True def __getstate__(self): diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py index f975f49761..769dd7398c 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py @@ -82,11 +82,15 @@ class _ViewProviderFemElementFluid1D: return def doubleClicked(self, vobj): - doc = FreeCADGui.getDocument(vobj.Object.Document) - if not doc.getInEdit(): - doc.setEdit(vobj.Object.Name) + guidoc = FreeCADGui.getDocument(vobj.Object.Document) + # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702 + if not guidoc.getInEdit(): + guidoc.setEdit(vobj.Object.Name) else: - FreeCAD.Console.PrintError('Active Task Dialog found! Please close this one first!\n') + from PySide.QtGui import QMessageBox + message = 'Active Task Dialog found! Please close this one before open a new one!' + QMessageBox.critical(None, "Error in tree view", message) + FreeCAD.Console.PrintError(message + '\n') return True def __getstate__(self): diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py index 74d453b07e..b8e7ad44c2 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py @@ -81,11 +81,15 @@ class _ViewProviderFemElementGeometry1D: return def doubleClicked(self, vobj): - doc = FreeCADGui.getDocument(vobj.Object.Document) - if not doc.getInEdit(): - doc.setEdit(vobj.Object.Name) + guidoc = FreeCADGui.getDocument(vobj.Object.Document) + # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702 + if not guidoc.getInEdit(): + guidoc.setEdit(vobj.Object.Name) else: - FreeCAD.Console.PrintError('Active Task Dialog found! Please close this one first!\n') + from PySide.QtGui import QMessageBox + message = 'Active Task Dialog found! Please close this one before open a new one!' + QMessageBox.critical(None, "Error in tree view", message) + FreeCAD.Console.PrintError(message + '\n') return True def __getstate__(self): diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py index 2aa3b98461..295437996d 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py @@ -80,11 +80,15 @@ class _ViewProviderFemElementGeometry2D: return def doubleClicked(self, vobj): - doc = FreeCADGui.getDocument(vobj.Object.Document) - if not doc.getInEdit(): - doc.setEdit(vobj.Object.Name) + guidoc = FreeCADGui.getDocument(vobj.Object.Document) + # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702 + if not guidoc.getInEdit(): + guidoc.setEdit(vobj.Object.Name) else: - FreeCAD.Console.PrintError('Active Task Dialog found! Please close this one first!\n') + from PySide.QtGui import QMessageBox + message = 'Active Task Dialog found! Please close this one before open a new one!' + QMessageBox.critical(None, "Error in tree view", message) + FreeCAD.Console.PrintError(message + '\n') return True def __getstate__(self): diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py index ef65a7cd19..9e229b4325 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py @@ -85,12 +85,15 @@ class _ViewProviderFemElementRotation1D: return False def doubleClicked(self, vobj): - doc = FreeCADGui.getDocument(vobj.Object.Document) + guidoc = FreeCADGui.getDocument(vobj.Object.Document) # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702 - if not doc.getInEdit(): - doc.setEdit(vobj.Object.Name) + if not guidoc.getInEdit(): + guidoc.setEdit(vobj.Object.Name) else: - FreeCAD.Console.PrintError('Active Task Dialog found! Please close this one first!\n') + from PySide.QtGui import QMessageBox + message = 'Active Task Dialog found! Please close this one before open a new one!' + QMessageBox.critical(None, "Error in tree view", message) + FreeCAD.Console.PrintError(message + '\n') return True def __getstate__(self): diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py index ff8eee6f8c..45d22af3a9 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py @@ -77,13 +77,17 @@ class _ViewProviderFemMaterial: FreeCADGui.Control.closeDialog() return - # overwrite the doubleClicked to make sure no other Material taskd (and thus no selection observer) is still active + # 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): - doc = FreeCADGui.getDocument(vobj.Object.Document) - if not doc.getInEdit(): - doc.setEdit(vobj.Object.Name) + guidoc = FreeCADGui.getDocument(vobj.Object.Document) + # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702 + if not guidoc.getInEdit(): + guidoc.setEdit(vobj.Object.Name) else: - FreeCAD.Console.PrintError('Active Task Dialog found! Please close this one first!\n') + from PySide.QtGui import QMessageBox + message = 'Active Task Dialog found! Please close this one before open a new one!' + QMessageBox.critical(None, "Error in tree view", message) + FreeCAD.Console.PrintError(message + '\n') return True def __getstate__(self): diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterialMechanicalNonlinear.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterialMechanicalNonlinear.py index 7a3aba8b1a..9b6a7cae87 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterialMechanicalNonlinear.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterialMechanicalNonlinear.py @@ -63,12 +63,15 @@ class _ViewProviderFemMaterialMechanicalNonlinear: return False def doubleClicked(self, vobj): - doc = FreeCADGui.getDocument(vobj.Object.Document) + guidoc = FreeCADGui.getDocument(vobj.Object.Document) # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702 - if not doc.getInEdit(): - doc.setEdit(vobj.Object.Name) + if not guidoc.getInEdit(): + guidoc.setEdit(vobj.Object.Name) else: - FreeCAD.Console.PrintError('Active Task Dialog found! Please close this one first!\n') + from PySide.QtGui import QMessageBox + message = 'Active Task Dialog found! Please close this one before open a new one!' + QMessageBox.critical(None, "Error in tree view", message) + FreeCAD.Console.PrintError(message + '\n') return True def __getstate__(self): diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshBoundaryLayer.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshBoundaryLayer.py index 9fc92ca1a5..bc63aa2b81 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshBoundaryLayer.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshBoundaryLayer.py @@ -80,11 +80,15 @@ class _ViewProviderFemMeshBoundaryLayer: return def doubleClicked(self, vobj): - doc = FreeCADGui.getDocument(vobj.Object.Document) - if not doc.getInEdit(): - doc.setEdit(vobj.Object.Name) + guidoc = FreeCADGui.getDocument(vobj.Object.Document) + # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702 + if not guidoc.getInEdit(): + guidoc.setEdit(vobj.Object.Name) else: - FreeCAD.Console.PrintError('Active Task Dialog found! Please close this one first!\n') + from PySide.QtGui import QMessageBox + message = 'Active Task Dialog found! Please close this one before open a new one!' + QMessageBox.critical(None, "Error in tree view", message) + FreeCAD.Console.PrintError(message + '\n') return True def __getstate__(self): diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py index f501f8648b..6b593fbd16 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py @@ -135,7 +135,10 @@ class _ViewProviderFemMeshGmsh: print('No analysis in the active document.') gui_doc.setEdit(vobj.Object.Name) else: - FreeCAD.Console.PrintError('Active Task Dialog found! Please close this one first!\n') + from PySide.QtGui import QMessageBox + message = 'Active Task Dialog found! Please close this one before open a new one!' + QMessageBox.critical(None, "Error in tree view", message) + FreeCAD.Console.PrintError(message + '\n') return True def __getstate__(self): diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGroup.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGroup.py index d8e4d0611e..fb76d7745c 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGroup.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGroup.py @@ -80,11 +80,15 @@ class _ViewProviderFemMeshGroup: return def doubleClicked(self, vobj): - doc = FreeCADGui.getDocument(vobj.Object.Document) - if not doc.getInEdit(): - doc.setEdit(vobj.Object.Name) + guidoc = FreeCADGui.getDocument(vobj.Object.Document) + # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702 + if not guidoc.getInEdit(): + guidoc.setEdit(vobj.Object.Name) else: - FreeCAD.Console.PrintError('Active Task Dialog found! Please close this one first!\n') + from PySide.QtGui import QMessageBox + message = 'Active Task Dialog found! Please close this one before open a new one!' + QMessageBox.critical(None, "Error in tree view", message) + FreeCAD.Console.PrintError(message + '\n') return True def __getstate__(self): diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshRegion.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshRegion.py index 42d76849ef..1688be950d 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshRegion.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshRegion.py @@ -81,11 +81,15 @@ class _ViewProviderFemMeshRegion: return def doubleClicked(self, vobj): - doc = FreeCADGui.getDocument(vobj.Object.Document) - if not doc.getInEdit(): - doc.setEdit(vobj.Object.Name) + guidoc = FreeCADGui.getDocument(vobj.Object.Document) + # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702 + if not guidoc.getInEdit(): + guidoc.setEdit(vobj.Object.Name) else: - FreeCAD.Console.PrintError('Active Task Dialog found! Please close this one first!\n') + from PySide.QtGui import QMessageBox + message = 'Active Task Dialog found! Please close this one before open a new one!' + QMessageBox.critical(None, "Error in tree view", message) + FreeCAD.Console.PrintError(message + '\n') return True def __getstate__(self): diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemResultMechanical.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemResultMechanical.py index 230fefb97c..3d4dcf5421 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemResultMechanical.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemResultMechanical.py @@ -65,11 +65,15 @@ class _ViewProviderFemResultMechanical: def doubleClicked(self, vobj): if FreeCADGui.activeWorkbench().name() != 'FemWorkbench': FreeCADGui.activateWorkbench("FemWorkbench") - doc = FreeCADGui.getDocument(vobj.Object.Document) - if not doc.getInEdit(): - doc.setEdit(vobj.Object.Name) + guidoc = FreeCADGui.getDocument(vobj.Object.Document) + # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702 + if not guidoc.getInEdit(): + guidoc.setEdit(vobj.Object.Name) else: - FreeCAD.Console.PrintError('Active Task Dialog found! Please close this one first!\n') + from PySide.QtGui import QMessageBox + message = 'Active Task Dialog found! Please close this one before open a new one!' + QMessageBox.critical(None, "Error in tree view", message) + FreeCAD.Console.PrintError(message + '\n') return True def setEdit(self, vobj, mode=0): diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemSolverCalculix.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemSolverCalculix.py index 765117f85b..f3a0a49d50 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemSolverCalculix.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemSolverCalculix.py @@ -89,7 +89,10 @@ class _ViewProviderFemSolverCalculix: else: FreeCAD.Console.PrintError('No active Analysis found!\n') else: - FreeCAD.Console.PrintError('Active Task Dialog found! Please close this one first!\n') + from PySide.QtGui import QMessageBox + message = 'Active Task Dialog found! Please close this one before open a new one!' + QMessageBox.critical(None, "Error in tree view", message) + FreeCAD.Console.PrintError(message + '\n') return True def __getstate__(self):