def __init__( self, mw: AnkiQt, deck_id: DeckId = DeckId(0), search: str | None = None, search_2: str | None = None, ) -> None: """If 'deck_id' is non-zero, load and modify its settings. Otherwise, build a new deck and derive settings from the current deck. If search or search_2 are provided, they will be used as the default search text. """ QDialog.__init__(self, mw) self.mw = mw mw.garbage_collect_on_dialog_finish(self) self.col = self.mw.col self._desired_search_1 = search self._desired_search_2 = search_2 self._initial_dialog_setup() # set on successful query self.deck: FilteredDeckForUpdate QueryOp( parent=self.mw, op=lambda col: col.sched.get_or_create_filtered_deck(deck_id= deck_id), success=self.load_deck_and_show, ).failure(self.on_fetch_error).run_in_background()
def __init__(self, parent: QWidget, mw: AnkiQt, on_close: Callable[[], None]) -> None: super().__init__(None, Qt.WindowType.Window) mw.garbage_collect_on_dialog_finish(self) self._open = True self._parent = parent self._close_callback = on_close self.mw = mw disable_help_button(self) setWindowIcon(self)
def __init__(self, parent: QWidget, mw: AnkiQt, on_close: Callable[[], None]) -> None: super().__init__(None, Qt.Window) mw.garbage_collect_on_dialog_finish(self) self._open = True self._parent = parent self._close_callback = on_close self.mw = mw icon = QIcon() icon.addPixmap(QPixmap(":/icons/anki.png"), QIcon.Normal, QIcon.Off) disable_help_button(self) self.setWindowIcon(icon)
def __init__( self, mw: AnkiQt, nt: NotetypeDict, parent: Optional[QWidget] = None, open_at: int = 0, ) -> None: QDialog.__init__(self, parent or mw) mw.garbage_collect_on_dialog_finish(self) self.mw = mw self.col = self.mw.col self.mm = self.mw.col.models self.model = nt self.mm._remove_from_cache(self.model["id"]) self.change_tracker = ChangeTracker(self.mw) self.setWindowTitle( without_unicode_isolation( tr.fields_fields_for(val=self.model["name"]))) if os.getenv("ANKI_EXPERIMENTAL_FIELDS_WEB"): form = aqt.forms.fields_web.Ui_Dialog() form.setupUi(self) self.webview = form.webview self.webview.set_title("fields") self.show() self.refresh() self.webview.set_bridge_command(self._on_bridge_cmd, self) self.activateWindow() return self.form = aqt.forms.fields.Ui_Dialog() self.form.setupUi(self) self.webview = None disable_help_button(self) self.form.buttonBox.button( QDialogButtonBox.StandardButton.Help).setAutoDefault(False) self.form.buttonBox.button( QDialogButtonBox.StandardButton.Cancel).setAutoDefault(False) self.form.buttonBox.button( QDialogButtonBox.StandardButton.Save).setAutoDefault(False) self.currentIdx: Optional[int] = None self.fillFields() self.setupSignals() self.form.fieldList.setDragDropMode( QAbstractItemView.DragDropMode.InternalMove) self.form.fieldList.dropEvent = self.onDrop # type: ignore[assignment] self.form.fieldList.setCurrentRow(open_at) self.exec()
def __init__( self, mw: AnkiQt, note: Note, ord: int = 0, parent: Optional[QWidget] = None, fill_empty: bool = False, ) -> None: QDialog.__init__(self, parent or mw, Qt.Window) mw.garbage_collect_on_dialog_finish(self) self.mw = aqt.mw self.note = note self.ord = ord self.col = self.mw.col.weakref() self.mm = self.mw.col.models self.model = note.model() self.templates = self.model["tmpls"] self.fill_empty_action_toggled = fill_empty self.night_mode_is_enabled = self.mw.pm.night_mode() self.mobile_emulation_enabled = False self.have_autoplayed = False self.mm._remove_from_cache(self.model["id"]) self.mw.checkpoint(tr.card_templates_card_types()) self.change_tracker = ChangeTracker(self.mw) self.setupTopArea() self.setupMainArea() self.setupButtons() self.setupShortcuts() self.setWindowTitle( without_unicode_isolation( tr.card_templates_card_types_for(val=self.model["name"]) ) ) disable_help_button(self) v1 = QVBoxLayout() v1.addWidget(self.topArea) v1.addWidget(self.mainArea) v1.addLayout(self.buttons) v1.setContentsMargins(12, 12, 12, 12) self.setLayout(v1) gui_hooks.card_layout_will_show(self) self.redraw_everything() restoreGeom(self, "CardLayout") restoreSplitter(self.mainArea, "CardLayoutMainArea") self.setWindowModality(Qt.ApplicationModal) self.show() # take the focus away from the first input area when starting up, # as users tend to accidentally type into the template self.setFocus()
def __init__(self, mw: AnkiQt) -> None: QDialog.__init__(self, None, Qt.Window) mw.garbage_collect_on_dialog_finish(self) self.mw = mw self.form = aqt.forms.addcards.Ui_Dialog() self.form.setupUi(self) self.setWindowTitle(tr(TR.ACTIONS_ADD)) disable_help_button(self) self.setMinimumHeight(300) self.setMinimumWidth(400) self.setup_choosers() self.setupEditor() self.setupButtons() self._load_new_note() self.history: List[NoteID] = [] self._last_added_note: Optional[Note] = None restoreGeom(self, "add") addCloseShortcut(self) gui_hooks.add_cards_did_init(self) self.show()
def __init__(self, mw: AnkiQt) -> None: QDialog.__init__(self, None, Qt.Window) mw.garbage_collect_on_dialog_finish(self) self.mw = mw self.col = mw.col form = aqt.forms.addcards.Ui_Dialog() form.setupUi(self) self.form = form self.setWindowTitle(tr.actions_add()) disable_help_button(self) self.setMinimumHeight(300) self.setMinimumWidth(400) self.setup_choosers() self.setupEditor() self.setupButtons() self._load_new_note() self.history: list[NoteId] = [] self._last_added_note: Optional[Note] = None gui_hooks.operation_did_execute.append(self.on_operation_did_execute) restoreGeom(self, "add") addCloseShortcut(self) gui_hooks.add_cards_did_init(self) self.show()
def __init__( self, mw: aqt.AnkiQt, names: Callable[[], list[str]] | None = None, accept: str | None = None, title: str | None = None, help: HelpPageArgument = HelpPage.KEYBOARD_SHORTCUTS, current: str | None = None, cancel: bool = True, parent: QWidget | None = None, dyn: bool = False, buttons: list[str | QPushButton] | None = None, geomKey: str = "default", callback: Callable[[StudyDeck], None] | None = None, ) -> None: super().__init__(parent) if not parent: mw.garbage_collect_on_dialog_finish(self) self.mw = mw self.form = aqt.forms.studydeck.Ui_Dialog() self.form.setupUi(self) self.form.filter.installEventFilter(self) gui_hooks.state_did_reset.append(self.onReset) self.geomKey = f"studyDeck-{geomKey}" restoreGeom(self, self.geomKey) disable_help_button(self) if not cancel: self.form.buttonBox.removeButton( self.form.buttonBox.button( QDialogButtonBox.StandardButton.Cancel)) if buttons is not None: for button_or_label in buttons: self.form.buttonBox.addButton( button_or_label, QDialogButtonBox.ButtonRole.ActionRole) else: b = QPushButton(tr.actions_add()) b.setShortcut(QKeySequence("Ctrl+N")) b.setToolTip(shortcut(tr.decks_add_new_deck_ctrlandn())) self.form.buttonBox.addButton( b, QDialogButtonBox.ButtonRole.ActionRole) qconnect(b.clicked, self.onAddDeck) if title: self.setWindowTitle(title) if not names: names_ = [ d.name for d in self.mw.col.decks.all_names_and_ids( include_filtered=dyn, skip_empty_default=True) ] self.nameFunc = None self.origNames = names_ else: self.nameFunc = names self.origNames = names() self.name: str | None = None self.form.buttonBox.addButton(accept or tr.decks_study(), QDialogButtonBox.ButtonRole.AcceptRole) self.setModal(True) qconnect(self.form.buttonBox.helpRequested, lambda: openHelp(help)) qconnect(self.form.filter.textEdited, self.redraw) qconnect(self.form.list.itemDoubleClicked, self.accept) qconnect(self.finished, self.on_finished) self.show() # redraw after show so position at center correct self.redraw("", current) self.callback = callback if callback: self.show() else: self.exec()