fix(generate): limit gallery preview to left double-click

This commit is contained in:
chengma
2026-07-20 10:12:12 +08:00
parent 391a50a982
commit c81a24d173
4 changed files with 75 additions and 10 deletions
+17 -3
View File
@@ -2,7 +2,7 @@
from __future__ import annotations
from PySide6.QtCore import QEvent, QRectF, QSize
from PySide6.QtCore import QEvent, QModelIndex, QRectF, QSize, Signal
from PySide6.QtGui import QColor, QPainter
from ... import product_status
@@ -16,6 +16,20 @@ def GenerateWorker(*args, **kwargs):
return _call_package_attr("GenerateWorker", _RealGenerateWorker, *args, **kwargs)
class _GenerateTaskTableView(QTableView):
"""Task table that exposes only left-button double-clicks for previews."""
leftDoubleClicked = Signal(QModelIndex)
def mouseDoubleClickEvent(self, event):
super().mouseDoubleClickEvent(event)
if event.button() != Qt.LeftButton:
return
index = self.indexAt(event.position().toPoint())
if index.isValid():
self.leftDoubleClicked.emit(index)
class _CoverThumbnailLabel(QLabel):
def __init__(self, image_path, open_callback, parent=None):
super().__init__(parent)
@@ -1158,7 +1172,7 @@ class GenerateTab(QWidget):
) = _build_empty_state_card("generateEmptyStateCard")
if self.open_accounts_callback is not None:
self.empty_state_button.clicked.connect(self.open_accounts_callback)
self.task_table = QTableView()
self.task_table = _GenerateTaskTableView()
self.model = GenerateTaskTableModel(self.task_table, db_path=self.db_path, status_callback=self._set_status)
self.model.set_generate_mode(self._current_generate_mode())
self.task_table.setModel(self.model)
@@ -1249,7 +1263,7 @@ class GenerateTab(QWidget):
self.generate_button.clicked.connect(self.start_generate)
self.stop_generate_button.clicked.connect(self.stop_generate)
self.reset_generate_button.clicked.connect(self.reset_generated_result)
self.task_table.doubleClicked.connect(self.show_task_images)
self.task_table.leftDoubleClicked.connect(self.show_task_images)
self.refresh_title_templates()
self.refresh_cover_templates()