From f4cb779b8519762ed5c6239cbe476fea90debf66 Mon Sep 17 00:00:00 2001 From: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> Date: Mon, 31 Mar 2025 12:15:58 -0700 Subject: [PATCH] fix(ui): seamlessly loop videos --- src/tagstudio/qt/widgets/media_player.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/tagstudio/qt/widgets/media_player.py b/src/tagstudio/qt/widgets/media_player.py index 0bed866f8..807b66990 100644 --- a/src/tagstudio/qt/widgets/media_player.py +++ b/src/tagstudio/qt/widgets/media_player.py @@ -261,6 +261,7 @@ def __init__(self, driver: "QtDriver") -> None: loop_action.setChecked(self.driver.settings.loop) loop_action.triggered.connect(lambda: self.toggle_loop()) self.loop = loop_action + self.toggle_loop() # start the player muted self.player.audioOutput().setMuted(True) @@ -277,6 +278,8 @@ def toggle_loop(self) -> None: self.driver.settings.loop = self.loop.isChecked() self.driver.settings.save() + self.player.setLoops(-1 if self.driver.settings.loop else 1) + def apply_rounded_corners(self) -> None: """Apply a rounded corner effect to the video player.""" width: int = int(max(self.contentsRect().size().width(), 0)) @@ -468,12 +471,6 @@ def media_status_changed(self, status: QMediaPlayer.MediaStatus) -> None: current = self.format_time(self.player.position()) duration = self.format_time(self.player.duration()) self.position_label.setText(f"{current} / {duration}") - elif status == QMediaPlayer.MediaStatus.EndOfMedia: - self.player.setPosition(0) - if self.loop.isChecked(): - self.player.play() - else: - self.player.pause() def _update_controls(self, size: QSize) -> None: self.scene().setSceneRect(0, 0, size.width(), size.height())