diff --git a/aqt/browser.py b/aqt/browser.py
index 9f0f7188a..dabe6a6ad 100644
--- a/aqt/browser.py
+++ b/aqt/browser.py
@@ -208,7 +208,7 @@ class DataModel(QAbstractTableModel):
elif type == "template":
t = c.template()['name']
if c.model()['type'] == MODEL_CLOZE:
- t += " (%d)" % (c.ord+1)
+ t += " %d" % (c.ord+1)
return t
elif type == "cardDue":
return self.nextDue(c, index)
diff --git a/aqt/clayout.py b/aqt/clayout.py
index 19c6a0f1b..1e9ccec33 100644
--- a/aqt/clayout.py
+++ b/aqt/clayout.py
@@ -28,6 +28,12 @@ class CardLayout(QDialog):
self.addMode = addMode
if addMode:
# save it to DB temporarily
+ self.emptyFields = []
+ for name, val in note.items():
+ if val.strip():
+ continue
+ self.emptyFields.append(name)
+ note[name] = "(%s)" % name
note.flush()
self.setupTabs()
self.setupButtons()
@@ -133,6 +139,11 @@ Please create a new card type first."""))
l.addWidget(help)
c(help, SIGNAL("clicked()"), self.onHelp)
l.addStretch()
+ if self.model['type'] != MODEL_CLOZE:
+ flip = QPushButton(_("Flip Front/Back"))
+ flip.setAutoDefault(False)
+ l.addWidget(flip)
+ c(flip, SIGNAL("clicked()"), self.onFlip)
rename = QPushButton(_("Rename..."))
rename.setAutoDefault(False)
l.addWidget(rename)
@@ -249,15 +260,41 @@ Please create a new card type first."""))
self.ord = pos
self.redraw()
+ def _newCardName(self):
+ n = len(self.cards) + 1
+ while 1:
+ name = _("Card %d") % n
+ if name not in [c.template()['name'] for c in self.cards]:
+ break
+ n += 1
+ return name
+
def onAddCard(self):
- name = getOnlyText(_("Name:"))
- if not name:
- return
- if name in [c.template()['name'] for c in self.cards]:
- return showWarning(_("That name is already used."))
+ name = self._newCardName()
t = self.mm.newTemplate(name)
+ old = self.card.template()
+ t['qfmt'] = "%s
\n%s" % (_("Edit to customize"), old['qfmt'])
+ t['afmt'] = old['afmt']
self.mm.addTemplate(self.model, t)
self.redraw()
+ self.selectCard(t['ord'])
+
+ def onFlip(self):
+ old = self.card.template()
+ self._flipQA(old, old)
+ self.redraw()
+
+ def _flipQA(self, src, dst):
+ m = re.match("(?s)(.+)