From b04f28b0ff12bcbbf5515baa367eaae161db83f9 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Thu, 1 Jun 2023 12:20:26 +0200 Subject: [PATCH] IC: Add generator dialog. --- .../InitialConditions/InitialConditions.py | 2 +- src/View/ASubWindow.py | 10 ++- src/View/InitialConditions/DialogDraft.py | 32 ++++++++ src/View/InitialConditions/Window.py | 8 +- ...nitialConditions_Dialog_Generator_Draft.ui | 81 +++++++++++++++++++ 5 files changed, 126 insertions(+), 7 deletions(-) create mode 100644 src/View/InitialConditions/DialogDraft.py create mode 100644 src/View/ui/InitialConditions_Dialog_Generator_Draft.ui diff --git a/src/Model/InitialConditions/InitialConditions.py b/src/Model/InitialConditions/InitialConditions.py index f598ade0..d00f9453 100644 --- a/src/Model/InitialConditions/InitialConditions.py +++ b/src/Model/InitialConditions/InitialConditions.py @@ -196,7 +196,7 @@ class InitialConditions(object): key = lambda p: p.kp ) - def generate_growing_constante_draft(self, draft:int): + def generate_growing_constante_draft(self, draft:float): self._data = [] profiles = self._reach.reach.profiles diff --git a/src/View/ASubWindow.py b/src/View/ASubWindow.py index 61a77987..6091c6de 100644 --- a/src/View/ASubWindow.py +++ b/src/View/ASubWindow.py @@ -388,10 +388,11 @@ class ASubMainWindow(QMainWindow, ASubWindowFeatures, WindowToolKit): ) self.name = name self.parent = parent - self.parent.sub_win_add(name, self) + if self.parent is not None: + self.parent.sub_win_add(name, self) def closeEvent(self, event): - if not self.parent is None: + if self.parent is not None: self.parent.sub_win_del(self.name) def find(self, qtype, name): @@ -418,10 +419,11 @@ class ASubWindow(QDialog, ASubWindowFeatures, WindowToolKit): ) self.name = name self.parent = parent - self.parent.sub_win_add(name, self) + if self.parent is not None: + self.parent.sub_win_add(name, self) def closeEvent(self, event): - if not self.parent is None: + if self.parent is not None: self.parent.sub_win_del(self.name) def find(self, qtype, name): diff --git a/src/View/InitialConditions/DialogDraft.py b/src/View/InitialConditions/DialogDraft.py new file mode 100644 index 00000000..6e9259c4 --- /dev/null +++ b/src/View/InitialConditions/DialogDraft.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 DraftDialog(ASubWindow, ListedSubWindow): + def __init__(self, title="Draft", parent=None): + super(DraftDialog, self).__init__( + name=title, ui="InitialConditions_Dialog_Generator_Draft", 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/Window.py b/src/View/InitialConditions/Window.py index 7a8fdd02..46df785d 100644 --- a/src/View/InitialConditions/Window.py +++ b/src/View/InitialConditions/Window.py @@ -34,6 +34,7 @@ from View.Plot.MplCanvas import MplCanvas from View.InitialConditions.PlotDKP import PlotDKP from View.InitialConditions.PlotFlow import PlotFlow from View.InitialConditions.translate import * +from View.InitialConditions.DialogDraft import DraftDialog _translate = QCoreApplication.translate @@ -207,5 +208,8 @@ class InitialConditionsWindow(ASubMainWindow, ListedSubWindow): self._update_plot() def generate_growing_constante_draft(self): - self._table.generate("growing", 1) - self._update_plot() + dlg = DraftDialog(parent=self) + if dlg.exec(): + value = dlg.value + self._table.generate("growing", value) + self._update_plot() diff --git a/src/View/ui/InitialConditions_Dialog_Generator_Draft.ui b/src/View/ui/InitialConditions_Dialog_Generator_Draft.ui new file mode 100644 index 00000000..d99ceaad --- /dev/null +++ b/src/View/ui/InitialConditions_Dialog_Generator_Draft.ui @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Dialog</class> + <widget class="QDialog" name="Dialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>194</width> + <height>80</height> + </rect> + </property> + <property name="windowTitle"> + <string>Dialog</string> + </property> + <property name="locale"> + <locale language="English" country="Europe"/> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Draft</string> + </property> + </widget> + </item> + <item> + <widget class="QDoubleSpinBox" name="doubleSpinBox"/> + </item> + </layout> + </item> + <item row="1" column="0"> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>Dialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>248</x> + <y>254</y> + </hint> + <hint type="destinationlabel"> + <x>157</x> + <y>274</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>Dialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>316</x> + <y>260</y> + </hint> + <hint type="destinationlabel"> + <x>286</x> + <y>274</y> + </hint> + </hints> + </connection> + </connections> +</ui> -- GitLab