diff --git a/src/View/Geometry/MeshingDialog.py b/src/View/Geometry/MeshingDialog.py index e5928472..3f1875a6 100644 --- a/src/View/Geometry/MeshingDialog.py +++ b/src/View/Geometry/MeshingDialog.py @@ -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): diff --git a/src/View/Geometry/Window.py b/src/View/Geometry/Window.py index 237f70ed..999ee561 100644 --- a/src/View/Geometry/Window.py +++ b/src/View/Geometry/Window.py @@ -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()