Continue to provide separate options for schema 11+18 colpkg export

This commit is contained in:
Damien Elmes 2022-05-02 12:09:13 +10:00
parent 8e4b1c6ae8
commit 8f0b2c175f

View file

@ -49,7 +49,11 @@ class ExportDialog(QDialog):
self.open() self.open()
def setup(self, did: DeckId | None) -> None: def setup(self, did: DeckId | None) -> None:
self.exporters: list[Type[Exporter]] = [ApkgExporter, ColpkgExporter] self.exporters: list[Type[Exporter]] = [
ApkgExporter,
OldSchemaColpkgExporter,
ColpkgExporter,
]
self.frm.format.insertItems( self.frm.format.insertItems(
0, [f"{e.name()} (.{e.extension})" for e in self.exporters] 0, [f"{e.name()} (.{e.extension})" for e in self.exporters]
) )
@ -176,13 +180,14 @@ class Exporter(ABC):
class ColpkgExporter(Exporter): class ColpkgExporter(Exporter):
extension = "colpkg" extension = "colpkg"
show_include_media = True show_include_media = True
_legacy = False
@staticmethod @staticmethod
def name() -> str: def name() -> str:
return tr.exporting_anki_collection_package() return "Anki 2.1.50+ Collection Package"
@staticmethod @classmethod
def export(mw: aqt.main.AnkiQt, options: Options) -> None: def export(kls, mw: aqt.main.AnkiQt, options: Options) -> None:
def on_success(_: None) -> None: def on_success(_: None) -> None:
mw.reopen() mw.reopen()
tooltip(tr.exporting_collection_exported(), parent=mw) tooltip(tr.exporting_collection_exported(), parent=mw)
@ -195,7 +200,9 @@ class ColpkgExporter(Exporter):
QueryOp( QueryOp(
parent=mw, parent=mw,
op=lambda col: col.export_collection_package( op=lambda col: col.export_collection_package(
options.out_path, include_media=options.include_media, legacy=False options.out_path,
include_media=options.include_media,
legacy=kls._legacy,
), ),
success=on_success, success=on_success,
).with_backend_progress(export_progress_update).failure( ).with_backend_progress(export_progress_update).failure(
@ -203,6 +210,14 @@ class ColpkgExporter(Exporter):
).run_in_background() ).run_in_background()
class OldSchemaColpkgExporter(ColpkgExporter):
_legacy = True
@staticmethod
def name() -> str:
return tr.exporting_anki_collection_package()
class ApkgExporter(Exporter): class ApkgExporter(Exporter):
extension = "apkg" extension = "apkg"
show_deck_list = True show_deck_list = True