Merge pull request #20053 from marioalexis84/fem-elmer_equation_references
Fem: Use disambiguation for solid references in Elmer equation task panels
This commit is contained in:
@@ -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("<br>", "<b>", self.sel_elem_text, "</b>")
|
||||
helpTextEmpty = self.tr(
|
||||
"{}If no geometry is added to the list, all remaining ones are used."
|
||||
).format("<br>")
|
||||
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("<br>", "<b>", self.sel_elem_text, "</b>")
|
||||
tip2 = self.tr(
|
||||
"{}If no geometry is added to the list, all remaining ones are used."
|
||||
).format("<br>")
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user