Пример #1
0
def getTag(parent, deck, question, tags="user", **kwargs):
    from aqt.tagedit import TagEdit
    te = TagEdit(parent)
    te.setCol(deck)
    ret = getText(question, parent, edit=te, geomKey='getTag', **kwargs)
    te.hideCompleter()
    return ret
Пример #2
0
    def onTargetDeck(self):
        from aqt.tagedit import TagEdit
        t = self.card.template()
        d = QDialog(self)
        d.setWindowTitle("Anki")
        d.setMinimumWidth(400)
        l = QVBoxLayout()
        lab = QLabel(
            _("""\
Enter deck to place new %s cards in, or leave blank:""") %
            self.card.template()['name'])
        lab.setWordWrap(True)
        l.addWidget(lab)
        te = TagEdit(d, type=1)
        te.setCol(self.col)
        l.addWidget(te)
        if t['did']:
            te.setText(self.col.decks.get(t['did'])['name'])
            te.selectAll()
        bb = QDialogButtonBox(QDialogButtonBox.Close)
        self.connect(bb, SIGNAL("rejected()"), d, SLOT("close()"))
        l.addWidget(bb)
        d.setLayout(l)
        d.exec_()
        if not te.text().strip():
            t['did'] = None
        else:
            t['did'] = self.col.decks.id(te.text())
Пример #3
0
    def onTargetDeck(self):
        from aqt.tagedit import TagEdit

        t = self.current_template()
        d = QDialog(self)
        d.setWindowTitle("Anki")
        d.setMinimumWidth(400)
        l = QVBoxLayout()
        lab = QLabel(
            _("""\
Enter deck to place new %s cards in, or leave blank:""") %
            self.current_template()["name"])
        lab.setWordWrap(True)
        l.addWidget(lab)
        te = TagEdit(d, type=1)
        te.setCol(self.col)
        l.addWidget(te)
        if t["did"]:
            te.setText(self.col.decks.get(t["did"])["name"])
            te.selectAll()
        bb = QDialogButtonBox(QDialogButtonBox.Close)
        qconnect(bb.rejected, d.close)
        l.addWidget(bb)
        d.setLayout(l)
        d.exec_()
        self.change_tracker.mark_basic()
        if not te.text().strip():
            t["did"] = None
        else:
            t["did"] = self.col.decks.id(te.text())
Пример #4
0
    def onTargetDeck(self) -> None:
        from aqt.tagedit import TagEdit

        t = self.current_template()
        d = QDialog(self)
        d.setWindowTitle("Anki")
        disable_help_button(d)
        d.setMinimumWidth(400)
        l = QVBoxLayout()
        lab = QLabel(
            tr(TR.CARD_TEMPLATES_ENTER_DECK_TO_PLACE_NEW, val="%s") %
            self.current_template()["name"])
        lab.setWordWrap(True)
        l.addWidget(lab)
        te = TagEdit(d, type=1)
        te.setCol(self.col)
        l.addWidget(te)
        if t["did"]:
            te.setText(self.col.decks.get(t["did"])["name"])
            te.selectAll()
        bb = QDialogButtonBox(QDialogButtonBox.Close)
        qconnect(bb.rejected, d.close)
        l.addWidget(bb)
        d.setLayout(l)
        d.exec_()
        self.change_tracker.mark_basic()
        if not te.text().strip():
            t["did"] = None
        else:
            t["did"] = self.col.decks.id(te.text())
Пример #5
0
def myGetField(parent, question, last_val, **kwargs):
    te = TagEdit(parent, type=1)
    te.completer.setCompletionMode(QCompleter.UnfilteredPopupCompletion)
    te.strings = last_val
    te.showCompleter = lambda te=te: showCompleter(te)
    ret = getText(question, parent, edit=te, **kwargs)
    te.hideCompleter()
    return ret
Пример #6
0
def getTag(parent: QWidget, deck: Collection, question: str,
           **kwargs: Any) -> tuple[str, int]:
    from aqt.tagedit import TagEdit

    te = TagEdit(parent)
    te.setCol(deck)
    ret = getText(question, parent, edit=te, geomKey="getTag", **kwargs)
    te.hideCompleter()
    return ret
