keep selection after meshing

scenarios
Theophile Terraz 2025-10-08 09:45:35 +02:00
parent f6e08f203c
commit bc4557e21f
2 changed files with 25 additions and 2 deletions

View File

@ -180,8 +180,6 @@ class MeshingDialog(PamhyrDialog):
# self._begin_dir = self.get_combobox_text("comboBox_begin_gl")
# self._end_dir = self.get_combobox_text("comboBox_end_gl")
self.parent.tableView.selectionModel().clearSelection()
super().accept()
def reject(self):

View File

@ -32,6 +32,7 @@ from PyQt5.QtGui import (
from PyQt5.QtCore import (
QModelIndex, Qt, QSettings, pyqtSlot,
QItemSelectionModel, QCoreApplication, QSize,
QItemSelection, QItemSelectionRange,
)
from PyQt5.QtWidgets import (
QApplication, QMainWindow, QFileDialog, QCheckBox,
@ -286,6 +287,13 @@ class GeometryWindow(PamhyrWindow):
self.tableView.model().blockSignals(False)
def edit_meshing(self):
rows = list(
set(
(i.row() for i in self.tableView.selectedIndexes())
)
)
selected_rk = [self._reach.profile(r).rk for r in rows]
try:
dlg = MeshingDialog(
reach=self._reach,
@ -303,6 +311,23 @@ class GeometryWindow(PamhyrWindow):
logger_exception(e)
return
ind = []
for i in range(self._reach.number_profiles):
if self._reach.profile(i).rk in selected_rk:
ind.append(i)
self.tableView.setFocus()
selection = self.tableView.selectionModel()
index = QItemSelection()
if len(ind) > 0:
for i in ind:
index.append(QItemSelectionRange(self.tableView.model().index(i, 0)))
selection.select(
index,
QItemSelectionModel.Rows |
QItemSelectionModel.ClearAndSelect |
QItemSelectionModel.Select
)
def _edit_meshing(self, data):
try:
mesher = InternalMeshing()