Fixed thumbnail reload on metadata change

This commit is contained in:
Ignacio Serantes
2026-04-06 22:09:13 +02:00
parent a717acef87
commit 45c95c1bb1
4 changed files with 108 additions and 36 deletions

View File

@@ -1,16 +1,16 @@
import os
from datetime import datetime
from PySide6.QtWidgets import (
QDialog, QVBoxLayout, QHBoxLayout, QPushButton, QLabel, QFrame,
QDialog, QVBoxLayout, QHBoxLayout, QPushButton, QLabel,
QSplitter, QWidget, QMessageBox, QApplication, QMenu,
QTableWidget, QTableWidgetItem, QHeaderView, QAbstractItemView
)
from PySide6.QtGui import QPixmap, QIcon, QImageReader, QImage, QDesktopServices
from PySide6.QtCore import Qt, QSize, QTimer, QUrl
from PySide6.QtGui import QIcon, QImage, QDesktopServices
from PySide6.QtCore import Qt, QTimer, QUrl
from imageviewer import ImagePane
from imagecontroller import ImageController
from constants import UITexts, APP_CONFIG
from propertiesdialog import PropertiesDialog
from constants import APP_CONFIG, UITexts
class DuplicateManagerDialog(QDialog):
"""
@@ -18,7 +18,7 @@ class DuplicateManagerDialog(QDialog):
"""
def __init__(self, duplicates, duplicate_cache, main_win, review_mode=False):
super().__init__(main_win)
self.duplicates = duplicates # List of DuplicateResult
self.duplicates = duplicates # List of DuplicateResult
self.cache = duplicate_cache
self.main_win = main_win
self.review_mode = review_mode
@@ -35,7 +35,8 @@ class DuplicateManagerDialog(QDialog):
self._populate_list()
if self.main_win and hasattr(self.main_win, 'fs_watcher'):
self.main_win.fs_watcher.file_deleted.connect(self._on_file_deleted_externally)
self.main_win.fs_watcher.file_deleted.connect(
self._on_file_deleted_externally)
self.main_win.fs_watcher.file_moved.connect(self._on_file_moved_externally)
if self.duplicates:
@@ -59,15 +60,22 @@ class DuplicateManagerDialog(QDialog):
self.table_widget = QTableWidget()
if self.review_mode:
self.table_widget.setColumnCount(3)
self.table_widget.setHorizontalHeaderLabels([UITexts.IGNORED_DATE, "%", UITexts.CONTEXT_MENU_OPEN])
self.table_widget.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents)
self.table_widget.horizontalHeader().setSectionResizeMode(1, QHeaderView.ResizeToContents)
self.table_widget.horizontalHeader().setSectionResizeMode(2, QHeaderView.Stretch)
self.table_widget.setHorizontalHeaderLabels(
[UITexts.IGNORED_DATE, "%", UITexts.CONTEXT_MENU_OPEN])
self.table_widget.horizontalHeader().setSectionResizeMode(
0, QHeaderView.ResizeToContents)
self.table_widget.horizontalHeader().setSectionResizeMode(
1, QHeaderView.ResizeToContents)
self.table_widget.horizontalHeader().setSectionResizeMode(
2, QHeaderView.Stretch)
else:
self.table_widget.setColumnCount(2)
self.table_widget.setHorizontalHeaderLabels(["%", UITexts.CONTEXT_MENU_OPEN]) # Usamos una cadena existente o genérica
self.table_widget.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents)
self.table_widget.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch)
self.table_widget.setHorizontalHeaderLabels(
["%", UITexts.CONTEXT_MENU_OPEN]) # Usamos una cadena existente o genérica
self.table_widget.horizontalHeader().setSectionResizeMode(
0, QHeaderView.ResizeToContents)
self.table_widget.horizontalHeader().setSectionResizeMode(
1, QHeaderView.Stretch)
self.table_widget.verticalHeader().setVisible(False)
self.table_widget.setSelectionBehavior(QAbstractItemView.SelectRows)
@@ -268,11 +276,20 @@ class DuplicateManagerDialog(QDialog):
pane.zoom_manager.calculate_initial_zoom(w, h, True)
self.update_view_for_pane(pane)
def reset_inactivity_timer(self): pass
def sync_filmstrip_selection(self, index): pass
def _get_clicked_face_for_pane(self, pane, pos): return None
def rename_face(self, face): pass
def toggle_fullscreen(self): pass
def reset_inactivity_timer(self):
pass
def sync_filmstrip_selection(self, index):
pass
def _get_clicked_face_for_pane(self, pane, pos):
return None
def rename_face(self, face):
pass
def toggle_fullscreen(self):
pass
def _create_comparison_pane_widget(self):
widget = QWidget()