Пример #7
0
 def setDeck(self, initial=False):
     d = QDialog(self)
     d.setWindowModality(Qt.WindowModal)
     frm = aqt.forms.setgroup.Ui_Dialog()
     frm.setupUi(d)
     from aqt.tagedit import TagEdit
     te = TagEdit(d, type=1)
     frm.groupBox.layout().insertWidget(0, te)
     te.setCol(self.col)
     d.connect(d, SIGNAL("accepted()"), lambda: self._onSetDeck(frm, te))
     self.setTabOrder(frm.setCur, te)
     self.setTabOrder(te, frm.setInitial)
     if initial:
         frm.setInitial.setChecked(True)
     d.show()
     te.setFocus()
Пример #8
0
def replace_addTags(browser, tags=None, label=None, *args, **kwargs):
    nids = browser.selectedNotes()
    if not nids:
        showInfo("No card selected")
        return
    if label is None:
        label = _("Add Tags")
    if not tags:
        d = QDialog(browser)
        d.setObjectName("DeleteTags")
        d.setWindowTitle(label)
        d.resize(360, 340)
        tagTree = TagTreeWidget(browser, d)
        tagTree.addTags(nids)
        line = TagEdit(d)
        line.setCol(browser.col)
        layout = QVBoxLayout(d)
        layout.setContentsMargins(0, 0, 0, 0)
        layout.addWidget(
            QLabel(
                _("""\
Select tags and close dialog: \
Yellow is for existing tags. \
Green items will be added.""")))
        layout.addWidget(tagTree)
        layout.addWidget(QLabel(_("Add Extra Tags:")))
        layout.addWidget(line)
        d.exec_()

        txt = line.text()
        tags = [txt] if txt else []
        for k, v in tagTree.node.items():
            if v: tags.append(k)
        tags = " ".join(tags)

    if tags:
        browser.mw.checkpoint(label)
        browser.model.beginReset()
        browser.col.tags.bulkAdd(nids, tags)
        browser.model.endReset()
        browser.mw.requireReset()
Пример #9
0
def getTag(parent, deck, question, tags="user", **kwargs):
    from aqt.tagedit import TagEdit
    te = TagEdit(parent)
    te.setCol(deck)
    return getText(question, parent, edit=te, **kwargs)
