From af3643853cc0d5fbcbdbff1f84d39e8d6f0bc218 Mon Sep 17 00:00:00 2001 From: UR-0 Date: Wed, 24 Mar 2021 12:13:12 +0100 Subject: [PATCH] [FEM] refactor GeometryElementsSelection, introduce parameter to modify help text for several task panels using GeometryElementsSelection. --- src/Mod/Fem/femguiutils/selection_widgets.py | 22 ++++++++++++++----- .../task_constraint_sectionprint.py | 4 +++- .../Fem/femtaskpanels/task_constraint_tie.py | 4 +++- .../Fem/femtaskpanels/task_element_fluid1D.py | 5 ++++- .../femtaskpanels/task_element_geometry1D.py | 4 +++- .../femtaskpanels/task_element_geometry2D.py | 4 +++- .../femtaskpanels/task_element_rotation1D.py | 4 +++- .../Fem/femtaskpanels/task_material_common.py | 3 ++- .../femtaskpanels/task_mesh_boundarylayer.py | 4 +++- src/Mod/Fem/femtaskpanels/task_mesh_group.py | 4 +++- src/Mod/Fem/femtaskpanels/task_mesh_region.py | 4 +++- 11 files changed, 46 insertions(+), 16 deletions(-) diff --git a/src/Mod/Fem/femguiutils/selection_widgets.py b/src/Mod/Fem/femguiutils/selection_widgets.py index d810b7154c..74cb0db220 100644 --- a/src/Mod/Fem/femguiutils/selection_widgets.py +++ b/src/Mod/Fem/femguiutils/selection_widgets.py @@ -231,7 +231,7 @@ class SmallListView(QtGui.QListView): class GeometryElementsSelection(QtGui.QWidget): - def __init__(self, ref, eltypes=[], multigeom=True): + def __init__(self, ref, eltypes=[], multigeom, showHintEmptyList): super(GeometryElementsSelection, self).__init__() # init ui stuff FreeCADGui.Selection.clearSelection() @@ -240,6 +240,7 @@ class GeometryElementsSelection(QtGui.QWidget): self.obj_notvisible = [] self.initElemTypes(eltypes) self.allow_multiple_geom_types = multigeom + self.showHintEmptyList = showHintEmptyList # print(self.allow_multiple_geom_types) self.initUI() # set references and fill the list widget @@ -276,11 +277,20 @@ class GeometryElementsSelection(QtGui.QWidget): # label self._helpTextLbl = QtGui.QLabel() self._helpTextLbl.setWordWrap(True) - self._helpTextLbl.setText(self.tr( - 'Click on "Add" and select geometric elements to add them to the list. ' - "If no geometry is added to the list, all remaining ones are used. " - "The following geometry elements are allowed to select: " - ) + self.sel_elem_text) + helpTextPart1 = self.tr('Click on "Add" and select geometric elements to add them to the list.') + helpTextPart2 = self.tr("The following geometry elements are allowed to select: ") + self.sel_elem_text + helpTextPart3 = self.tr("If no geometry is added to the list, all remaining ones are used.") + if self.showHintEmptyList is True: + self._helpTextLbl.setText( + helpTextPart1 + "\n" + + helpTextPart2 + "\n" + + helpTextPart3 + ) + else: + self._helpTextLbl.setText( + helpTextPart1 + "\n" + + helpTextPart2 + ) # list self.list_References = QtGui.QListWidget() # radiobutton down the list diff --git a/src/Mod/Fem/femtaskpanels/task_constraint_sectionprint.py b/src/Mod/Fem/femtaskpanels/task_constraint_sectionprint.py index 7a25b62ea2..56e10e60b7 100644 --- a/src/Mod/Fem/femtaskpanels/task_constraint_sectionprint.py +++ b/src/Mod/Fem/femtaskpanels/task_constraint_sectionprint.py @@ -55,7 +55,9 @@ class _TaskPanel: # geometry selection widget self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, - ["Face"] + ["Face"], + False, + False ) # form made from param and selection widget diff --git a/src/Mod/Fem/femtaskpanels/task_constraint_tie.py b/src/Mod/Fem/femtaskpanels/task_constraint_tie.py index db12f9f30e..84241ad53c 100644 --- a/src/Mod/Fem/femtaskpanels/task_constraint_tie.py +++ b/src/Mod/Fem/femtaskpanels/task_constraint_tie.py @@ -61,7 +61,9 @@ class _TaskPanel: # geometry selection widget self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, - ["Face"] + ["Face"], + False, + False ) # form made from param and selection widget diff --git a/src/Mod/Fem/femtaskpanels/task_element_fluid1D.py b/src/Mod/Fem/femtaskpanels/task_element_fluid1D.py index 4c2122440c..6eaf6b2230 100644 --- a/src/Mod/Fem/femtaskpanels/task_element_fluid1D.py +++ b/src/Mod/Fem/femtaskpanels/task_element_fluid1D.py @@ -232,7 +232,10 @@ class _TaskPanel: # geometry selection widget self.selectionWidget = selection_widgets.GeometryElementsSelection( - obj.References, ["Edge"] + obj.References, + ["Edge"], + False, + True ) # form made from param and selection widget diff --git a/src/Mod/Fem/femtaskpanels/task_element_geometry1D.py b/src/Mod/Fem/femtaskpanels/task_element_geometry1D.py index b7a67eadae..80f7e25a5c 100644 --- a/src/Mod/Fem/femtaskpanels/task_element_geometry1D.py +++ b/src/Mod/Fem/femtaskpanels/task_element_geometry1D.py @@ -91,7 +91,9 @@ class _TaskPanel: # geometry selection widget self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, - ["Edge"] + ["Edge"], + False, + True ) # form made from param and selection widget diff --git a/src/Mod/Fem/femtaskpanels/task_element_geometry2D.py b/src/Mod/Fem/femtaskpanels/task_element_geometry2D.py index ea5adb6329..b0ac865f9f 100644 --- a/src/Mod/Fem/femtaskpanels/task_element_geometry2D.py +++ b/src/Mod/Fem/femtaskpanels/task_element_geometry2D.py @@ -60,7 +60,9 @@ class _TaskPanel: # geometry selection widget self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, - ["Face"] + ["Face"], + False, + True ) # form made from param and selection widget diff --git a/src/Mod/Fem/femtaskpanels/task_element_rotation1D.py b/src/Mod/Fem/femtaskpanels/task_element_rotation1D.py index c755ce6e26..85ef6a780b 100644 --- a/src/Mod/Fem/femtaskpanels/task_element_rotation1D.py +++ b/src/Mod/Fem/femtaskpanels/task_element_rotation1D.py @@ -61,7 +61,9 @@ class _TaskPanel: # geometry selection widget self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, - ["Edge"] + ["Edge"], + False, + True ) # form made from param and selection widget diff --git a/src/Mod/Fem/femtaskpanels/task_material_common.py b/src/Mod/Fem/femtaskpanels/task_material_common.py index a11c36b7fa..3071cd00ed 100644 --- a/src/Mod/Fem/femtaskpanels/task_material_common.py +++ b/src/Mod/Fem/femtaskpanels/task_material_common.py @@ -192,7 +192,8 @@ class _TaskPanel: self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, ["Solid", "Face", "Edge"], - False + False, + True ) # start with Solid in list! # form made from param and selection widget diff --git a/src/Mod/Fem/femtaskpanels/task_mesh_boundarylayer.py b/src/Mod/Fem/femtaskpanels/task_mesh_boundarylayer.py index c53e30f86c..f92a68c2a6 100644 --- a/src/Mod/Fem/femtaskpanels/task_mesh_boundarylayer.py +++ b/src/Mod/Fem/femtaskpanels/task_mesh_boundarylayer.py @@ -72,7 +72,9 @@ class _TaskPanel: # start with Solid in list! self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, - ["Solid", "Face", "Edge", "Vertex"] + ["Solid", "Face", "Edge", "Vertex"], + True, + False ) # form made from param and selection widget diff --git a/src/Mod/Fem/femtaskpanels/task_mesh_group.py b/src/Mod/Fem/femtaskpanels/task_mesh_group.py index b6609ddae5..9462ee3aa8 100644 --- a/src/Mod/Fem/femtaskpanels/task_mesh_group.py +++ b/src/Mod/Fem/femtaskpanels/task_mesh_group.py @@ -66,7 +66,9 @@ class _TaskPanel: # start with Solid in list! self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, - ["Solid", "Face", "Edge", "Vertex"] + ["Solid", "Face", "Edge", "Vertex"], + True, + False ) # form made from param and selection widget diff --git a/src/Mod/Fem/femtaskpanels/task_mesh_region.py b/src/Mod/Fem/femtaskpanels/task_mesh_region.py index a93e3a76d9..2a6045b29e 100644 --- a/src/Mod/Fem/femtaskpanels/task_mesh_region.py +++ b/src/Mod/Fem/femtaskpanels/task_mesh_region.py @@ -61,7 +61,9 @@ class _TaskPanel: # start with Solid in list! self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, - ["Solid", "Face", "Edge", "Vertex"] + ["Solid", "Face", "Edge", "Vertex"], + True, + False ) # form made from param and selection widget