diff --git a/src/View/HydraulicStructures/BasicHydraulicStructures/Table.py b/src/View/HydraulicStructures/BasicHydraulicStructures/Table.py index e043d19ec70e39703670ffeff753d3ab11c439e0..2bea72d250aa37ea04aadfb731c878081e59b7d3 100644 --- a/src/View/HydraulicStructures/BasicHydraulicStructures/Table.py +++ b/src/View/HydraulicStructures/BasicHydraulicStructures/Table.py @@ -31,7 +31,7 @@ from PyQt5.QtWidgets import ( QDialogButtonBox, QPushButton, QLineEdit, QFileDialog, QTableView, QAbstractItemView, QUndoStack, QShortcut, QAction, QItemDelegate, - QComboBox, + QComboBox, QMessageBox, ) from View.Tools.PamhyrTable import PamhyrTableModel @@ -137,13 +137,17 @@ class TableModel(PamhyrTableModel): ) ) elif self._headers[column] == "type": - key = next(k for k, v in self._long_types.items() - if v == value) - self._undo.push( - SetTypeCommand( - self._data, row, BHS_types[key] + if self._question_set_type(): + key = next( + k for k, v in self._long_types.items() + if v == value + ) + + self._undo.push( + SetTypeCommand( + self._data, row, BHS_types[key] + ) ) - ) except Exception as e: logger.info(e) logger.debug(traceback.format_exc()) @@ -151,6 +155,17 @@ class TableModel(PamhyrTableModel): self.dataChanged.emit(index, index) return True + def _question_set_type(self): + question = QMessageBox(self._parent) + + question.setWindowTitle(self._trad['msg_type_change_title']) + question.setText(self._trad['msg_type_change_msg']) + question.setStandardButtons(QMessageBox.Cancel | QMessageBox.Ok ) + question.setIcon(QMessageBox.Question) + + res = question.exec() + return res == QMessageBox.Ok + def add(self, row, parent=QModelIndex()): self.beginInsertRows(parent, row, row - 1) diff --git a/src/View/HydraulicStructures/BasicHydraulicStructures/Translate.py b/src/View/HydraulicStructures/BasicHydraulicStructures/Translate.py index 89fb754c31db2b5c3e2f1347306f578ecb0f7cf9..787d4cdb3165e27eccc92f27838a8d2ab63463f2 100644 --- a/src/View/HydraulicStructures/BasicHydraulicStructures/Translate.py +++ b/src/View/HydraulicStructures/BasicHydraulicStructures/Translate.py @@ -27,6 +27,17 @@ class BasicHydraulicStructuresTranslate(PamhyrTranslate): def __init__(self): super(BasicHydraulicStructuresTranslate, self).__init__() + self._dict['msg_type_change_title'] = _translate( + "BasicHydraulicStructures", + "Change hydraulic structure type" + ) + + self._dict['msg_type_change_msg'] = _translate( + "BasicHydraulicStructures", + "Do you want to change the hydraulic structure type and reset \ +hydraulic structure values?" + ) + self._sub_dict["long_types"] = { "ND": _translate("BasicHydraulicStructures", "Not defined"), "DU": _translate("BasicHydraulicStructures", "Dummy"), diff --git a/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py b/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py index 976f6bf70153f8ff7877f571953bcdc9426cf8f5..e31a1c91e7b6e05bc3b1c3fe5f748434d877e38c 100644 --- a/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py +++ b/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py @@ -95,6 +95,7 @@ class BasicHydraulicStructuresWindow(PamhyrWindow): trad=self._trad, data=self._hs, undo=self._undo_stack, + parent=self, ) selectionModel = table.selectionModel() diff --git a/src/View/Tools/PamhyrTable.py b/src/View/Tools/PamhyrTable.py index 6ce66a428a1345a5d18dae51287dc31df36d65b8..803e58421fd97a95bf68a03183df2e4e5281b9c8 100644 --- a/src/View/Tools/PamhyrTable.py +++ b/src/View/Tools/PamhyrTable.py @@ -83,7 +83,8 @@ class PamhyrTableModel(QAbstractTableModel): trad=None, data=None, undo=None, - opt_data=None): + opt_data=None, + parent=None): super(PamhyrTableModel, self).__init__() self._table_view = table_view @@ -93,6 +94,7 @@ class PamhyrTableModel(QAbstractTableModel): self._editable_headers = editable_headers self._delegates = delegates self._trad = trad + self._parent = parent self._data = data self._opt_data = opt_data