T-572 修复封面画廊方向键焦点
This commit is contained in:
+51
-1
@@ -2472,7 +2472,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
dialog.candidate_buttons[canonicals[0]].setFocus()
|
||||
event = QKeyEvent(QKeyEvent.KeyPress, gui.Qt.Key_Down, gui.Qt.NoModifier)
|
||||
|
||||
dialog.keyPressEvent(event)
|
||||
QApplication.sendEvent(dialog.candidate_buttons[canonicals[0]], event)
|
||||
|
||||
self.assertTrue(event.isAccepted())
|
||||
self.assertEqual(tasks[1].id, dialog.task.id)
|
||||
@@ -2481,6 +2481,56 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_cover_gallery_arrow_keys_switch_when_button_has_focus(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg, account, tasks, canonicals, _archives = self._cover_gallery_task_set(temp_dir, count=2)
|
||||
dialog = CoverGalleryDialog(
|
||||
tasks[0],
|
||||
cfg["image_dir"],
|
||||
cfg["db_path"],
|
||||
account=account,
|
||||
visible_tasks=tasks,
|
||||
task_index=0,
|
||||
account_by_alias={"alias-a": account},
|
||||
)
|
||||
self.addCleanup(dialog.close)
|
||||
dialog.next_button.setFocus()
|
||||
event = QKeyEvent(QKeyEvent.KeyPress, gui.Qt.Key_Down, gui.Qt.NoModifier)
|
||||
|
||||
QApplication.sendEvent(dialog.next_button, event)
|
||||
|
||||
self.assertTrue(event.isAccepted())
|
||||
self.assertEqual(tasks[1].id, dialog.task.id)
|
||||
self.assertEqual(canonicals[1], dialog.selected_path)
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_cover_gallery_arrow_keys_do_not_switch_when_text_input_has_focus(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg, account, tasks, _canonicals, _archives = self._cover_gallery_task_set(temp_dir, count=2)
|
||||
dialog = CoverGalleryDialog(
|
||||
tasks[0],
|
||||
cfg["image_dir"],
|
||||
cfg["db_path"],
|
||||
account=account,
|
||||
visible_tasks=tasks,
|
||||
task_index=0,
|
||||
account_by_alias={"alias-a": account},
|
||||
)
|
||||
self.addCleanup(dialog.close)
|
||||
input_widget = QLineEdit(dialog)
|
||||
event = QKeyEvent(QKeyEvent.KeyPress, gui.Qt.Key_Down, gui.Qt.NoModifier)
|
||||
|
||||
with mock.patch(
|
||||
"app.gui.tabs.generate.QApplication.focusWidget",
|
||||
return_value=input_widget,
|
||||
):
|
||||
QApplication.sendEvent(input_widget, event)
|
||||
|
||||
self.assertEqual(tasks[0].id, dialog.task.id)
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_cover_gallery_unsaved_switch_save_discard_and_cancel_paths(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg, account, tasks, canonicals, archives = self._cover_gallery_task_set(temp_dir, count=2)
|
||||
|
||||
Reference in New Issue
Block a user