From efa1b54c2e8e8827a471da8c8c2f0cf404140332 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Thu, 25 Oct 2012 21:17:10 +0900 Subject: [PATCH] 'add field' button --- aqt/clayout.py | 33 +++++++++++- designer/addfield.ui | 124 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 designer/addfield.ui diff --git a/aqt/clayout.py b/aqt/clayout.py index 16b6bc64e..a2ca6dc13 100644 --- a/aqt/clayout.py +++ b/aqt/clayout.py @@ -150,8 +150,12 @@ Please create a new card type first.""")) l.addWidget(help) c(help, SIGNAL("clicked()"), self.onHelp) l.addStretch() + addField = QPushButton(_("Add Field")) + addField.setAutoDefault(False) + l.addWidget(addField) + c(addField, SIGNAL("clicked()"), self.onAddField) if self.model['type'] != MODEL_CLOZE: - flip = QPushButton(_("Flip Front/Back")) + flip = QPushButton(_("Flip")) flip.setAutoDefault(False) l.addWidget(flip) c(flip, SIGNAL("clicked()"), self.onFlip) @@ -369,6 +373,33 @@ Enter deck to place new %s cards in, or leave blank:""") % else: t['did'] = self.col.decks.id(te.text()) + def onAddField(self): + obj = self.mw.app.focusWidget() + if obj not in (self.tab['tform'].front, self.tab['tform'].back): + return showInfo(_("Please click in the front or back template first.")) + diag = QDialog(self) + form = aqt.forms.addfield.Ui_Dialog() + form.setupUi(diag) + fields = [f['name'] for f in self.model['flds']] + form.fields.addItems(fields) + form.font.setCurrentFont(QFont("Arial")) + form.size.setValue(20) + diag.show() + form.fields.showPopup() + if not diag.exec_(): + return + self._addField(obj, + fields[form.fields.currentIndex()], + form.font.currentFont().family(), + form.size.value()) + + def _addField(self, widg, field, font, size): + t = widg.toPlainText() + t +="\n
{{%s}}
\n" % ( + font, size, field) + widg.setPlainText(t) + self.saveCard() + # Closing & Help ###################################################################### diff --git a/designer/addfield.ui b/designer/addfield.ui new file mode 100644 index 000000000..e5016c9ba --- /dev/null +++ b/designer/addfield.ui @@ -0,0 +1,124 @@ + + + Dialog + + + + 0 + 0 + 434 + 122 + + + + Add Field + + + + + + + + 6 + + + 200 + + + + + + + Field: + + + + + + + Font: + + + + + + + + + + Size: + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + Qt::Vertical + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + fields + font + size + buttonBox + + + + + buttonBox + accepted() + Dialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + Dialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + +