use a separate hook for current model changes so we don't have to rebuild

This commit is contained in:
Damien Elmes 2011-04-16 06:01:11 +09:00
parent 8ae7a8213d
commit 242b4be2f4
3 changed files with 6 additions and 2 deletions

View file

@ -34,6 +34,7 @@ class AddCards(QDialog):
self.forceClose = False
restoreGeom(self, "add")
addHook('reset', self.onReset)
addHook('currentModelChanged', self.onReset)
self.mw.requireReset(modal=True)
self.open()
self.setupNewFact()
@ -169,6 +170,7 @@ question or answer on all cards."""), help="AddItems")
if not self.canClose():
return
removeHook('reset', self.onReset)
removeHook('currentModelChanged', self.onReset)
clearAudioQueue()
self.removeTempFact(self.editor.fact)
self.editor.setFact(None)

View file

@ -1162,6 +1162,7 @@ class ChangeModel(QDialog):
self.setup()
restoreGeom(self, "changeModel")
addHook("reset", self.onReset)
addHook("currentModelChanged", self.onReset)
self.exec_()
def setup(self):
@ -1278,6 +1279,7 @@ class ChangeModel(QDialog):
def cleanup(self):
removeHook("reset", self.onReset)
removeHook("currentModelChanged", self.onReset)
self.oldCurrentModel = self.browser.deck.conf['currentModelId']
self.modelChooser.cleanup()
saveGeom(self, "changeModel")

View file

@ -6,7 +6,7 @@ from PyQt4.QtCore import *
from operator import attrgetter
from anki import stdmodels
from anki.lang import ngettext
from anki.hooks import addHook, removeHook
from anki.hooks import addHook, removeHook, runHook
from aqt.utils import isMac
class ModelChooser(QHBoxLayout):
@ -86,7 +86,7 @@ class ModelChooser(QHBoxLayout):
self.deck.conf['currentModelId'] = model.id
self.updateTemplates()
self._ignoreReset = True
self.mw.reset()
runHook("currentModelChanged")
self._ignoreReset = False
def updateModels(self):