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