diff --git a/qt/aqt/deckbrowser.py b/qt/aqt/deckbrowser.py index 05836f8dd..36e5029a5 100644 --- a/qt/aqt/deckbrowser.py +++ b/qt/aqt/deckbrowser.py @@ -88,11 +88,7 @@ class DeckBrowser: 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() + self._on_create() elif cmd == "drag": source, target = arg.split(",") self._handle_drag_and_drop(int(source), int(target or 0)) @@ -352,6 +348,17 @@ class DeckBrowser: def _onShared(self) -> None: openLink(f"{aqt.appShared}decks/") + def _on_create(self) -> None: + deck = getOnlyText(tr(TR.DECKS_NAME_FOR_DECK)) + if deck: + try: + self.mw.col.decks.id(deck) + except DeckRenameError as err: + show_rename_deck_error(err) + return + gui_hooks.sidebar_should_refresh_decks() + self.refresh() + ###################################################################### def _v1_upgrade_message(self) -> str: diff --git a/qt/aqt/studydeck.py b/qt/aqt/studydeck.py index d44ff1d26..9db4d7184 100644 --- a/qt/aqt/studydeck.py +++ b/qt/aqt/studydeck.py @@ -4,6 +4,7 @@ from typing import List, Optional import aqt +from anki.decks import DeckRenameError from aqt import gui_hooks from aqt.qt import * from aqt.utils import ( @@ -16,6 +17,7 @@ from aqt.utils import ( restoreGeom, saveGeom, shortcut, + show_rename_deck_error, showInfo, tr, ) @@ -164,7 +166,11 @@ class StudyDeck(QDialog): n = getOnlyText(tr(TR.DECKS_NEW_DECK_NAME), default=default) n = n.strip() if n: - did = self.mw.col.decks.id(n) + try: + did = self.mw.col.decks.id(n) + except DeckRenameError as err: + show_rename_deck_error(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