def onDeckChange(self): from aqt.studydeck import StudyDeck current = self.deck.text() ret = StudyDeck( self.mw, current=current, accept=_("Choose"), title=_("Choose Deck"), help="addingnotes", cancel=False, parent=self.widget, geomKey="selectDeck") self.deck.setText(ret.name)
def onStudyDeck(self): from aqt.studydeck import StudyDeck ret = StudyDeck(self, dyn=True, current=self.col.decks.current()['name']) if ret.name: self.col.decks.select(self.col.decks.id(ret.name)) self.moveToState("overview")
def show_models(self): edit = QPushButton(anki.lang._("Manage"), clicked=lambda: aqt.models.Models(mw, self)) ret = StudyDeck(mw, names=lambda: sorted(mw.col.models.allNames()), accept=anki.lang._("Choose"), title=anki.lang._("Choose Note Type"), help="_notes", parent=self, buttons=[edit], cancel=True, geomKey="selectModel") if ret.name: model = mw.col.models.byName(ret.name) self.models_button.setText( u'%s [%s]' % (_('CHOOSE_NOTE_TYPES'), ret.name)) return model
def select_model(self): if not self.mod_list: showText(_trans("USER DEFINED TEMPLATE ALERT"), self, "html", title=_trans("AnKindle")) importFile(mw, DEFAULT_TEMPLATE) edit = QPushButton(_trans("USE LATEST TEMPLATE"), clicked=lambda x: importFile(mw, DEFAULT_TEMPLATE)) ret = StudyDeck(mw, names=lambda: sorted([f['name'] for f in self.mod_list]), accept=anki.lang._("Choose"), title=_trans("NOTE TYPE"), parent=self, buttons=[edit], help='', cancel=True) return ret
def import_deck_name(self): ret = StudyDeck(mw, accept=_("Choose"), title=_("Choose Deck"), help="addingnotes", cancel=False, parent=mw, geomKey="selectDeck") if not ret.Accepted: return return ret.name
def onDeckChange(self): from aqt.studydeck import StudyDeck current = self.deckName() ret = StudyDeck(self.mw, current=current, accept=_("Choose"), title=_("Choose Deck"), cancel=False, parent=self.widget, geomKey="selectDeck") if ret.name: self.setDeckName(ret.name)
def testFunction(): ret = StudyDeck(mw, current=None, accept=_("Choose"), title=_("Choose Deck")) deckName = ret.name faceMapDir = os.path.join(mw.pm.addonFolder(), 'face_map') global faceMap faceMap = FaceMap.FaceMap(faceMapDir, deckName) imageSetId = faceMap.getImageSetId() imagesDir = unicode(os.path.join(faceMapDir, "images" + str(imageSetId))) writeToAnkiWhenImagesReady(imagesDir, deckName)
def _onAddIgnoredDeck(self): list_widget = self.form.listDecks ret = StudyDeck(self.mw, accept=_("Choose"), title=_("Choose Deck"), help="", parent=self, geomKey="selectDeck") deck_name = ret.name if not deck_name: return False deck_id = self.mw.col.decks.id(deck_name) item_tuple = (deck_name, deck_id) if not self.interface.setCurrentByData(list_widget, deck_id): self.interface.addValueAndMakeCurrent(list_widget, item_tuple)
def onDeckChange(self): from aqt.studydeck import StudyDeck current = self.deck.text() ret = StudyDeck(self.mw, current=current, accept=_("Choose"), title=_("Choose Deck"), help="addingnotes", cancel=False, parent=self.widget) self.deck.setText(ret.name) deck = self.mw.col.decks.byName(ret.name) self.mw.col.decks.select(deck['id']) self.mw.requireReset()
def select(): # select deck. Reuse deck if already exists, else add a desk with # deck_name. widget = QWidget() # prompt dialog to choose deck ret = StudyDeck(mw, current=None, accept=_("Choose"), title=_("Choose Deck"), help="addingnotes", cancel=False, parent=widget, geomKey="selectDeck") did = mw.col.decks.id(ret.name) mw.col.decks.select(did) if not ret.name: return None, None deck = mw.col.decks.byName(ret.name) def nameFunc(): return sorted(mw.col.models.allNames()) ret = StudyDeck(mw, names=nameFunc, accept=_("Choose"), title=_("Choose Note Type"), help="_notes", parent=widget, cancel=True, geomKey="selectModel") if not ret.name: return None, None model = mw.col.models.byName(ret.name) # deck['mid'] = model['id'] # mw.col.decks.save(deck) return model, deck
def show_models(): ret = StudyDeck(mw, names=lambda: sorted(mw.col.models.allNames()), accept=_("Choose"), title=_("Choose Note Type"), help="_notes", parent=mw.myWidget, cancel=True, geomKey="selectModel") if ret.name: model = mw.col.models.byName(ret.name) global model_name model_name = ret.name mw.myChooseButton.setText(u'选择笔记类型 [当前类型 -- %s]' % ret.name) return model
def choose_deck(self) -> None: from aqt.studydeck import StudyDeck current = self.selected_deck_name() ret = StudyDeck( self.mw, current=current, accept=tr(TR.ACTIONS_CHOOSE), title=tr(TR.QT_MISC_CHOOSE_DECK), help=HelpPage.EDITING, cancel=False, parent=self._widget, geomKey="selectDeck", ) if ret.name: self.selected_deck_id = self.mw.col.decks.byName(ret.name)["id"]
def choose_deck(self) -> None: from aqt.studydeck import StudyDeck current = self.selected_deck_name() ret = StudyDeck( self.mw, current=current, accept=tr.actions_choose(), title=tr.qt_misc_choose_deck(), help=HelpPage.EDITING, cancel=False, parent=self._widget, geomKey="selectDeck", ) if ret.name: self.selected_deck_id = self.mw.col.decks.byName(ret.name)["id"]
def onDeckChange(self) -> None: from aqt.studydeck import StudyDeck current = self.deckName() ret = StudyDeck( self.mw, current=current, accept=tr(TR.ACTIONS_CHOOSE), title=tr(TR.QT_MISC_CHOOSE_DECK), help=HelpPage.EDITING, cancel=False, parent=self._widget, geomKey="selectDeck", ) if ret.name: self.setDeckName(ret.name)
def set_deck_of_selected_cards(self) -> None: from aqt.studydeck import StudyDeck cids = self.table.get_selected_card_ids() did = self.mw.col.db.scalar("select did from cards where id = ?", cids[0]) current = self.mw.col.decks.get(did)["name"] ret = StudyDeck( self.mw, current=current, accept=tr.browsing_move_cards(), title=tr.browsing_change_deck(), help=HelpPage.BROWSING, parent=self, ) if not ret.name: return did = self.col.decks.id(ret.name) set_card_deck(parent=self, card_ids=cids, deck_id=did).run_in_background()
def onModelChange(self): from aqt.studydeck import StudyDeck current = self.deck.models.current()['name'] # edit button edit = QPushButton(_("Manage"), clicked=self.onEdit) def nameFunc(): return sorted(self.deck.models.allNames()) ret = StudyDeck( self.mw, names=nameFunc, accept=_("Choose"), title=_("Choose Note Type"), help="_notes", current=current, parent=self.widget, buttons=[edit], cancel=True, geomKey="selectModel") if not ret.name: return m = self.deck.models.byName(ret.name) self.deck.conf['curModel'] = m['id'] cdeck = self.deck.decks.current() cdeck['mid'] = m['id'] self.deck.decks.save(cdeck) runHook("currentModelChanged") self.mw.reset()
def on_select_deck_clicked(self, did, ignore_selection=False): nm = None if did: nm = mw.col.decks.decks.get(did, {"name": ''})["name"] else: ret = None if not ignore_selection: ret = StudyDeck( mw, accept=anki.lang._("Choose"), title=anki.lang._("Choose Deck"), cancel=True, parent=self) if ret: nm = ret.name if nm: self.deck = mw.col.decks.byName(nm) self.btn_2select_deck.setText( u'%s [%s]' % (_trans("DECK TYPE"), nm)) self.set_lang_config(deck_id=str(self.deck['id']) if self.deck else u'') else: self.btn_2select_deck.setText(_trans("SELECT DECK")) self._validate_clicks()
def onModelChange(self): """Open Choose Note Type window""" from aqt.studydeck import StudyDeck current = self.deck.models.current()["name"] # edit button edit = QPushButton(tr(TR.QT_MISC_MANAGE), clicked=self.onEdit) # type: ignore def nameFunc() -> List[str]: return sorted(self.deck.models.allNames()) ret = StudyDeck( self.mw, names=nameFunc, accept=tr(TR.ACTIONS_CHOOSE), title=tr(TR.QT_MISC_CHOOSE_NOTE_TYPE), help=HelpPage.NOTE_TYPE, current=current, parent=self._widget, buttons=[edit], cancel=True, geomKey="selectModel", ) if not ret.name: return m = self.deck.models.byName(ret.name) self.deck.conf["curModel"] = m["id"] cdeck = self.deck.decks.current() cdeck["mid"] = m["id"] # New line: self.deck.decks.save(cdeck) # Following code was in original method gui_hooks.current_note_type_did_change(current) self.parent.onModelChange() self.updateModels() self.parent.setAndFocusNote(self.parent.editor.note)
class DeckChooser(QHBoxLayout): def __init__( self, mw: AnkiQt, widget: QWidget, label: bool = True, starting_deck_id: DeckId | None = None, on_deck_changed: Callable[[int], None] | None = None, ) -> None: QHBoxLayout.__init__(self) self._widget = widget # type: ignore self.mw = mw self._setup_ui(show_label=label) self._selected_deck_id = DeckId(0) # default to current deck if starting id not provided if starting_deck_id is None: starting_deck_id = DeckId(self.mw.col.get_config("curDeck", default=1) or 1) self.selected_deck_id = starting_deck_id self.on_deck_changed = on_deck_changed gui_hooks.operation_did_execute.append(self.on_operation_did_execute) def _setup_ui(self, show_label: bool) -> None: self.setContentsMargins(0, 0, 0, 0) self.setSpacing(8) # text label before button? if show_label: self.deckLabel = QLabel(tr.decks_deck()) self.addWidget(self.deckLabel) # decks box self.deck = QPushButton() qconnect(self.deck.clicked, self.choose_deck) self.deck.setAutoDefault(False) self.deck.setToolTip(shortcut(tr.qt_misc_target_deck_ctrlandd())) qconnect( QShortcut(QKeySequence("Ctrl+D"), self._widget).activated, self.choose_deck ) sizePolicy = QSizePolicy(QSizePolicy.Policy(7), QSizePolicy.Policy(0)) self.deck.setSizePolicy(sizePolicy) self.addWidget(self.deck) self._widget.setLayout(self) def selected_deck_name(self) -> str: return ( self.mw.col.decks.name_if_exists(self.selected_deck_id) or "missing default" ) @property def selected_deck_id(self) -> DeckId: self._ensure_selected_deck_valid() return self._selected_deck_id @selected_deck_id.setter def selected_deck_id(self, id: DeckId) -> None: if id != self._selected_deck_id: self._selected_deck_id = id self._ensure_selected_deck_valid() self._update_button_label() def _ensure_selected_deck_valid(self) -> None: deck = self.mw.col.decks.get(self._selected_deck_id, default=False) if not deck or deck["dyn"]: self.selected_deck_id = DEFAULT_DECK_ID def _update_button_label(self) -> None: self.deck.setText(self.selected_deck_name().replace("&", "&&")) def show(self) -> None: self._widget.show() # type: ignore def hide(self) -> None: self._widget.hide() # type: ignore def choose_deck(self) -> None: from aqt.studydeck import StudyDeck current = self.selected_deck_name() def callback(ret: StudyDeck) -> None: if not ret.name: return new_selected_deck_id = self.mw.col.decks.by_name(ret.name)["id"] if self.selected_deck_id != new_selected_deck_id: self.selected_deck_id = new_selected_deck_id if func := self.on_deck_changed: func(new_selected_deck_id) StudyDeck( self.mw, current=current, accept=tr.actions_choose(), title=tr.qt_misc_choose_deck(), help=HelpPage.EDITING, cancel=True, parent=self._widget, geomKey="selectDeck", callback=callback, )