mirror of https://gitlab.com/pamhyr/pamhyr2
IC: Propagate update, update at gemometry change and minor change.
parent
d2f275c49f
commit
9cc3bb23c0
|
|
@ -233,7 +233,7 @@ class GeometryProfileTableModel(PamhyrTableModel):
|
|||
self.endMoveRows()
|
||||
self.layoutChanged.emit()
|
||||
|
||||
def move_down(self, row_to_move, parent=QModelIndex()):
|
||||
def move_down(self, row, parent=QModelIndex()):
|
||||
if row > self._data.number_points:
|
||||
return
|
||||
|
||||
|
|
|
|||
|
|
@ -129,7 +129,11 @@ class ProfileWindow(PamhyrWindow):
|
|||
self.find(QAction, action)\
|
||||
.triggered.connect(actions[action])
|
||||
|
||||
self._tablemodel.dataChanged.connect(self.update_plot)
|
||||
self._tablemodel.dataChanged.connect(self.update)
|
||||
|
||||
def update(self):
|
||||
self.update_plot()
|
||||
self._propagate_update(key="geometry")
|
||||
|
||||
def update_plot(self):
|
||||
self._tablemodel.blockSignals(True)
|
||||
|
|
@ -155,7 +159,7 @@ class ProfileWindow(PamhyrWindow):
|
|||
else:
|
||||
row = self.index_selected_row()
|
||||
self._tablemodel.insert_row(row + 1)
|
||||
self.update_plot()
|
||||
self.update()
|
||||
|
||||
def delete(self):
|
||||
table = self.find(QTableView, "tableView")
|
||||
|
|
@ -169,23 +173,23 @@ class ProfileWindow(PamhyrWindow):
|
|||
|
||||
if len(rows) > 0:
|
||||
self._tablemodel.remove_rows(rows)
|
||||
self.update_plot()
|
||||
self.update()
|
||||
|
||||
def sort_X_ascending(self):
|
||||
self._tablemodel.sort('x', order=Qt.AscendingOrder)
|
||||
self.update_plot()
|
||||
self.update()
|
||||
|
||||
def sort_X_descending(self):
|
||||
self._tablemodel.sort('x', order=Qt.DescendingOrder)
|
||||
self.update_plot()
|
||||
self.update()
|
||||
|
||||
def sort_Y_ascending(self):
|
||||
self._tablemodel.sort('y', order=Qt.AscendingOrder)
|
||||
self.update_plot()
|
||||
self.update()
|
||||
|
||||
def sort_Y_descending(self):
|
||||
self._tablemodel.sort('y', order=Qt.DescendingOrder)
|
||||
self.update_plot()
|
||||
self.update()
|
||||
|
||||
def move_down(self):
|
||||
rows = list(
|
||||
|
|
@ -199,7 +203,7 @@ class ProfileWindow(PamhyrWindow):
|
|||
if row < self._tablemodel.rowCount() - 1:
|
||||
self._tablemodel.move_down(row)
|
||||
|
||||
self.update_plot()
|
||||
self.update()
|
||||
|
||||
def move_up(self):
|
||||
rows = list(
|
||||
|
|
@ -213,7 +217,7 @@ class ProfileWindow(PamhyrWindow):
|
|||
if 0 < row:
|
||||
self._tablemodel.move_up(row)
|
||||
|
||||
self.update_plot()
|
||||
self.update()
|
||||
|
||||
def _copy(self):
|
||||
table = self.find(QTableView, "tableView")
|
||||
|
|
@ -245,12 +249,12 @@ class ProfileWindow(PamhyrWindow):
|
|||
|
||||
row = self.index_selected_row()
|
||||
self._tablemodel.paste(row, header, data)
|
||||
self.update_plot()
|
||||
self.update()
|
||||
|
||||
def _undo(self):
|
||||
self._tablemodel.undo()
|
||||
self.update_plot()
|
||||
self.update()
|
||||
|
||||
def _redo(self):
|
||||
self._tablemodel.redo()
|
||||
self.update_plot()
|
||||
self.update()
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import logging
|
||||
|
||||
from tools import timer
|
||||
from View.Tools.PamhyrPlot import PamhyrPlot
|
||||
|
||||
|
|
@ -23,6 +25,8 @@ from PyQt5.QtCore import (
|
|||
QCoreApplication
|
||||
)
|
||||
|
||||
logger = logging.getLogger()
|
||||
|
||||
_translate = QCoreApplication.translate
|
||||
|
||||
|
||||
|
|
@ -80,9 +84,20 @@ class PlotDKP(PamhyrPlot):
|
|||
)
|
||||
|
||||
z_min = self.data.reach.reach.get_z_min()
|
||||
geometry_kp = self.data.reach.reach.get_kp()
|
||||
|
||||
filtred_elevation = list(
|
||||
map(
|
||||
lambda x: elevation[x[0]],
|
||||
filter(
|
||||
lambda x: x[1] in geometry_kp,
|
||||
enumerate(kp)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
self.collection = self.canvas.axes.fill_between(
|
||||
kp, z_min, elevation,
|
||||
geometry_kp, z_min, filtred_elevation,
|
||||
color=self.color_plot_river_water_zone,
|
||||
alpha=0.7, interpolate=True
|
||||
)
|
||||
|
|
|
|||
|
|
@ -181,10 +181,20 @@ class InitialConditionsWindow(PamhyrWindow):
|
|||
.selectedRows()[0]\
|
||||
.row()
|
||||
|
||||
def update(self):
|
||||
self._update_plot()
|
||||
self._propagate_update(key="initial_condition")
|
||||
|
||||
def _update_plot(self):
|
||||
self.plot_1.draw()
|
||||
self.plot_2.draw()
|
||||
|
||||
def _propagated_update(self, key=None):
|
||||
if key != "geometry":
|
||||
return
|
||||
|
||||
self.update()
|
||||
|
||||
def index_selected_rows(self):
|
||||
table = self.find(QTableView, f"tableView")
|
||||
return list(
|
||||
|
|
@ -204,7 +214,7 @@ class InitialConditionsWindow(PamhyrWindow):
|
|||
else:
|
||||
self._table.add(rows[0])
|
||||
|
||||
self._update_plot()
|
||||
self._update()
|
||||
|
||||
def delete(self):
|
||||
rows = self.index_selected_rows()
|
||||
|
|
@ -212,48 +222,48 @@ class InitialConditionsWindow(PamhyrWindow):
|
|||
return
|
||||
|
||||
self._table.delete(rows)
|
||||
self._update_plot()
|
||||
self._update()
|
||||
|
||||
def sort(self):
|
||||
self._table.sort(False)
|
||||
self._update_plot()
|
||||
self._update()
|
||||
|
||||
def move_up(self):
|
||||
row = self.index_selected_row()
|
||||
self._table.move_up(row)
|
||||
self._update_plot()
|
||||
self._update()
|
||||
|
||||
def move_down(self):
|
||||
row = self.index_selected_row()
|
||||
self._table.move_down(row)
|
||||
self._update_plot()
|
||||
self._update()
|
||||
|
||||
def _copy(self):
|
||||
logger.info("TODO: copy")
|
||||
self._update_plot()
|
||||
self._update()
|
||||
|
||||
def _paste(self):
|
||||
logger.info("TODO: paste")
|
||||
self._update_plot()
|
||||
self._update()
|
||||
|
||||
def _undo(self):
|
||||
self._table.undo()
|
||||
self._update_plot()
|
||||
self._update()
|
||||
|
||||
def _redo(self):
|
||||
self._table.redo()
|
||||
self._update_plot()
|
||||
self._update()
|
||||
|
||||
def generate_growing_constante_height(self):
|
||||
dlg = HeightDialog(trad=self._trad, parent=self)
|
||||
if dlg.exec():
|
||||
value = dlg.value
|
||||
self._table.generate("growing", value)
|
||||
self._update_plot()
|
||||
self._update()
|
||||
|
||||
def generate_discharge(self):
|
||||
dlg = DischargeDialog(trad=self._trad, parent=self)
|
||||
if dlg.exec():
|
||||
value = dlg.value
|
||||
self._table.generate("discharge", value)
|
||||
self._update_plot()
|
||||
self._update()
|
||||
|
|
|
|||
|
|
@ -351,7 +351,10 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
|||
logger.debug(f"Propagation keys: {self._propagation_keys}")
|
||||
|
||||
def _do_propagate_update(self):
|
||||
for key in self._propagation_keys:
|
||||
keys = self._propagation_keys.copy()
|
||||
self._init_propagation_keys()
|
||||
|
||||
for key in keys:
|
||||
if key == "window_list":
|
||||
logger.debug(f"Update window list")
|
||||
self._do_update_window_list()
|
||||
|
|
@ -361,8 +364,6 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
|||
for _, window in self.sub_win_list:
|
||||
window._propagated_update(key=key)
|
||||
|
||||
self._init_propagation_keys()
|
||||
|
||||
#########
|
||||
# MODEL #
|
||||
#########
|
||||
|
|
|
|||
Loading…
Reference in New Issue