This commit is contained in:
Ignacio Serantes
2026-03-25 22:02:13 +01:00
parent 56ef674d4a
commit dfddfd17b3
10 changed files with 430 additions and 53 deletions

View File

@@ -2184,11 +2184,12 @@ class ImageViewer(QWidget):
self.populate_filmstrip()
self.update_status_bar(index=new_index)
def _on_movie_frame(self):
"""Updates the view with the current frame from the movie."""
if self.movie and self.movie.isValid():
self.controller.pixmap_original = self.movie.currentPixmap()
self.update_view(resize_win=False)
def _on_movie_frame_for_pane(self, pane):
"""Updates the view with the current frame from the movie for a specific
pane."""
if pane.movie and pane.movie.isValid():
pane.controller.pixmap_original = pane.movie.currentPixmap()
pane.update_view(resize_win=False)
def toggle_animation_pause(self):
"""Pauses or resumes the current animation."""
@@ -2335,7 +2336,8 @@ class ImageViewer(QWidget):
if self.active_pane.crop_mode:
self.active_pane.canvas.setCursor(Qt.CrossCursor)
self.sb_info_label.setText(f"{self.sb_info_label.text()} [CROP]")
self.sb_info_label.setText(
f"{self.sb_info_label.text()}{UITexts.CROP_INDICATOR}")
else:
self.active_pane.canvas.setCursor(Qt.ArrowCursor)
self.update_status_bar()
@@ -2432,7 +2434,8 @@ class ImageViewer(QWidget):
info_text = f"{w} x {h} px | {zoom}%"
if len(self.panes) > 1:
info_text += " [Linked]" if self.panes_linked else " [Unlinked]"
info_text += UITexts.COMPARE_LINKED \
if self.panes_linked else UITexts.COMPARE_UNLINKED
self.sb_info_label.setText(info_text)
@@ -2841,7 +2844,7 @@ class ImageViewer(QWidget):
"action": "copy_path", "icon": "document-properties"},
{"text": UITexts.CONTEXT_MENU_COPY_DIR,
"action": "copy_dir_path", "icon": "folder"},
]},
]},
{"text": UITexts.VIEWER_MENU_CROP,
"action": "toggle_crop", "icon": "transform-crop", "checkable": True,
"checked": self.crop_mode},
@@ -2891,7 +2894,7 @@ class ImageViewer(QWidget):
"action": "fullscreen", "icon": "view-fullscreen"
if not self.isFullScreen() else "view-restore"},
"separator",
{"text": "Show/hide main window",
{"text": UITexts.MENU_TOGGLE_MAIN_WINDOW,
"action": "toggle_visibility", "icon": "view-restore"},
"separator",
{"text": UITexts.CONTEXT_MENU_PROPERTIES,
@@ -3288,13 +3291,13 @@ class ImageViewer(QWidget):
Args:
event (QCloseEvent): The close event.
"""
if self.movie:
self.movie.stop()
for pane in self.panes:
pane.cleanup()
self.slideshow_manager.stop()
if self.filmstrip_loader and self.filmstrip_loader.isRunning():
self.filmstrip_loader.stop()
self.uninhibit_screensaver()
self.controller.cleanup()
# If we close the last viewer and the main window is hidden, quit.
if self.main_win and not self.main_win.isVisible():
# Check how many viewers are left