change model, description editing

This commit is contained in:
Damien Elmes 2011-12-15 14:33:40 +09:00
parent 1f3f948ad1
commit 494b7310f0
3 changed files with 35 additions and 10 deletions

View file

@ -840,6 +840,9 @@ where id in %s""" % ids2str(sf))
###################################################################### ######################################################################
def onChangeModel(self): def onChangeModel(self):
return showInfo("not yet implemented")
# given implicit card generation now, we need to fix model changing:
# need to generate any unmapped cards
nids = self.oneModelNotes() nids = self.oneModelNotes()
if nids: if nids:
ChangeModel(self, nids) ChangeModel(self, nids)
@ -1264,7 +1267,7 @@ class ChangeModel(QDialog):
self.form.templateMap.setLayout(self.tlayout) self.form.templateMap.setLayout(self.tlayout)
# model chooser # model chooser
import aqt.modelchooser import aqt.modelchooser
self.oldModel = self.browser.col.decks.current() self.oldModel = self.browser.col.models.current()
self.form.oldModelLabel.setText(self.oldModel['name']) self.form.oldModelLabel.setText(self.oldModel['name'])
self.modelChooser = aqt.modelchooser.ModelChooser( self.modelChooser = aqt.modelchooser.ModelChooser(
self.browser.mw, self.form.modelChooserWidget, label=False) self.browser.mw, self.form.modelChooserWidget, label=False)
@ -1286,11 +1289,11 @@ class ChangeModel(QDialog):
def rebuildTemplateMap(self, key=None, attr=None): def rebuildTemplateMap(self, key=None, attr=None):
if not key: if not key:
key = "t" key = "t"
attr = "templates" attr = "tmpls"
map = getattr(self, key + "widg") map = getattr(self, key + "widg")
lay = getattr(self, key + "layout") lay = getattr(self, key + "layout")
src = getattr(self.oldModel, attr) src = self.oldModel[attr]
dst = getattr(self.targetModel, attr) dst = self.targetModel[attr]
if map: if map:
lay.removeWidget(map) lay.removeWidget(map)
map.deleteLater() map.deleteLater()
@ -1319,7 +1322,7 @@ class ChangeModel(QDialog):
setattr(self, key + "indices", indices) setattr(self, key + "indices", indices)
def rebuildFieldMap(self): def rebuildFieldMap(self):
return self.rebuildTemplateMap(key="f", attr="fields") return self.rebuildTemplateMap(key="f", attr="flds")
def onComboChanged(self, i, cb, key): def onComboChanged(self, i, cb, key):
indices = getattr(self, key + "indices") indices = getattr(self, key + "indices")
@ -1343,9 +1346,9 @@ class ChangeModel(QDialog):
def getTemplateMap(self, old=None, combos=None, new=None): def getTemplateMap(self, old=None, combos=None, new=None):
if not old: if not old:
old = self.oldModel.templates old = self.oldModel['tmpls']
combos = self.tcombos combos = self.tcombos
new = self.targetModel.templates new = self.targetModel['tmpls']
map = {} map = {}
for i, f in enumerate(old): for i, f in enumerate(old):
idx = combos[i].currentIndex() idx = combos[i].currentIndex()
@ -1359,9 +1362,9 @@ class ChangeModel(QDialog):
def getFieldMap(self): def getFieldMap(self):
return self.getTemplateMap( return self.getTemplateMap(
old=self.oldModel.fields, old=self.oldModel['flds'],
combos=self.fcombos, combos=self.fcombos,
new=self.targetModel.fields) new=self.targetModel['flds'])
def cleanup(self): def cleanup(self):
remHook("reset", self.onReset) remHook("reset", self.onReset)
@ -1387,7 +1390,8 @@ Are you sure you want to continue?""")):
b = self.browser b = self.browser
b.mw.progress.start() b.mw.progress.start()
b.model.beginReset() b.model.beginReset()
self.oldModel.changeModel(self.nids, self.targetModel, fmap, cmap) mm = b.mw.col.models
mm.change(self.oldModel, self.nids, self.targetModel, fmap, cmap)
b.onSearch(reset=False) b.onSearch(reset=False)
b.model.endReset() b.model.endReset()
b.mw.progress.finish() b.mw.progress.finish()

View file

@ -147,6 +147,8 @@ class DeckConf(QDialog):
c = self.conf c = self.conf
f.maxTaken.setValue(c['maxTaken']) f.maxTaken.setValue(c['maxTaken'])
f.autoplaySounds.setChecked(c['autoplay']) f.autoplaySounds.setChecked(c['autoplay'])
# description
f.desc.setPlainText(self.deck['desc'])
def onRestore(self): def onRestore(self):
self.mw.progress.start() self.mw.progress.start()
@ -215,6 +217,8 @@ class DeckConf(QDialog):
c = self.conf c = self.conf
c['maxTaken'] = f.maxTaken.value() c['maxTaken'] = f.maxTaken.value()
c['autoplay'] = f.autoplaySounds.isChecked() c['autoplay'] = f.autoplaySounds.isChecked()
# description
self.deck['desc'] = f.desc.toPlainText()
self.mw.col.decks.save(self.conf) self.mw.col.decks.save(self.conf)
def reject(self): def reject(self):

View file

@ -576,6 +576,23 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="tab_4">
<attribute name="title">
<string>Description</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QLabel" name="label_22">
<property name="text">
<string>Description to show on study screen:</string>
</property>
</widget>
</item>
<item>
<widget class="QTextEdit" name="desc"/>
</item>
</layout>
</widget>
</widget> </widget>
</item> </item>
<item> <item>