Ensemble: Add min max dialog for range.

scenario-dev-pa
Pierre-Antoine 2026-08-14 16:30:27 +02:00
parent 5b3f777100
commit 394c0779fc
3 changed files with 58 additions and 16 deletions

View File

@ -31,7 +31,7 @@ class Ensemble(SQLSubModel):
_sub_classes = [] _sub_classes = []
def __init__(self, id: int = -1, name: str = "", def __init__(self, id: int = -1, name: str = "",
function=None, range=[], function=None, range=[0., 100.],
data_type=None, target_data=None, data_type=None, target_data=None,
status=None, owner_scenario=-1): status=None, owner_scenario=-1):
super(Ensemble, self).__init__( super(Ensemble, self).__init__(

View File

@ -171,6 +171,9 @@ class EnsembleTableModel(PamhyrTableModel):
if value is None: if value is None:
return self._trad["not_defined"] return self._trad["not_defined"]
return value.name return value.name
elif self._headers[column] == "parameters":
value = self._lst.get(row).range
return str(value)
return QVariant() return QVariant()

View File

@ -18,9 +18,9 @@
import logging import logging
from tools import trace, timer from tools import trace, timer, logger_exception
from View.Tools.PamhyrWindow import PamhyrWindow from View.Tools.PamhyrWindow import PamhyrWindow, PamhyrDialog
from PyQt5.QtGui import ( from PyQt5.QtGui import (
QKeySequence, QKeySequence,
@ -141,7 +141,7 @@ class EnsemblesWindow(PamhyrWindow):
if self._study.is_editable(): if self._study.is_editable():
self.find(QAction, "action_add").triggered.connect(self.add) self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_del").triggered.connect(self.delete) self.find(QAction, "action_del").triggered.connect(self.delete)
# self.find(QAction, "action_edit").triggered.connect(self.edit) self.find(QAction, "action_edit").triggered.connect(self.edit)
table = self.find(QTableView, f"tableView") table = self.find(QTableView, f"tableView")
table.selectionModel()\ table.selectionModel()\
@ -183,16 +183,55 @@ class EnsemblesWindow(PamhyrWindow):
def _redo(self): def _redo(self):
self._table.redo() self._table.redo()
# def edit(self): def edit(self):
# if self.sub_window_exists( rows = self.index_selected_rows()
# EnsemblesWindow,
# data=[self._study, self.parent.conf]
# ):
# return
# strick = EnsemblesWindow( for row in rows:
# study=self._study, try:
# config=self.parent.conf, dlg = MinMaxDialog(
# parent=self ensemble=self._ensembles.get(row),
# ) trad=self._trad,
# strick.show() parent=self
)
if dlg.exec():
self._ensembles.get(row).range = dlg._minmax
except Exception as e:
logger_exception(e)
return
class MinMaxDialog(PamhyrDialog):
_pamhyr_ui = "MinMaxDialog"
_pamhyr_name = "Minmax"
def __init__(self, ensemble=None,
trad=None, parent=None):
super(MinMaxDialog, self).__init__(
title=trad[self._pamhyr_name],
trad=trad,
options=[],
parent=parent
)
self._ensemble = ensemble
self._init_default_values()
def _init_default_values(self):
self._minmax = self._ensemble.range
if len(self._minmax) > 0:
self.set_double_spin_box("doubleSpinBox_min", self._minmax[0])
self.set_double_spin_box("doubleSpinBox_max", self._minmax[1])
@property
def minmax(self):
return self._minmax
def accept(self):
self._minmax = [
self.get_double_spin_box("doubleSpinBox_min"),
self.get_double_spin_box("doubleSpinBox_max")
]
super().accept()
def reject(self):
self.close()