Skip to content

Commit 8f363de

Browse files
authored
Merge pull request #4755 from OpenShot/display-playback-speed
I'm interested to discuss the design principles of this, but I think it makes sense for an object to control it's own title. Anyway, going ahead with this quick fix for now.
2 parents a2f259c + ff2f6af commit 8f363de

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

src/windows/video_widget.py

+19-3
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,12 @@ def update_title(self):
275275
rect = self.centeredViewport(self.width(), self.height())
276276
scale = self.devicePixelRatioF()
277277

278+
# Display the playback speed in widget title
279+
speed = 0.0
280+
mode = self.win.preview_thread.player.Mode()
281+
if mode != openshot.PLAYBACK_PAUSED:
282+
speed = self.win.preview_thread.player.Speed()
283+
278284
# Find parent dockWidget (if any)
279285
dock = None
280286
if self.parent() and self.parent().parent():
@@ -286,12 +292,15 @@ def update_title(self):
286292

287293
if self.settings.get("preview-fps"):
288294
# Update window title with FPS output
289-
dock.setWindowTitle(_("Video Preview") + " " + _("(Paint: %d FPS, Render: %d FPS, %dx%d)")
290-
% (self.paint_fps, self.present_fps,
295+
dock.setWindowTitle(_("Video Preview ") + _("(Speed: %dx, Paint: %d FPS, Render: %d FPS, %dx%d)")
296+
% (speed, self.paint_fps, self.present_fps,
291297
rect.width() * scale, rect.height() * scale))
292298
else:
293299
# Restore window title
294-
dock.setWindowTitle(_("Video Preview"))
300+
if not speed in [1, 0, -1]:
301+
dock.setWindowTitle(_("Video Preview") + f" ({speed}x)")
302+
else:
303+
dock.setWindowTitle(_("Video Preview"))
295304

296305
def paintEvent(self, event, *args):
297306
""" Custom paint event """
@@ -1465,6 +1474,13 @@ def __init__(self, watch_project=True, *args):
14651474
# Get a reference to the window object
14661475
self.win = get_app().window
14671476

1477+
# Update title whenever playback speed changes.
1478+
self.win.PlaySignal.connect(self.update_title, Qt.QueuedConnection)
1479+
self.win.PlaySignal.connect(self.update_title, Qt.QueuedConnection)
1480+
self.win.PauseSignal.connect(self.update_title, Qt.QueuedConnection)
1481+
self.win.SpeedSignal.connect(self.update_title, Qt.QueuedConnection)
1482+
self.win.StopSignal.connect(self.update_title, Qt.QueuedConnection)
1483+
14681484
# Show Property timer
14691485
# Timer to use a delay before sending MaxSizeChanged signals (so we don't spam libopenshot)
14701486
self.delayed_resize_timer = QTimer(self)

0 commit comments

Comments
 (0)