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
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())
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())
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())
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
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
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()
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()
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)
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)
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
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)