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
+48
View File
@@ -3463,6 +3463,54 @@ class GuiTests(TempDirMixin, unittest.TestCase):
self.assert_removed(temp_dir)
def test_generate_table_emits_preview_only_for_left_double_click(self):
with self.make_temp_dir() as temp_dir:
cfg = self.make_config(temp_dir)
db.init_db(cfg["db_path"])
batch_id = db.create_batch(["input.xlsx"], path=cfg["db_path"])
db.insert_tasks(
batch_id,
[
{
"source_file_abs": os.path.join(temp_dir, "input.xlsx"),
"source_sheet": "商品",
"source_row": 2,
"account_name": "主店",
"alias": "alias-a",
"item_id": "51100639510",
}
],
path=cfg["db_path"],
)
tab = GenerateTab(config=cfg)
self.addCleanup(tab.close)
tab.resize(1000, 600)
tab.show()
QApplication.processEvents()
index = tab.model.index(0, 0)
rect = tab.task_table.visualRect(index)
self.assertTrue(rect.isValid())
previewed_rows = []
tab.task_table.leftDoubleClicked.connect(
lambda clicked_index: previewed_rows.append(clicked_index.row())
)
with mock.patch(
"app.gui.tabs.generate.CoverGalleryDialog.exec",
return_value=0,
) as execute:
QTest.mouseDClick(tab.task_table.viewport(), Qt.RightButton, Qt.NoModifier, rect.center())
QApplication.processEvents()
self.assertEqual([], previewed_rows)
execute.assert_not_called()
QTest.mouseDClick(tab.task_table.viewport(), Qt.LeftButton, Qt.NoModifier, rect.center())
QApplication.processEvents()
self.assertEqual([0], previewed_rows)
execute.assert_called_once()
self.assert_removed(temp_dir)
def test_generate_tab_opens_current_row_image_directory(self):
with self.make_temp_dir() as temp_dir:
cfg = self.make_config(temp_dir)