fields area half ported

This commit is contained in:
Damien Elmes 2011-03-31 17:02:12 +09:00
parent 96e3cf30aa
commit d0a9ec96c1

View file

@ -6,8 +6,6 @@ from PyQt4.QtCore import *
from PyQt4.QtWebKit import QWebPage, QWebView from PyQt4.QtWebKit import QWebPage, QWebView
import re import re
from anki.consts import * from anki.consts import *
#from anki.models import *
#from anki.facts import *
import aqt import aqt
from anki.sound import playFromText, clearAudioQueue from anki.sound import playFromText, clearAudioQueue
from aqt.utils import saveGeom, restoreGeom, getBase, mungeQA, \ from aqt.utils import saveGeom, restoreGeom, getBase, mungeQA, \
@ -232,6 +230,9 @@ class CardLayout(QDialog):
return "" return ""
def reject(self): def reject(self):
self.model.flush()
saveGeom(self, "CardLayout")
saveSplitter(self.form.splitter, "clayout")
return QDialog.reject(self) return QDialog.reject(self)
self.fact.model.setModified() self.fact.model.setModified()
@ -254,8 +255,6 @@ class CardLayout(QDialog):
if reset: if reset:
self.mw.reset() self.mw.reset()
self.deck.finishProgress() self.deck.finishProgress()
saveGeom(self, "CardLayout")
saveSplitter(self.form.splitter, "clayout")
QDialog.reject(self) QDialog.reject(self)
def onHelp(self): def onHelp(self):
@ -332,38 +331,29 @@ class CardLayout(QDialog):
if self.updatingFields: if self.updatingFields:
return return
self.updatingFields = True self.updatingFields = True
field = self.field fld = self.field
name = unicode(self.form.fieldName.text()) or _("Field") # get name; we'll handle it last
if field.name != name: name = unicode(self.form.fieldName.text())
oldVal = self.fact[field.name] if not name:
self.deck.renameFieldModel(self.model, field, name) return
# the card models will have been updated fld['uniq'] = self.form.fieldUnique.isChecked()
self.readCard() fld['req'] = self.form.fieldRequired.isChecked()
# for add card case fld['font'] = unicode(
self.updateFact() self.form.fontFamily.currentFont().family())
self.fact[name] = oldVal fld['qsize'] = self.form.fontSize.value()
field.unique = self.form.fieldUnique.isChecked() fld['esize'] = self.form.fontSizeEdit.value()
field.required = self.form.fieldRequired.isChecked() fld['qcol'] = str(
field.numeric = self.form.numeric.isChecked()
field.quizFontFamily = toCanonicalFont(unicode(
self.form.fontFamily.currentFont().family()))
field.quizFontSize = int(self.form.fontSize.value())
field.editFontSize = int(self.form.fontSizeEdit.value())
field.quizFontColour = str(
self.form.fontColour.palette().window().color().name()) self.form.fontColour.palette().window().color().name())
if self.form.rtl.isChecked(): fld['rtl'] = self.form.rtl.isChecked()
field.features = u"rtl" fld['pre'] = self.form.preserveWhitespace.isChecked()
else: self.updatingFields = False
field.features = u"" if fld['name'] != name:
if self.form.preserveWhitespace.isChecked(): self.model.renameField(fld, name)
field.editFontFamily = u"preserve" # as the field name has changed, we have to regenerate cards
else: self.cards = self.deck.previewCards(self.fact, self.type)
field.editFontFamily = u"" self.cardChanged(0)
field.model.setModified()
self.deck.flushMod()
self.renderPreview() self.renderPreview()
self.fillFieldList() self.fillFieldList()
self.updatingFields = False
def fillFieldList(self, row = None): def fillFieldList(self, row = None):
oldRow = self.form.fieldList.currentRow() oldRow = self.form.fieldList.currentRow()