Пример #10
0
    def setupUi(self, ImportDialog):
        ImportDialog.setObjectName("ImportDialog")
        ImportDialog.resize(553, 466)
        self.vboxlayout = QtWidgets.QVBoxLayout(ImportDialog)
        self.vboxlayout.setObjectName("vboxlayout")
        self.groupBox = QtWidgets.QGroupBox(ImportDialog)
        self.groupBox.setObjectName("groupBox")
        self.toplayout = QtWidgets.QVBoxLayout(self.groupBox)
        self.toplayout.setObjectName("toplayout")
        self.gridLayout_2 = QtWidgets.QGridLayout()
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.deckArea = QtWidgets.QWidget(self.groupBox)
        self.deckArea.setObjectName("deckArea")
        self.gridLayout_2.addWidget(self.deckArea, 0, 3, 1, 1)
        self.modelArea = QtWidgets.QWidget(self.groupBox)
        self.modelArea.setObjectName("modelArea")
        self.gridLayout_2.addWidget(self.modelArea, 0, 1, 1, 1)
        self.label = QtWidgets.QLabel(self.groupBox)
        self.label.setObjectName("label")
        self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1)
        self.label_2 = QtWidgets.QLabel(self.groupBox)
        self.label_2.setObjectName("label_2")
        self.gridLayout_2.addWidget(self.label_2, 0, 2, 1, 1)
        self.toplayout.addLayout(self.gridLayout_2)
        self.autoDetect = QtWidgets.QPushButton(self.groupBox)
        self.autoDetect.setText("")
        self.autoDetect.setObjectName("autoDetect")
        self.toplayout.addWidget(self.autoDetect)
        self.importMode = QtWidgets.QComboBox(self.groupBox)
        self.importMode.setObjectName("importMode")
        self.importMode.addItem("")
        self.importMode.addItem("")
        self.importMode.addItem("")

        self.toplayout.addWidget(self.importMode)
        self.allowHTML = QtWidgets.QCheckBox(self.groupBox)
        self.allowHTML.setObjectName("allowHTML")
        self.toplayout.addWidget(self.allowHTML)

        self.tagModifiedLayout = QtWidgets.QHBoxLayout(self.groupBox)
        self.tagModifiedLabel = QtWidgets.QLabel(self.groupBox)
        self.tagModifiedLabel.setObjectName("tagModifiedLabel")
        self.tagModifiedLayout.addWidget(self.tagModifiedLabel)
        self.tagModified = TagEdit(self.groupBox)
        self.tagModified.setObjectName("tagModified")
        self.tagModifiedLayout.addWidget(self.tagModified)
        self.toplayout.addLayout(self.tagModifiedLayout)
        self.vboxlayout.addWidget(self.groupBox)

        self.mappingGroup = QtWidgets.QGroupBox(ImportDialog)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.mappingGroup.sizePolicy().hasHeightForWidth())
        self.mappingGroup.setSizePolicy(sizePolicy)
        self.mappingGroup.setObjectName("mappingGroup")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.mappingGroup)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.mappingArea = QtWidgets.QScrollArea(self.mappingGroup)
        sizePolicy = QtWidgets.QSizePolicy(
            QtWidgets.QSizePolicy.MinimumExpanding,
            QtWidgets.QSizePolicy.MinimumExpanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.mappingArea.sizePolicy().hasHeightForWidth())
        self.mappingArea.setSizePolicy(sizePolicy)
        self.mappingArea.setMinimumSize(QtCore.QSize(400, 150))
        self.mappingArea.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.mappingArea.setWidgetResizable(True)
        self.mappingArea.setObjectName("mappingArea")
        self.scrollAreaWidgetContents = QtWidgets.QWidget()
        self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 529, 251))
        self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
        self.mappingArea.setWidget(self.scrollAreaWidgetContents)
        self.gridLayout.addWidget(self.mappingArea, 0, 0, 1, 1)
        self.verticalLayout_2.addLayout(self.gridLayout)
        self.vboxlayout.addWidget(self.mappingGroup)
        self.buttonBox = QtWidgets.QDialogButtonBox(ImportDialog)
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Close)
        self.buttonBox.setObjectName("buttonBox")
        self.vboxlayout.addWidget(self.buttonBox)

        self.retranslateUi(ImportDialog)
        self.buttonBox.accepted.connect(ImportDialog.accept)
        self.buttonBox.rejected.connect(ImportDialog.reject)
        QtCore.QMetaObject.connectSlotsByName(ImportDialog)
