From 3ef4b40558c7f463f63a954e3b4d91261751f2c9 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Tue, 12 Dec 2023 10:13:10 +0100 Subject: [PATCH] HS: Basic: Add question for BHS type change. --- .../BasicHydraulicStructures/Table.py | 29 ++++++++++++++----- .../BasicHydraulicStructures/Translate.py | 11 +++++++ .../BasicHydraulicStructures/Window.py | 1 + src/View/Tools/PamhyrTable.py | 4 ++- 4 files changed, 37 insertions(+), 8 deletions(-) diff --git a/src/View/HydraulicStructures/BasicHydraulicStructures/Table.py b/src/View/HydraulicStructures/BasicHydraulicStructures/Table.py index e043d19e..2bea72d2 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 89fb754c..787d4cdb 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 976f6bf7..e31a1c91 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 6ce66a42..803e5842 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 -- GitLab