Commit d6753dc9 authored by Theophile Terraz's avatar Theophile Terraz
Browse files

upgrade results slider

Showing with 122 additions and 26 deletions
+122 -26
...@@ -24,13 +24,13 @@ from tools import trace, timer ...@@ -24,13 +24,13 @@ from tools import trace, timer
from View.Tools.PamhyrWindow import PamhyrWindow from View.Tools.PamhyrWindow import PamhyrWindow
from PyQt5.QtGui import ( from PyQt5.QtGui import (
QKeySequence, QKeySequence, QIcon, QPixmap,
) )
from PyQt5.QtCore import ( from PyQt5.QtCore import (
Qt, QVariant, QAbstractTableModel, Qt, QVariant, QAbstractTableModel,
QCoreApplication, QModelIndex, pyqtSlot, QCoreApplication, QModelIndex, pyqtSlot,
QItemSelectionModel, QItemSelectionModel, QTimer,
) )
from PyQt5.QtWidgets import ( from PyQt5.QtWidgets import (
...@@ -124,6 +124,16 @@ class ResultsWindow(PamhyrWindow): ...@@ -124,6 +124,16 @@ class ResultsWindow(PamhyrWindow):
self._slider_time.setMaximum(len(self._timestamps) - 1) self._slider_time.setMaximum(len(self._timestamps) - 1)
self._slider_time.setValue(len(self._timestamps) - 1) self._slider_time.setValue(len(self._timestamps) - 1)
self._icon_start = QIcon()
self._icon_start.addPixmap(QPixmap('./src/View/ui/ressources/media-playback-start.png'))
self._icon_pause = QIcon()
self._icon_pause.addPixmap(QPixmap('./src/View/ui/ressources/media-playback-pause.png'))
self._button_play = self.find(QPushButton, f"playButton")
self._button_play.setIcon(self._icon_start)
self._button_back = self.find(QPushButton, f"backButton")
self._button_next = self.find(QPushButton, f"nextButton")
self._timer = QTimer(self)
def setup_plot(self): def setup_plot(self):
self.canvas = MplCanvas(width=5, height=4, dpi=100) self.canvas = MplCanvas(width=5, height=4, dpi=100)
self.canvas.setObjectName("canvas") self.canvas.setObjectName("canvas")
...@@ -310,6 +320,11 @@ class ResultsWindow(PamhyrWindow): ...@@ -310,6 +320,11 @@ class ResultsWindow(PamhyrWindow):
self._slider_profile.valueChanged.connect( self._slider_profile.valueChanged.connect(
self._set_current_profile_slider) self._set_current_profile_slider)
self._slider_time.valueChanged.connect(self._set_current_timestamp) self._slider_time.valueChanged.connect(self._set_current_timestamp)
self._button_play.setChecked(False)
self._button_play.clicked.connect(self._pause)
self._button_back.clicked.connect(self._back)
self._button_next.clicked.connect(self._next)
self._timer.timeout.connect(self._update_slider)
def update_table_selection_reach(self, ind): def update_table_selection_reach(self, ind):
table = self.find(QTableView, f"tableView_reach") table = self.find(QTableView, f"tableView_reach")
...@@ -525,3 +540,24 @@ class ResultsWindow(PamhyrWindow): ...@@ -525,3 +540,24 @@ class ResultsWindow(PamhyrWindow):
def _redo(self): def _redo(self):
self._table.redo() self._table.redo()
# play / pause buttons
def _update_slider(self):
if self._slider_time.value() == self._slider_time.maximum():
self._slider_time.setValue(self._slider_time.minimum())
else:
self._slider_time.setValue(self._slider_time.value()+1)
def _next(self):
self._slider_time.setValue(self._slider_time.value()+1)
def _back(self):
self._slider_time.setValue(self._slider_time.value()-1)
def _pause(self):
if self._button_play.isChecked():
self._timer.start(100)
self._button_play.setIcon(self._icon_pause)
else:
self._timer.stop()
self._button_play.setIcon(self._icon_start)
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>942</width> <width>942</width>
<height>655</height> <height>740</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
...@@ -43,25 +43,29 @@ ...@@ -43,25 +43,29 @@
</attribute> </attribute>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="0"> <item row="0" column="0">
<widget class="QSplitter" name="splitter_2"> <layout class="QVBoxLayout" name="verticalLayout_4">
<property name="orientation"> <item>
<enum>Qt::Vertical</enum> <widget class="QSplitter" name="splitter_2">
</property> <property name="orientation">
<widget class="QSplitter" name="splitter"> <enum>Qt::Vertical</enum>
<property name="orientation"> </property>
<enum>Qt::Horizontal</enum> <widget class="QSplitter" name="splitter">
</property> <property name="orientation">
<widget class="QWidget" name="verticalLayoutWidget"> <enum>Qt::Horizontal</enum>
<layout class="QVBoxLayout" name="verticalLayout"/> </property>
<widget class="QWidget" name="verticalLayoutWidget">
<layout class="QVBoxLayout" name="verticalLayout"/>
</widget>
<widget class="QWidget" name="verticalLayoutWidget_2">
<layout class="QVBoxLayout" name="verticalLayout_2"/>
</widget>
</widget>
<widget class="QWidget" name="verticalLayoutWidget_3">
<layout class="QVBoxLayout" name="verticalLayout_3"/>
</widget>
</widget> </widget>
<widget class="QWidget" name="verticalLayoutWidget_2"> </item>
<layout class="QVBoxLayout" name="verticalLayout_2"/> </layout>
</widget>
</widget>
<widget class="QWidget" name="verticalLayoutWidget_3">
<layout class="QVBoxLayout" name="verticalLayout_3"/>
</widget>
</widget>
</item> </item>
</layout> </layout>
</widget> </widget>
...@@ -117,11 +121,67 @@ ...@@ -117,11 +121,67 @@
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QSlider" name="horizontalSlider_time"> <layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="orientation"> <item>
<enum>Qt::Horizontal</enum> <widget class="QPushButton" name="backButton">
</property> <property name="text">
</widget> <string/>
</property>
<property name="icon">
<iconset>
<normaloff>ressources/media-seek-backward.png</normaloff>ressources/media-seek-backward.png</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="playButton">
<property name="enabled">
<bool>true</bool>
</property>
<property name="mouseTracking">
<bool>true</bool>
</property>
<property name="contextMenuPolicy">
<enum>Qt::DefaultContextMenu</enum>
</property>
<property name="autoFillBackground">
<bool>true</bool>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normaloff>ressources/media-playback-start.png</normaloff>
<normalon>ressources/media-playback-pause.png</normalon>ressources/media-playback-start.png</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="nextButton">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normaloff>ressources/media-seek-forward.png</normaloff>ressources/media-seek-forward.png</iconset>
</property>
</widget>
</item>
<item>
<widget class="QSlider" name="horizontalSlider_time">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</item> </item>
</layout> </layout>
</widget> </widget>
......
src/View/ui/ressources/media-playback-pause.png

217 Bytes

src/View/ui/ressources/media-playback-start.png

472 Bytes

src/View/ui/ressources/media-seek-backward.png

539 Bytes

src/View/ui/ressources/media-seek-forward.png

610 Bytes

src/View/ui/ressources/media-skip-backward.png

557 Bytes

src/View/ui/ressources/media-skip-forward.png

558 Bytes

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