Пример #11
0
    def _getQuickKeysTab(self):
        destDeckLabel = QLabel('Destination Deck')
        noteTypeLabel = QLabel('Note Type')
        textFieldLabel = QLabel('Paste Text to Field')
        sourceFieldLabel = QLabel('Paste Source to Field')
        keyComboLabel = QLabel('Key Combination')

        self.quickKeysComboBox = QComboBox()
        self.quickKeysComboBox.addItem('')
        self.quickKeysComboBox.addItems(self.settings['quickKeys'].keys())
        self.quickKeysComboBox.currentIndexChanged.connect(
            self._updateQuickKeysTab)

        self.destDeckComboBox = QComboBox()
        self.destDeckComboBox.setFixedWidth(400)
        self.noteTypeComboBox = QComboBox()
        self.textFieldComboBox = QComboBox()
        self.textFieldComboBox.currentIndexChanged.connect(
            self._updateSourceFieldComboBox)
        self.sourceFieldComboBox = QComboBox()
        self.quickKeyEditExtractCheckBox = QCheckBox('Edit Extracted Note')
        self.quickKeyEditSourceCheckBox = QCheckBox('Edit Source Note')
        self.quickKeyPlainTextCheckBox = QCheckBox('Extract as Plain Text')

        self.ctrlKeyCheckBox = QCheckBox('Ctrl')
        self.altKeyCheckBox = QCheckBox('Alt')
        self.shiftKeyCheckBox = QCheckBox('Shift')
        self.regularKeyComboBox = QComboBox()
        self.regularKeyComboBox.addItem('')
        self.regularKeyComboBox.addItems(
            list('ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789'))

        destDeckLayout = QHBoxLayout()
        destDeckLayout.addWidget(destDeckLabel)
        destDeckLayout.addWidget(self.destDeckComboBox)

        noteTypeLayout = QHBoxLayout()
        noteTypeLayout.addWidget(noteTypeLabel)
        noteTypeLayout.addWidget(self.noteTypeComboBox)

        textFieldLayout = QHBoxLayout()
        textFieldLayout.addWidget(textFieldLabel)
        textFieldLayout.addWidget(self.textFieldComboBox)

        sourceFieldLayout = QHBoxLayout()
        sourceFieldLayout.addWidget(sourceFieldLabel)
        sourceFieldLayout.addWidget(self.sourceFieldComboBox)

        keyComboLayout = QHBoxLayout()
        keyComboLayout.addWidget(keyComboLabel)
        keyComboLayout.addStretch()
        keyComboLayout.addWidget(self.ctrlKeyCheckBox)
        keyComboLayout.addWidget(self.altKeyCheckBox)
        keyComboLayout.addWidget(self.shiftKeyCheckBox)
        keyComboLayout.addWidget(self.regularKeyComboBox)

        deckNames = sorted([d['name'] for d in mw.col.decks.all()])
        self.destDeckComboBox.addItem('')
        self.destDeckComboBox.addItems(deckNames)

        modelNames = sorted([m['name'] for m in mw.col.models.all()])
        self.noteTypeComboBox.addItem('')
        self.noteTypeComboBox.addItems(modelNames)
        self.noteTypeComboBox.currentIndexChanged.connect(
            self._updateFieldLists)

        newButton = QPushButton('New')
        newButton.clicked.connect(self._clearQuickKeysTab)
        setButton = QPushButton('Set')
        setButton.clicked.connect(self._setQuickKey)
        unsetButton = QPushButton('Unset')
        unsetButton.clicked.connect(self._unsetQuickKey)

        tagsLabel = QLabel('Tags')
        self.tagsEditBox = TagEdit(mw)
        self.tagsEditBox.setCol(mw.col)
        tagsLayout = QHBoxLayout()
        tagsLayout.addWidget(tagsLabel)
        tagsLayout.addWidget(self.tagsEditBox)

        buttonLayout = QHBoxLayout()
        buttonLayout.addStretch()
        buttonLayout.addWidget(newButton)
        buttonLayout.addWidget(setButton)
        buttonLayout.addWidget(unsetButton)

        layout = QVBoxLayout()
        layout.addWidget(self.quickKeysComboBox)
        layout.addLayout(destDeckLayout)
        layout.addLayout(noteTypeLayout)
        layout.addLayout(textFieldLayout)
        layout.addLayout(sourceFieldLayout)
        layout.addLayout(keyComboLayout)
        layout.addWidget(self.quickKeyEditExtractCheckBox)
        layout.addWidget(self.quickKeyEditSourceCheckBox)
        layout.addWidget(self.quickKeyPlainTextCheckBox)
        layout.addLayout(tagsLayout)
        layout.addLayout(buttonLayout)

        tab = QWidget()
        tab.setLayout(layout)

        return tab
