mirror of
https://github.com/ankitects/anki.git
synced 2026-01-05 18:13:56 -05:00
Merge 419603fc47 into 62252f7216
This commit is contained in:
commit
bd09ec0a59
5 changed files with 48 additions and 1 deletions
|
|
@ -244,7 +244,6 @@ memchr <memchr@proton.me>
|
|||
Max Romanowski <maxr777@proton.me>
|
||||
Aldlss <ayaldlss@gmail.com>
|
||||
Hanna Nilsén <hanni614@student.liu.se>
|
||||
Elias Johansson Lara <elias.johanssonlara@gmail.com>
|
||||
Toby Penner <tobypenner01@gmail.com>
|
||||
Danilo Spillebeen <spillebeendanilo@gmail.com>
|
||||
Matbe766 <matildabergstrom01@gmail.com>
|
||||
|
|
@ -255,6 +254,7 @@ Ranjit Odedra <ranjitodedra.dev@gmail.com>
|
|||
Eltaurus <https://github.com/Eltaurus-Lt>
|
||||
jariji
|
||||
Francisco Esteva <fr.esteva@duocuc.cl>
|
||||
Elias Johansson Lara <elias.johanssonlara@gmail.com>
|
||||
|
||||
********************
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ qt-accel-go = &Go
|
|||
qt-accel-guide = &Guide
|
||||
qt-accel-help = &Help
|
||||
qt-accel-import = &Import...
|
||||
qt-accel-import-clipboard = Import from &Clipboard...
|
||||
qt-accel-info = &Info...
|
||||
qt-accel-invert-selection = &Invert Selection
|
||||
qt-accel-next-card = &Next Card
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@
|
|||
<addaction name="actionSwitchProfile"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionImport"/>
|
||||
<addaction name="actionImportClipboard"/>
|
||||
<addaction name="actionExport"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="action_create_backup"/>
|
||||
|
|
@ -203,6 +204,14 @@
|
|||
<string notr="true">Ctrl+Shift+I</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionImportClipboard">
|
||||
<property name="text">
|
||||
<string>qt_accel_import_clipboard</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string notr="true">Ctrl+Alt+Shift+I</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionStudyDeck">
|
||||
<property name="text">
|
||||
<string>qt_misc_study_deck</string>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ from __future__ import annotations
|
|||
|
||||
import os
|
||||
import re
|
||||
import tempfile
|
||||
from abc import ABC, abstractmethod
|
||||
from collections.abc import Callable
|
||||
from itertools import chain
|
||||
|
|
@ -167,6 +168,36 @@ def prompt_for_file_then_import(mw: aqt.main.AnkiQt) -> None:
|
|||
import_file(mw, path)
|
||||
|
||||
|
||||
def import_from_clipboard(mw: aqt.main.AnkiQt) -> None:
|
||||
clipboard = QApplication.clipboard()
|
||||
|
||||
if clipboard is None:
|
||||
showWarning("Clipboard not available.")
|
||||
return
|
||||
|
||||
text = clipboard.text()
|
||||
|
||||
if not text:
|
||||
showWarning("Clipboard is empty.")
|
||||
return
|
||||
|
||||
try:
|
||||
with tempfile.NamedTemporaryFile(
|
||||
mode="w",
|
||||
prefix="clipboard_",
|
||||
suffix=".txt",
|
||||
delete=False,
|
||||
encoding="utf-8",
|
||||
) as f:
|
||||
f.write(text)
|
||||
temp_path = f.name
|
||||
|
||||
import_file(mw, temp_path)
|
||||
|
||||
except Exception as e:
|
||||
showWarning(f"Failed to import from clipboard: {e}")
|
||||
|
||||
|
||||
def get_file_path(mw: aqt.main.AnkiQt) -> str | None:
|
||||
filter = without_unicode_isolation(
|
||||
tr.importing_all_supported_formats(
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ from aqt.import_export.exporting import ExportDialog
|
|||
from aqt.import_export.importing import (
|
||||
import_collection_package_op,
|
||||
import_file,
|
||||
import_from_clipboard,
|
||||
prompt_for_file_then_import,
|
||||
)
|
||||
from aqt.legacy import install_pylib_legacy
|
||||
|
|
@ -1360,6 +1361,10 @@ title="{}" {}>{}</button>""".format(
|
|||
else:
|
||||
aqt.importing.onImport(self)
|
||||
|
||||
def onImportFromClipboard(self) -> None:
|
||||
"""Import from clipboard text."""
|
||||
import_from_clipboard(self)
|
||||
|
||||
def onExport(self, did: DeckId | None = None) -> None:
|
||||
import aqt.exporting
|
||||
|
||||
|
|
@ -1403,6 +1408,7 @@ title="{}" {}>{}</button>""".format(
|
|||
m.actionSwitchProfile.triggered, self.unloadProfileAndShowProfileManager
|
||||
)
|
||||
qconnect(m.actionImport.triggered, self.onImport)
|
||||
qconnect(m.actionImportClipboard.triggered, self.onImportFromClipboard)
|
||||
qconnect(m.actionExport.triggered, self.onExport)
|
||||
qconnect(m.action_create_backup.triggered, self.on_create_backup_now)
|
||||
qconnect(m.action_open_backup.triggered, self.onOpenBackup)
|
||||
|
|
|
|||
Loading…
Reference in a new issue