From 6250b0e1b06f1f7e05e5f55e07b1469f4dd63c87 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby Date: Thu, 22 Jun 2023 16:51:25 +0200 Subject: [PATCH] Initial cond: Add Discharge generator. --- .../InitialConditions/InitialConditions.py | 4 + src/View/InitialConditions/DialogDischarge.py | 32 +++++++ src/View/InitialConditions/UndoCommand.py | 6 +- src/View/InitialConditions/Window.py | 12 +++ ...alConditions_Dialog_Generator_Discharge.ui | 88 +++++++++++++++++++ 5 files changed, 140 insertions(+), 2 deletions(-) create mode 100644 src/View/InitialConditions/DialogDischarge.py create mode 100644 src/View/ui/InitialConditions_Dialog_Generator_Discharge.ui diff --git a/src/Model/InitialConditions/InitialConditions.py b/src/Model/InitialConditions/InitialConditions.py index bc4bbc41..de598883 100644 --- a/src/Model/InitialConditions/InitialConditions.py +++ b/src/Model/InitialConditions/InitialConditions.py @@ -226,3 +226,7 @@ class InitialConditions(object): reverse = not is_reverse, key = lambda d: d['kp'] ) + + def generate_discharge(self, discharge:float): + for d in self._data: + d['flow'] = discharge diff --git a/src/View/InitialConditions/DialogDischarge.py b/src/View/InitialConditions/DialogDischarge.py new file mode 100644 index 00000000..8d01ef0e --- /dev/null +++ b/src/View/InitialConditions/DialogDischarge.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- + +from View.ASubWindow import ASubWindow +from View.ListedSubWindow import ListedSubWindow + +from PyQt5.QtGui import ( + QKeySequence, +) + +from PyQt5.QtCore import ( + Qt, QVariant, QAbstractTableModel, +) + +from PyQt5.QtWidgets import ( + QDialogButtonBox, QComboBox, QUndoStack, QShortcut, + QDoubleSpinBox, +) + +class DischargeDialog(ASubWindow, ListedSubWindow): + def __init__(self, title="Discharge", parent=None): + super(DischargeDialog, self).__init__( + name=title, ui="InitialConditions_Dialog_Generator_Discharge", parent=parent + ) + + self.value = None + + def accept(self): + self.value = self.find(QDoubleSpinBox, "doubleSpinBox").value() + super().accept() + + def reject(self): + self.close() diff --git a/src/View/InitialConditions/UndoCommand.py b/src/View/InitialConditions/UndoCommand.py index df4f96b8..28e9fe61 100644 --- a/src/View/InitialConditions/UndoCommand.py +++ b/src/View/InitialConditions/UndoCommand.py @@ -160,5 +160,7 @@ class GenerateCommand(QUndoCommand): self._ics.data = self._copy def redo(self): - #if self._generator == "growing": - self._ics.generate_growing_constante_draft(self._param) + if self._generator == "growing": + self._ics.generate_growing_constante_draft(self._param) + elif self._generator == "discharge": + self._ics.generate_discharge(self._param) diff --git a/src/View/InitialConditions/Window.py b/src/View/InitialConditions/Window.py index 46df785d..6e13ba43 100644 --- a/src/View/InitialConditions/Window.py +++ b/src/View/InitialConditions/Window.py @@ -35,6 +35,7 @@ from View.InitialConditions.PlotDKP import PlotDKP from View.InitialConditions.PlotFlow import PlotFlow from View.InitialConditions.translate import * from View.InitialConditions.DialogDraft import DraftDialog +from View.InitialConditions.DialogDischarge import DischargeDialog _translate = QCoreApplication.translate @@ -131,6 +132,10 @@ class InitialConditionsWindow(ASubMainWindow, ListedSubWindow): self.generate_growing_constante_draft ) + self.find(QPushButton, "pushButton_generate_2").clicked.connect( + self.generate_discharge + ) + self.undo_sc.activated.connect(self.undo) self.redo_sc.activated.connect(self.redo) self.copy_sc.activated.connect(self.copy) @@ -213,3 +218,10 @@ class InitialConditionsWindow(ASubMainWindow, ListedSubWindow): value = dlg.value self._table.generate("growing", value) self._update_plot() + + def generate_discharge(self): + dlg = DischargeDialog(parent=self) + if dlg.exec(): + value = dlg.value + self._table.generate("discharge", value) + self._update_plot() diff --git a/src/View/ui/InitialConditions_Dialog_Generator_Discharge.ui b/src/View/ui/InitialConditions_Dialog_Generator_Discharge.ui new file mode 100644 index 00000000..7e310e96 --- /dev/null +++ b/src/View/ui/InitialConditions_Dialog_Generator_Discharge.ui @@ -0,0 +1,88 @@ + + + Dialog + + + + 0 + 0 + 284 + 80 + + + + Dialog + + + + + + + + + + + Discharge + + + + + + + 3 + + + 999.999000000000024 + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + Dialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + Dialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + +