fix(generate): limit gallery preview to left double-click
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user