minimum necessary for the (empty) add cards dialog to open

This commit is contained in:
Damien Elmes 2011-03-31 14:55:57 +09:00
parent 5334fc0978
commit 37b7bb00d6
4 changed files with 15 additions and 13 deletions

View file

@ -34,8 +34,8 @@ class DialogManager(object):
def __init__(self): def __init__(self):
from aqt import addcards, cardlist from aqt import addcards, cardlist
self._dialogs = { self._dialogs = {
"AddCards": (addcards.AddCards, None), "AddCards": [addcards.AddCards, None],
"CardList": (cardlist.EditDeck, None), "CardList": [cardlist.EditDeck, None],
} }
def open(self, name, *args): def open(self, name, *args):

View file

@ -12,6 +12,7 @@ from anki.utils import stripHTML, parseTags
from aqt.utils import saveGeom, restoreGeom, saveSplitter, restoreSplitter from aqt.utils import saveGeom, restoreGeom, saveSplitter, restoreSplitter
from anki.sound import clearAudioQueue from anki.sound import clearAudioQueue
from anki.hooks import addHook, removeHook from anki.hooks import addHook, removeHook
import aqt.facteditor, aqt.modelchooser
class FocusButton(QPushButton): class FocusButton(QPushButton):
def focusInEvent(self, evt): def focusInEvent(self, evt):
@ -25,7 +26,6 @@ class AddCards(QDialog):
windParent = None windParent = None
QDialog.__init__(self, windParent, Qt.Window) QDialog.__init__(self, windParent, Qt.Window)
self.parent = parent self.parent = parent
ui.utils.applyStyles(self)
self.config = parent.config self.config = parent.config
self.dialog = aqt.forms.addcards.Ui_AddCards() self.dialog = aqt.forms.addcards.Ui_AddCards()
self.dialog.setupUi(self) self.dialog.setupUi(self)
@ -42,17 +42,17 @@ class AddCards(QDialog):
self.dialog.splitter.setChildrenCollapsible(False) self.dialog.splitter.setChildrenCollapsible(False)
self.show() self.show()
addHook('guiReset', self.modelChanged) addHook('guiReset', self.modelChanged)
ui.dialogs.open("AddCards", self)
def setupEditor(self): def setupEditor(self):
self.editor = ui.facteditor.FactEditor(self, self.editor = aqt.facteditor.FactEditor(self,
self.dialog.fieldsArea, self.dialog.fieldsArea,
self.parent.deck) self.parent.deck)
self.editor.addMode = True self.editor.addMode = True
self.editor.resetOnEdit = False self.editor.resetOnEdit = False
def addChooser(self): def addChooser(self):
self.modelChooser = ui.modelchooser.ModelChooser(self, return
self.modelChooser = aqt.modelchooser.ModelChooser(self,
self.parent, self.parent,
self.parent.deck, self.parent.deck,
self.modelChanged) self.modelChanged)
@ -100,6 +100,7 @@ class AddCards(QDialog):
browser.onFact() browser.onFact()
def modelChanged(self, model=None): def modelChanged(self, model=None):
return
oldFact = self.editor.fact oldFact = self.editor.fact
# create a new fact # create a new fact
fact = self.parent.deck.newFact() fact = self.parent.deck.newFact()
@ -114,7 +115,7 @@ class AddCards(QDialog):
n += 1 n += 1
fact.tags = oldFact.tags fact.tags = oldFact.tags
else: else:
fact.tags = self.parent.deck.lastTags fact.tags = "last" #self.parent.deck.lastTags
# set the new fact # set the new fact
self.editor.setFact(fact, check=True, forceRedraw=True) self.editor.setFact(fact, check=True, forceRedraw=True)
self.setTabOrder(self.editor.tags, self.addButton) self.setTabOrder(self.editor.tags, self.addButton)

View file

@ -41,7 +41,7 @@ class FactEditor(object):
self.fact = None self.fact = None
self.fontChanged = False self.fontChanged = False
self.addMode = False self.addMode = False
self.setupFields() #self.setupFields()
self.onChange = None self.onChange = None
self.onFactValid = None self.onFactValid = None
self.onFactInvalid = None self.onFactInvalid = None
@ -62,6 +62,7 @@ class FactEditor(object):
def setFact(self, fact, noFocus=False, check=False, scroll=False, def setFact(self, fact, noFocus=False, check=False, scroll=False,
forceRedraw=False): forceRedraw=False):
"Make FACT the current fact." "Make FACT the current fact."
return
self.fact = fact self.fact = fact
self.factState = None self.factState = None
if self.changeTimer: if self.changeTimer:
@ -419,9 +420,10 @@ class FactEditor(object):
self.parent.setTabOrder(last, self.tags) self.parent.setTabOrder(last, self.tags)
def needToRedraw(self): def needToRedraw(self):
return True
if self.fact is None: if self.fact is None:
return True return True
if len(self.fact.fields) != len(self.fields): if len(self.fact._fields) != len(self.fields):
return True return True
for field in self.fact.fields: for field in self.fact.fields:
if field.name not in self.fields: if field.name not in self.fields:

View file

@ -7,7 +7,6 @@ from operator import attrgetter
import anki, sys import anki, sys
from anki import stdmodels from anki import stdmodels
from anki.models import * from anki.models import *
from aqt import ui
import aqt.forms import aqt.forms
from anki.hooks import addHook, removeHook from anki.hooks import addHook, removeHook
@ -70,7 +69,7 @@ class ModelChooser(QHBoxLayout):
def onEdit(self): def onEdit(self):
ui.deckproperties.DeckProperties(self.parent, self.deck, ui.deckproperties.DeckProperties(self.parent, self.deck,
onFinish=self.onModelEdited) onFinish=self.onModelEdited)
def onModelEdited(self): def onModelEdited(self):
# hack # hack
@ -93,10 +92,10 @@ class ModelChooser(QHBoxLayout):
def drawModels(self): def drawModels(self):
self.models.clear() self.models.clear()
self._models = sorted(self.deck.models, key=attrgetter("name")) self._models = sorted(self.deck.models().values(), key=attrgetter("name"))
self.models.addItems(QStringList( self.models.addItems(QStringList(
[m.name for m in self._models])) [m.name for m in self._models]))
idx = self._models.index(self.deck.currentModel) idx = self._models.index(self.deck.currentModel())
self.models.setCurrentIndex(idx) self.models.setCurrentIndex(idx)
def drawCardModels(self): def drawCardModels(self):