From 4941203b2f6fee26b4bcb7a846cb6babc9a7324d Mon Sep 17 00:00:00 2001 From: marioalexis Date: Fri, 7 Mar 2025 00:36:58 -0300 Subject: [PATCH 1/2] Fem: Move label to tooltip in selection widget --- src/Mod/Fem/femguiutils/selection_widgets.py | 25 ++++++++------------ 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/src/Mod/Fem/femguiutils/selection_widgets.py b/src/Mod/Fem/femguiutils/selection_widgets.py index e8349f1374..e92595ee9d 100644 --- a/src/Mod/Fem/femguiutils/selection_widgets.py +++ b/src/Mod/Fem/femguiutils/selection_widgets.py @@ -295,20 +295,6 @@ class GeometryElementsSelection(QtGui.QWidget): self.setWindowTitle(self.tr("Geometry reference selector")) # button self.pushButton_Add = QtGui.QPushButton(self.tr("Add")) - # label - self._helpTextLbl = QtGui.QLabel() - self._helpTextLbl.setWordWrap(True) - helpTextPart1 = self.tr( - 'Click on "Add" and select geometric elements to add them to the list.{}' - "The following geometry elements can be selected: {}{}{}" - ).format("
", "", self.sel_elem_text, "") - helpTextEmpty = self.tr( - "{}If no geometry is added to the list, all remaining ones are used." - ).format("
") - if self.showHintEmptyList is True: - self._helpTextLbl.setText(helpTextPart1 + helpTextEmpty) - else: - self._helpTextLbl.setText(helpTextPart1) # list self.list_References = QtGui.QListWidget() # radiobutton down the list @@ -323,10 +309,19 @@ class GeometryElementsSelection(QtGui.QWidget): rbtnLayout.addWidget(self.rb_solid) # main layout mainLayout = QtGui.QVBoxLayout() - mainLayout.addWidget(self._helpTextLbl) mainLayout.addWidget(self.pushButton_Add) mainLayout.addWidget(self.list_References) + tip1 = self.tr( + "Click and select geometric elements to add them to the list.{}" + "The following geometry elements can be selected: {}{}{}" + ).format("
", "", self.sel_elem_text, "") + tip2 = self.tr( + "{}If no geometry is added to the list, all remaining ones are used." + ).format("
") + tip1 += tip2 if self.showHintEmptyList else "" + self.pushButton_Add.setToolTip(tip1) + # if only "Solid" is avail, std-sel-mode is obsolete if "Solid" in self.sel_elem_types and len(self.sel_elem_types) == 1: self.selection_mode_solid = True From cdb8c22b2a6677784af1b3a9999cbe3103945527 Mon Sep 17 00:00:00 2001 From: marioalexis Date: Fri, 7 Mar 2025 00:40:00 -0300 Subject: [PATCH 2/2] Fem: Use disambiguation for solids in equation task panel --- .../Fem/femsolver/elmer/equations/equation.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/Mod/Fem/femsolver/elmer/equations/equation.py b/src/Mod/Fem/femsolver/elmer/equations/equation.py index 52e58c28d2..a7b748fd96 100644 --- a/src/Mod/Fem/femsolver/elmer/equations/equation.py +++ b/src/Mod/Fem/femsolver/elmer/equations/equation.py @@ -76,13 +76,16 @@ class _TaskPanel: def __init__(self, obj): self._obj = obj - self._refWidget = selection_widgets.SolidSelector() - self._refWidget.setReferences(obj.References) + self._selectionWidget = selection_widgets.GeometryElementsSelection( + obj.References, ["Solid", "Face"], False, True + ) + # start in solid selection mode + self._selectionWidget.rb_solid.setChecked(True) propWidget = obj.ViewObject.Proxy.getTaskWidget(obj.ViewObject) if propWidget is None: - self.form = self._refWidget + self.form = self._selectionWidget else: - self.form = [self.refWidget, propWidget] + self.form = [self._selectionWidget, propWidget] analysis = obj.getParentGroup() self._mesh = membertools.get_single_member(analysis, "Fem::FemMeshObject") self._part = self._mesh.Shape if self._mesh is not None else None @@ -97,12 +100,14 @@ class _TaskPanel: self._part.ViewObject.show() def reject(self): + self._selectionWidget.finish_selection() self._recomputeAndRestore() return True def accept(self): - if self._obj.References != self._refWidget.references(): - self._obj.References = self._refWidget.references() + if self._obj.References != self._selectionWidget.references: + self._obj.References = self._selectionWidget.references + self._selectionWidget.finish_selection() self._recomputeAndRestore() return True