Ejemplo n.º 1
0
 def setupButtons(self) -> None:
     bb = self.form.buttonBox
     ar = QDialogButtonBox.ActionRole
     # add
     self.addButton = bb.addButton(tr.actions_add(), ar)
     qconnect(self.addButton.clicked, self.add_current_note)
     self.addButton.setShortcut(QKeySequence("Ctrl+Return"))
     self.addButton.setToolTip(
         shortcut(tr.adding_add_shortcut_ctrlandenter()))
     # close
     self.closeButton = QPushButton(tr.actions_close())
     self.closeButton.setAutoDefault(False)
     bb.addButton(self.closeButton, QDialogButtonBox.RejectRole)
     # help
     self.helpButton = QPushButton(
         tr.actions_help(), clicked=self.helpRequested)  # type: ignore
     self.helpButton.setAutoDefault(False)
     bb.addButton(self.helpButton, QDialogButtonBox.HelpRole)
     # history
     b = bb.addButton(f"{tr.adding_history()} {downArrow()}", ar)
     if isMac:
         sc = "Ctrl+Shift+H"
     else:
         sc = "Ctrl+H"
     b.setShortcut(QKeySequence(sc))
     b.setToolTip(tr.adding_shortcut(val=shortcut(sc)))
     qconnect(b.clicked, self.onHistory)
     b.setEnabled(False)
     self.historyButton = b
Ejemplo n.º 2
0
 def __init__(
     self,
     mw: aqt.AnkiQt,
     names: Callable = None,
     accept: str = None,
     title: str = None,
     help: HelpPageArgument = HelpPage.KEYBOARD_SHORTCUTS,
     current: Optional[str] = None,
     cancel: bool = True,
     parent: Optional[QWidget] = None,
     dyn: bool = False,
     buttons: Optional[List[Union[str, QPushButton]]] = None,
     geomKey: str = "default",
 ) -> None:
     QDialog.__init__(self, parent or mw)
     self.mw = mw
     self.form = aqt.forms.studydeck.Ui_Dialog()
     self.form.setupUi(self)
     self.form.filter.installEventFilter(self)
     self.cancel = cancel
     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.Cancel))
     if buttons is not None:
         for button_or_label in buttons:
             self.form.buttonBox.addButton(button_or_label,
                                           QDialogButtonBox.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.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: Optional[str] = None
     self.ok = self.form.buttonBox.addButton(accept or tr.decks_study(),
                                             QDialogButtonBox.AcceptRole)
     self.setWindowModality(Qt.WindowModal)
     qconnect(self.form.buttonBox.helpRequested, lambda: openHelp(help))
     qconnect(self.form.filter.textEdited, self.redraw)
     qconnect(self.form.list.itemDoubleClicked, self.accept)
     self.show()
     # redraw after show so position at center correct
     self.redraw("", current)
     self.exec_()
Ejemplo n.º 3
0
    def setupModels(self) -> None:
        self.model = None
        f = self.form
        box = f.buttonBox

        default_buttons = [
            (tr.actions_add(), self.onAdd),
            (tr.actions_rename(), self.onRename),
            (tr.actions_delete(), self.onDelete),
        ]

        if self.fromMain:
            default_buttons.extend([
                (tr.notetypes_fields(), self.onFields),
                (tr.notetypes_cards(), self.onCards),
            ])

        default_buttons.append((tr.notetypes_options(), self.onAdvanced))

        for label, func in gui_hooks.models_did_init_buttons(
                default_buttons, self):
            button = box.addButton(label, QDialogButtonBox.ActionRole)
            qconnect(button.clicked, func)

        qconnect(f.modelsList.itemDoubleClicked, self.onRename)

        def on_done(fut: Future) -> None:
            self.updateModelsList(fut.result())
            self.maybe_select_provided_notetype()

        self.mw.taskman.with_progress(self.col.models.all_use_counts, on_done,
                                      self)
        maybeHideClose(box)
Ejemplo n.º 4
0
 def confOpts(self) -> None:
     m = QMenu(self.mw)
     a = m.addAction(tr.actions_add())
     qconnect(a.triggered, self.addGroup)
     a = m.addAction(tr.actions_delete())
     qconnect(a.triggered, self.remGroup)
     a = m.addAction(tr.actions_rename())
     qconnect(a.triggered, self.renameGroup)
     a = m.addAction(tr.scheduling_set_for_all_subdecks())
     qconnect(a.triggered, self.setChildren)
     if not self.childDids:
         a.setEnabled(False)
     m.exec_(QCursor.pos())
Ejemplo n.º 5
0
 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
     self.form = aqt.forms.addcards.Ui_Dialog()
     self.form.setupUi(self)
     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
     restoreGeom(self, "add")
     addCloseShortcut(self)
     gui_hooks.add_cards_did_init(self)
     self.show()
Ejemplo n.º 6
0
    def _centerLinks(self) -> str:
        links = [
            self.create_link(
                "decks",
                tr.actions_decks(),
                self._deckLinkHandler,
                tip=tr.actions_shortcut_key(val="D"),
                id="decks",
            ),
            self.create_link(
                "add",
                tr.actions_add(),
                self._addLinkHandler,
                tip=tr.actions_shortcut_key(val="A"),
                id="add",
            ),
            self.create_link(
                "browse",
                tr.qt_misc_browse(),
                self._browseLinkHandler,
                tip=tr.actions_shortcut_key(val="B"),
                id="browse",
            ),
            self.create_link(
                "stats",
                tr.qt_misc_stats(),
                self._statsLinkHandler,
                tip=tr.actions_shortcut_key(val="T"),
                id="stats",
            ),
        ]

        links.append(self._create_sync_link())

        gui_hooks.top_toolbar_did_init_links(links, self)

        return "\n".join(links)