diff --git a/ankiqt/ui/modelproperties.py b/ankiqt/ui/modelproperties.py
index cd8407f21..399428395 100644
--- a/ankiqt/ui/modelproperties.py
+++ b/ankiqt/ui/modelproperties.py
@@ -23,6 +23,7 @@ class ModelProperties(QDialog):
self.deck = deck
self.origModTime = self.deck.modified
self.m = model
+ self.needRebuild = False
self.onFinish = onFinish
self.dialog = ankiqt.forms.modelproperties.Ui_ModelProperties()
self.dialog.setupUi(self)
@@ -340,7 +341,7 @@ order by n""", id=card.id)
s = unicode(self.dialog.cardAnswer.toPlainText())
s = s.replace("
\n", "
")
changed2 = self.updateField(card, 'aformat', s)
- changed = changed or changed2
+ self.needRebuild = self.needRebuild or changed or changed2
self.updateField(card, 'questionInAnswer', self.dialog.questionInAnswer.isChecked())
self.updateField(card, 'allowEmptyAnswer', self.dialog.allowEmptyAnswer.isChecked())
idx = self.dialog.typeAnswer.currentIndex()
@@ -348,9 +349,6 @@ order by n""", id=card.id)
self.updateField(card, 'typeAnswer', u"")
else:
self.updateField(card, 'typeAnswer', self.fieldNames[idx-1])
- if changed:
- # need to generate all question/answers for this card
- self.deck.updateCardsFromModel(self.m)
self.ignoreCardUpdate = True
self.updateCards()
self.ignoreCardUpdate = False
@@ -491,8 +489,15 @@ order by n""", id=card.id)
self.m.setModified()
self.deck.setModified()
# if changed, reset deck
+ reset = False
if self.origModTime != self.deck.modified:
self.deck.updateTagsForModel(self.m)
+ reset = True
+ if self.needRebuild:
+ # need to generate q/a templates
+ self.deck.updateCardsFromModel(self.m)
+ reset = True
+ if reset:
ankiqt.mw.reset()
if self.onFinish:
self.onFinish()