Skip to content

Commit f88200f

Browse files
authored
fix(ui): seamlessly loop videos (#902)
1 parent 7f7d861 commit f88200f

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

src/tagstudio/qt/widgets/media_player.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ def __init__(self, driver: "QtDriver") -> None:
261261
loop_action.setChecked(self.driver.settings.loop)
262262
loop_action.triggered.connect(lambda: self.toggle_loop())
263263
self.loop = loop_action
264+
self.toggle_loop()
264265

265266
# start the player muted
266267
self.player.audioOutput().setMuted(True)
@@ -277,6 +278,8 @@ def toggle_loop(self) -> None:
277278
self.driver.settings.loop = self.loop.isChecked()
278279
self.driver.settings.save()
279280

281+
self.player.setLoops(-1 if self.driver.settings.loop else 1)
282+
280283
def apply_rounded_corners(self) -> None:
281284
"""Apply a rounded corner effect to the video player."""
282285
width: int = int(max(self.contentsRect().size().width(), 0))
@@ -468,12 +471,6 @@ def media_status_changed(self, status: QMediaPlayer.MediaStatus) -> None:
468471
current = self.format_time(self.player.position())
469472
duration = self.format_time(self.player.duration())
470473
self.position_label.setText(f"{current} / {duration}")
471-
elif status == QMediaPlayer.MediaStatus.EndOfMedia:
472-
self.player.setPosition(0)
473-
if self.loop.isChecked():
474-
self.player.play()
475-
else:
476-
self.player.pause()
477474

478475
def _update_controls(self, size: QSize) -> None:
479476
self.scene().setSceneRect(0, 0, size.width(), size.height())

0 commit comments

Comments
 (0)