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

View file

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

View file

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