Commit 05411c46 authored by Pierre-Antoine Rouby's avatar Pierre-Antoine Rouby
Browse files

Results: Connect sliders.

Showing with 37 additions and 5 deletions
+37 -5
......@@ -37,6 +37,7 @@ from PyQt5.QtWidgets import (
QFileDialog, QTableView, QAbstractItemView,
QUndoStack, QShortcut, QAction, QItemDelegate,
QComboBox, QVBoxLayout, QHeaderView, QTabWidget,
QSlider,
)
from View.Plot.MplCanvas import MplCanvas
......@@ -58,6 +59,8 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
self._solver = solver
self._results = results
self._timestamps = sorted(list(self._results.get("timestamps")))
self.setup_title(title)
super(ResultsWindow, self).__init__(
......@@ -67,6 +70,7 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
self.setup_sc()
self.setup_table()
self.setup_graph()
self.setup_slider()
self.setup_connections()
self.ui.setWindowTitle(self._title)
......@@ -104,6 +108,14 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
table.setAlternatingRowColors(True)
def setup_slider(self):
self._slider_profile = self.find(QSlider, f"verticalSlider_profile")
default_reach = self._results.river.reach(0)
self._slider_profile.setMaximum(len(default_reach.profiles) - 1)
self._slider_time = self.find(QSlider, f"horizontalSlider_time")
self._slider_time.setMaximum(len(self._timestamps) - 1)
def setup_graph(self):
self.canvas = MplCanvas(width=5, height=4, dpi=100)
self.canvas.setObjectName("canvas")
......@@ -158,7 +170,11 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
self._table[t].dataChanged.connect(fun[t])
def plotXY(self, reach_id = None, profile_id = None, timestamp = None):
self._slider_profile.valueChanged.connect(self._set_current_profile_slider)
self._slider_time.valueChanged.connect(self._set_current_timestamp)
def update(self, reach_id = None, profile_id = None, timestamp = None):
if reach_id is not None:
self.plot_xy.set_reach(reach_id)
if profile_id is not None:
......@@ -170,11 +186,27 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
def _set_current_reach(self):
return
table = self.find(QTableView, f"tableView_reach")
indexes = table.selectedIndexes()
self.update(reach_id = indexes[0])
def _set_current_profile(self):
table = self.find(QTableView, f"tableView_profile")
indexes = table.selectedIndexes()
self.update(profile_id = indexes[0])
def _set_current_profile_slider(self):
pid = self._slider_profile.value()
self.update(profile_id = pid)
return
def _set_current_timestamp(self):
timestamp = self._timestamps[self._slider_time.value()]
self.update(timestamp = timestamp)
def copy(self):
logger.info("TODO: copy")
......
......@@ -30,17 +30,17 @@
<widget class="QTableView" name="tableView_reach"/>
<widget class="QTableView" name="tableView_profile"/>
</widget>
<widget class="QWidget" name="">
<widget class="QWidget" name="layoutWidget">
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<widget class="QSlider" name="horizontalSlider">
<widget class="QSlider" name="horizontalSlider_time">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSlider" name="verticalSlider">
<widget class="QSlider" name="verticalSlider_profile">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment