def saveConf(self) -> None: f = self.form d = self.deck if f.name.text() and d["name"] != f.name.text(): self.mw.col.decks.rename(d, f.name.text()) gui_hooks.sidebar_should_refresh_decks() d["resched"] = f.resched.isChecked() d["delays"] = None if self.mw.col.schedVer() == 1 and f.stepsOn.isChecked(): steps = self.userToList(f.steps) if steps: d["delays"] = steps else: d["delays"] = None search = self.mw.col.build_search_string(f.search.text()) terms = [[search, f.limit.value(), f.order.currentIndex()]] if f.secondFilter.isChecked(): search_2 = self.mw.col.build_search_string(f.search_2.text()) terms.append( [search_2, f.limit_2.value(), f.order_2.currentIndex()]) d["terms"] = terms d["previewDelay"] = f.previewDelay.value() self.mw.col.decks.save(d)
def _linkHandler(self, url): if ":" in url: (cmd, arg) = url.split(":") else: cmd = url if cmd == "open": self._selDeck(arg) elif cmd == "opts": self._showOptions(arg) elif cmd == "shared": self._onShared() elif cmd == "import": self.mw.onImport() elif cmd == "create": deck = getOnlyText(_("Name for deck:")) if deck: self.mw.col.decks.id(deck) gui_hooks.sidebar_should_refresh_decks() self.refresh() elif cmd == "drag": draggedDeckDid, ontoDeckDid = arg.split(",") self._dragDeckOnto(draggedDeckDid, ontoDeckDid) elif cmd == "collapse": self._collapse(int(arg)) return False
def _linkHandler(self, url: str) -> Any: if ":" in url: (cmd, arg) = url.split(":", 1) else: cmd = url if cmd == "open": self._selDeck(arg) elif cmd == "opts": self._showOptions(arg) elif cmd == "shared": self._onShared() elif cmd == "import": self.mw.onImport() elif cmd == "create": deck = getOnlyText(tr(TR.DECKS_NAME_FOR_DECK)) if deck: self.mw.col.decks.id(deck) gui_hooks.sidebar_should_refresh_decks() self.refresh() elif cmd == "drag": source, target = arg.split(",") self._handle_drag_and_drop(int(source), int(target or 0)) elif cmd == "collapse": self._collapse(int(arg)) elif cmd == "v2upgrade": self._confirm_upgrade() elif cmd == "v2upgradeinfo": openLink("https://faqs.ankiweb.net/the-anki-2.1-scheduler.html") elif cmd == "v2upgradelater": self._v1_message_dismissed_at = intTime() self.refresh() return False
def _linkHandler(self, url: str) -> Any: if ":" in url: (cmd, arg) = url.split(":", 1) else: cmd = url if cmd == "open": self._selDeck(arg) elif cmd == "opts": self._showOptions(arg) elif cmd == "shared": self._onShared() elif cmd == "import": self.mw.onImport() elif cmd == "create": deck = getOnlyText(tr(TR.DECKS_NAME_FOR_DECK)) if deck: self.mw.col.decks.id(deck) gui_hooks.sidebar_should_refresh_decks() self.refresh() elif cmd == "drag": source, target = arg.split(",") self._handle_drag_and_drop(int(source), int(target or 0)) elif cmd == "collapse": self._collapse(int(arg)) return False
def _dragDeckOnto(self, draggedDeckDid, ontoDeckDid): try: self.mw.col.decks.renameForDragAndDrop(draggedDeckDid, ontoDeckDid) gui_hooks.sidebar_should_refresh_decks() except DeckRenameError as e: return showWarning(e.description) self.show()
def _handle_drag_and_drop(self, source: int, target: int) -> None: try: self.mw.col.decks.drag_drop_decks([source], target) except Exception as e: showWarning(str(e)) return gui_hooks.sidebar_should_refresh_decks() self.show()
def _on_create(self) -> None: deck = getOnlyText(tr(TR.DECKS_NAME_FOR_DECK)) if deck: try: self.mw.col.decks.id(deck) except DeckIsFilteredError as err: showWarning(str(err)) return gui_hooks.sidebar_should_refresh_decks() self.refresh()
def on_done(fut: Future) -> None: try: fut.result() except Exception as e: showWarning(str(e)) return self.mw.update_undo_actions() gui_hooks.sidebar_should_refresh_decks() self.show()
def _rename(self, did: int) -> None: self.mw.checkpoint(_("Rename Deck")) deck = self.mw.col.decks.get(did) oldName = deck["name"] newName = getOnlyText(_("New deck name:"), default=oldName) newName = newName.replace('"', "") if not newName or newName == oldName: return try: self.mw.col.decks.rename(deck, newName) gui_hooks.sidebar_should_refresh_decks() except DeckRenameError as e: return showWarning(e.description) self.show()
def _rename(self, did: int) -> None: self.mw.checkpoint(tr(TR.ACTIONS_RENAME_DECK)) deck = self.mw.col.decks.get(did) oldName = deck["name"] newName = getOnlyText(tr(TR.DECKS_NEW_DECK_NAME), default=oldName) newName = newName.replace('"', "") if not newName or newName == oldName: return try: self.mw.col.decks.rename(deck, newName) gui_hooks.sidebar_should_refresh_decks() except DeckRenameError as e: return showWarning(e.description) self.show()
def _rename(self, did: int) -> None: deck = self.mw.col.decks.get(did) oldName = deck["name"] newName = getOnlyText(tr(TR.DECKS_NEW_DECK_NAME), default=oldName) newName = newName.replace('"', "") if not newName or newName == oldName: return try: self.mw.col.decks.rename(deck, newName) gui_hooks.sidebar_should_refresh_decks() except DeckIsFilteredError as err: showWarning(str(err)) return self.mw.update_undo_actions() self.show()
def onAddDeck(self) -> None: row = self.form.list.currentRow() if row < 0: default = self.form.filter.text() else: default = self.names[self.form.list.currentRow()] n = getOnlyText(_("New deck name:"), default=default) if n: did = self.mw.col.decks.id(n) # deck name may not be the same as user input. ex: ", :: self.name = self.mw.col.decks.name(did) # make sure we clean up reset hook when manually exiting gui_hooks.state_did_reset.remove(self.onReset) if self.mw.state == "deckBrowser": self.mw.deckBrowser.refresh() gui_hooks.sidebar_should_refresh_decks() QDialog.accept(self)
def onAddDeck(self) -> None: row = self.form.list.currentRow() if row < 0: default = self.form.filter.text() else: default = self.names[self.form.list.currentRow()] n = getOnlyText(tr(TR.DECKS_NEW_DECK_NAME), default=default) n = n.strip() if n: try: did = self.mw.col.decks.id(n) except DeckIsFilteredError as err: showWarning(str(err)) return # deck name may not be the same as user input. ex: ", :: self.name = self.mw.col.decks.name(did) # make sure we clean up reset hook when manually exiting gui_hooks.state_did_reset.remove(self.onReset) if self.mw.state == "deckBrowser": self.mw.deckBrowser.refresh() gui_hooks.sidebar_should_refresh_decks() QDialog.accept(self)
def _handle_drag_and_drop(self, source: int, target: int) -> None: self.mw.col.decks.drag_drop_decks([source], target) gui_hooks.sidebar_should_refresh_decks() self.show()