Пример #12
0
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(348, 230)
        self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
        self.verticalLayout.setObjectName("verticalLayout")
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.input_replace = QtWidgets.QComboBox(Dialog)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(9)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.input_replace.sizePolicy().hasHeightForWidth())
        self.input_replace.setSizePolicy(sizePolicy)
        self.input_replace.setEditable(True)
        self.input_replace.setObjectName("input_replace")
        self.gridLayout.addWidget(self.input_replace, 1, 1, 1, 1)
        self.label_replace = QtWidgets.QLabel(Dialog)
        font = QtGui.QFont()
        font.setBold(False)
        font.setWeight(50)
        font.setKerning(True)
        self.label_replace.setFont(font)
        self.label_replace.setObjectName("label_replace")
        self.gridLayout.addWidget(self.label_replace, 1, 0, 1, 1)
        self.label_find = QtWidgets.QLabel(Dialog)
        font = QtGui.QFont()
        font.setBold(False)
        font.setWeight(50)
        self.label_find.setFont(font)
        self.label_find.setObjectName("label_find")
        self.gridLayout.addWidget(self.label_find, 0, 0, 1, 1)
        self.is_case = QtWidgets.QCheckBox(Dialog)
        self.is_case.setObjectName("is_case")
        self.gridLayout.addWidget(self.is_case, 2, 1, 1, 1)
        self.input_find = QtWidgets.QComboBox(Dialog)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(9)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.input_find.sizePolicy().hasHeightForWidth())
        self.input_find.setSizePolicy(sizePolicy)
        self.input_find.setEditable(True)
        self.input_find.setObjectName("input_find")
        self.gridLayout.addWidget(self.input_find, 0, 1, 1, 1)
        self.verticalLayout.addLayout(self.gridLayout)
        spacerItem = QtWidgets.QSpacerItem(20, 40,
                                           QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout.addItem(spacerItem)
        self.gridLayout_2 = QtWidgets.QGridLayout()
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.output_tags = QtWidgets.QLineEdit(Dialog)
        self.output_tags.setFocusPolicy(QtCore.Qt.NoFocus)
        self.output_tags.setReadOnly(True)
        self.output_tags.setObjectName("output_tags")
        self.gridLayout_2.addWidget(self.output_tags, 2, 1, 1, 1)
        self.label_old = QtWidgets.QLabel(Dialog)
        self.label_old.setEnabled(True)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_old.sizePolicy().hasHeightForWidth())
        self.label_old.setSizePolicy(sizePolicy)
        self.label_old.setMinimumSize(QtCore.QSize(65, 0))
        self.label_old.setObjectName("label_old")
        self.gridLayout_2.addWidget(self.label_old, 1, 0, 1, 1)
        self.label_preview = QtWidgets.QLabel(Dialog)
        font = QtGui.QFont()
        font.setBold(True)
        font.setWeight(75)
        self.label_preview.setFont(font)
        self.label_preview.setAlignment(QtCore.Qt.AlignCenter)
        self.label_preview.setObjectName("label_preview")
        self.gridLayout_2.addWidget(self.label_preview, 0, 1, 1, 1)
        self.label_new = QtWidgets.QLabel(Dialog)
        self.label_new.setObjectName("label_new")
        self.gridLayout_2.addWidget(self.label_new, 2, 0, 1, 1)
        self.input_tags = TagEdit(Dialog)
        self.input_tags.setObjectName("input_tags")
        self.gridLayout_2.addWidget(self.input_tags, 1, 1, 1, 1)
        self.verticalLayout.addLayout(self.gridLayout_2)
        spacerItem1 = QtWidgets.QSpacerItem(20, 40,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout.addItem(spacerItem1)
        self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel
                                          | QtWidgets.QDialogButtonBox.Help
                                          | QtWidgets.QDialogButtonBox.Ok)
        self.buttonBox.setObjectName("buttonBox")
        self.verticalLayout.addWidget(self.buttonBox)

        self.retranslateUi(Dialog)
        self.buttonBox.accepted.connect(Dialog.accept)
        self.buttonBox.rejected.connect(Dialog.reject)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
        Dialog.setTabOrder(self.input_find, self.input_replace)
        Dialog.setTabOrder(self.input_replace, self.is_case)
        Dialog.setTabOrder(self.is_case, self.input_tags)