diff --git a/src/View/Results/Window.py b/src/View/Results/Window.py index d2f587af..a5114ba9 100644 --- a/src/View/Results/Window.py +++ b/src/View/Results/Window.py @@ -24,13 +24,13 @@ from tools import trace, timer from View.Tools.PamhyrWindow import PamhyrWindow from PyQt5.QtGui import ( - QKeySequence, + QKeySequence, QIcon, QPixmap, ) from PyQt5.QtCore import ( Qt, QVariant, QAbstractTableModel, QCoreApplication, QModelIndex, pyqtSlot, - QItemSelectionModel, + QItemSelectionModel, QTimer, ) from PyQt5.QtWidgets import ( @@ -124,6 +124,16 @@ class ResultsWindow(PamhyrWindow): self._slider_time.setMaximum(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): self.canvas = MplCanvas(width=5, height=4, dpi=100) self.canvas.setObjectName("canvas") @@ -310,6 +320,11 @@ class ResultsWindow(PamhyrWindow): self._slider_profile.valueChanged.connect( self._set_current_profile_slider) 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): table = self.find(QTableView, f"tableView_reach") @@ -525,3 +540,24 @@ class ResultsWindow(PamhyrWindow): def _redo(self): 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) diff --git a/src/View/ui/Results.ui b/src/View/ui/Results.ui index bb8aaae6..54666dd9 100644 --- a/src/View/ui/Results.ui +++ b/src/View/ui/Results.ui @@ -7,7 +7,7 @@ 0 0 942 - 655 + 740 @@ -43,25 +43,29 @@ - - - Qt::Vertical - - - - Qt::Horizontal - - - + + + + + Qt::Vertical + + + + Qt::Horizontal + + + + + + + + + + + - - - - - - - - + + @@ -117,11 +121,67 @@ - - - Qt::Horizontal - - + + + + + + + + + ressources/media-seek-backward.pngressources/media-seek-backward.png + + + + + + + true + + + true + + + Qt::DefaultContextMenu + + + true + + + + + + + ressources/media-playback-start.png + ressources/media-playback-pause.pngressources/media-playback-start.png + + + true + + + true + + + + + + + + + + + ressources/media-seek-forward.pngressources/media-seek-forward.png + + + + + + + Qt::Horizontal + + + + diff --git a/src/View/ui/ressources/media-playback-pause.png b/src/View/ui/ressources/media-playback-pause.png new file mode 100644 index 00000000..d1d8541d Binary files /dev/null and b/src/View/ui/ressources/media-playback-pause.png differ diff --git a/src/View/ui/ressources/media-playback-start.png b/src/View/ui/ressources/media-playback-start.png new file mode 100644 index 00000000..4b696d8e Binary files /dev/null and b/src/View/ui/ressources/media-playback-start.png differ diff --git a/src/View/ui/ressources/media-seek-backward.png b/src/View/ui/ressources/media-seek-backward.png new file mode 100644 index 00000000..05bff6fc Binary files /dev/null and b/src/View/ui/ressources/media-seek-backward.png differ diff --git a/src/View/ui/ressources/media-seek-forward.png b/src/View/ui/ressources/media-seek-forward.png new file mode 100644 index 00000000..9610f752 Binary files /dev/null and b/src/View/ui/ressources/media-seek-forward.png differ diff --git a/src/View/ui/ressources/media-skip-backward.png b/src/View/ui/ressources/media-skip-backward.png new file mode 100644 index 00000000..8f9480c7 Binary files /dev/null and b/src/View/ui/ressources/media-skip-backward.png differ diff --git a/src/View/ui/ressources/media-skip-forward.png b/src/View/ui/ressources/media-skip-forward.png new file mode 100644 index 00000000..c2ab904e Binary files /dev/null and b/src/View/ui/ressources/media-skip-forward.png differ