Add a GUI action to bring up import file dialog with provided file path

This commit is contained in:
mikkkee 2023-06-17 17:45:39 +08:00
parent eef3be8599
commit e999a44a47

View File

@ -41,6 +41,7 @@ from anki.exporting import AnkiPackageExporter
from anki.importing import AnkiPackageImporter from anki.importing import AnkiPackageImporter
from anki.notes import Note from anki.notes import Note
from anki.errors import NotFoundError from anki.errors import NotFoundError
from aqt.import_export.importing import import_file, prompt_for_file_then_import
from aqt.qt import Qt, QTimer, QMessageBox, QCheckBox from aqt.qt import Qt, QTimer, QMessageBox, QCheckBox
from .web import format_exception_reply, format_success_reply from .web import format_exception_reply, format_success_reply
@ -1852,6 +1853,32 @@ class AnkiConnect:
return False return False
@util.api()
def guiImportFile(self, path=None):
"""
Open Import File (Ctrl+Shift+I) dialog with provided file path.
If no path is given, the user will be prompted to select a file.
path: string
import file path, note on Windows you must use forward slashes.
"""
# Bring window to top for user to review import settings.
try:
# [Step 1/2] set always on top flag, show window (it stays on top for now)
self.window().setWindowFlags(self.window().windowFlags() | Qt.WindowStaysOnTopHint)
self.window().show()
finally:
# [Step 2/2] clear always on top flag, show window (it doesn't stay on top anymore)
self.window().setWindowFlags(self.window().windowFlags() & ~Qt.WindowStaysOnTopHint)
self.window().show()
if path is None:
prompt_for_file_then_import(self.window())
else:
import_file(self.window(), path)
@util.api() @util.api()
def guiExitAnki(self): def guiExitAnki(self):
timer = QTimer() timer = QTimer()