mirror of
https://github.com/ankitects/anki.git
synced 2025-11-12 23:57:13 -05:00
fix add; update modelchooser
This commit is contained in:
parent
6459ed6396
commit
104c0a11cc
3 changed files with 52 additions and 47 deletions
|
|
@ -160,29 +160,27 @@ class ModelChooser(QHBoxLayout):
|
||||||
|
|
||||||
class AddModel(QDialog):
|
class AddModel(QDialog):
|
||||||
|
|
||||||
def __init__(self, parent, main, deck):
|
def __init__(self, mw, parent=None):
|
||||||
QDialog.__init__(self, parent, Qt.Window)
|
self.parent = parent or mw
|
||||||
self.parent = parent
|
self.mw = mw
|
||||||
if not main:
|
self.deck = mw.deck
|
||||||
main = parent
|
QDialog.__init__(self, self.parent, Qt.Window)
|
||||||
self.main = main
|
|
||||||
self.model = None
|
self.model = None
|
||||||
self.deck = deck
|
self.dialog = aqt.forms.addmodel.Ui_Dialog()
|
||||||
self.dialog = aqt.forms.addmodel.Ui_AddModel()
|
|
||||||
self.dialog.setupUi(self)
|
self.dialog.setupUi(self)
|
||||||
|
# standard models
|
||||||
self.models = []
|
self.models = []
|
||||||
names = stdmodels.models.keys()
|
for (name, func) in stdmodels.models:
|
||||||
names.sort()
|
item = QListWidgetItem(_("Add: %s") % name)
|
||||||
for name in names:
|
|
||||||
m = stdmodels.byName(name)
|
|
||||||
item = QListWidgetItem(_("Add: %s") % m.name)
|
|
||||||
self.dialog.models.addItem(item)
|
self.dialog.models.addItem(item)
|
||||||
self.models.append((True, m))
|
self.models.append((True, func))
|
||||||
# add local decks
|
# add copies
|
||||||
models = sorted(deck.models, key=attrgetter("name"))
|
mids = self.deck.db.list("select id from models order by name")
|
||||||
for m in models:
|
for m in [self.deck.getModel(mid, False) for mid in mids]:
|
||||||
|
m.id = None
|
||||||
item = QListWidgetItem(_("Copy: %s") % m.name)
|
item = QListWidgetItem(_("Copy: %s") % m.name)
|
||||||
self.dialog.models.addItem(item)
|
self.dialog.models.addItem(item)
|
||||||
|
m.name = _("%s copy") % m.name
|
||||||
self.models.append((False, m))
|
self.models.append((False, m))
|
||||||
self.dialog.models.setCurrentRow(0)
|
self.dialog.models.setCurrentRow(0)
|
||||||
# the list widget will swallow the enter key
|
# the list widget will swallow the enter key
|
||||||
|
|
@ -191,16 +189,22 @@ class AddModel(QDialog):
|
||||||
# help
|
# help
|
||||||
self.connect(self.dialog.buttonBox, SIGNAL("helpRequested()"), self.onHelp)
|
self.connect(self.dialog.buttonBox, SIGNAL("helpRequested()"), self.onHelp)
|
||||||
|
|
||||||
def getModel(self):
|
def get(self):
|
||||||
self.exec_()
|
self.exec_()
|
||||||
return self.model
|
return self.model
|
||||||
|
|
||||||
|
def reject(self):
|
||||||
|
self.accept()
|
||||||
|
|
||||||
def accept(self):
|
def accept(self):
|
||||||
(isStd, self.model) = self.models[
|
(isStd, model) = self.models[self.dialog.models.currentRow()]
|
||||||
self.dialog.models.currentRow()]
|
if isStd:
|
||||||
if not isStd:
|
# create
|
||||||
# not a standard model, so duplicate
|
self.model = model(self.deck)
|
||||||
self.model = self.deck.copyModel(self.model)
|
else:
|
||||||
|
# add copy to deck
|
||||||
|
self.mw.deck.addModel(model)
|
||||||
|
self.model = model
|
||||||
QDialog.accept(self)
|
QDialog.accept(self)
|
||||||
|
|
||||||
def onHelp(self):
|
def onHelp(self):
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ class Models(QDialog):
|
||||||
self.model = self.models[idx]
|
self.model = self.models[idx]
|
||||||
|
|
||||||
def onAdd(self):
|
def onAdd(self):
|
||||||
m = aqt.modelchooser.AddModel(self, self.parent, self.d).getModel()
|
m = aqt.modelchooser.AddModel(self.mw, self).get()
|
||||||
if m:
|
if m:
|
||||||
self.deck.addModel(m)
|
self.deck.addModel(m)
|
||||||
self.updateModelsList()
|
self.updateModelsList()
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
<ui version="4.0" >
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<class>AddModel</class>
|
<ui version="4.0">
|
||||||
<widget class="QDialog" name="AddModel" >
|
<class>Dialog</class>
|
||||||
<property name="geometry" >
|
<widget class="QDialog" name="Dialog">
|
||||||
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
|
|
@ -9,27 +10,27 @@
|
||||||
<height>269</height>
|
<height>269</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle" >
|
<property name="windowTitle">
|
||||||
<string>Add Model</string>
|
<string>Add Model</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" >
|
<layout class="QVBoxLayout">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="groupBox" >
|
<widget class="QGroupBox" name="groupBox">
|
||||||
<property name="title" >
|
<property name="title">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" >
|
<layout class="QVBoxLayout">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QListWidget" name="models" >
|
<widget class="QListWidget" name="models">
|
||||||
<property name="font" >
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<pointsize>12</pointsize>
|
<pointsize>12</pointsize>
|
||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="editTriggers" >
|
<property name="editTriggers">
|
||||||
<set>QAbstractItemView::NoEditTriggers</set>
|
<set>QAbstractItemView::NoEditTriggers</set>
|
||||||
</property>
|
</property>
|
||||||
<property name="tabKeyNavigation" >
|
<property name="tabKeyNavigation">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
@ -38,12 +39,12 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QDialogButtonBox" name="buttonBox" >
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
<property name="orientation" >
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="standardButtons" >
|
<property name="standardButtons">
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::Ok</set>
|
<set>QDialogButtonBox::Help|QDialogButtonBox::Ok</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
@ -54,14 +55,14 @@
|
||||||
<connection>
|
<connection>
|
||||||
<sender>buttonBox</sender>
|
<sender>buttonBox</sender>
|
||||||
<signal>accepted()</signal>
|
<signal>accepted()</signal>
|
||||||
<receiver>AddModel</receiver>
|
<receiver>Dialog</receiver>
|
||||||
<slot>accept()</slot>
|
<slot>accept()</slot>
|
||||||
<hints>
|
<hints>
|
||||||
<hint type="sourcelabel" >
|
<hint type="sourcelabel">
|
||||||
<x>266</x>
|
<x>266</x>
|
||||||
<y>353</y>
|
<y>353</y>
|
||||||
</hint>
|
</hint>
|
||||||
<hint type="destinationlabel" >
|
<hint type="destinationlabel">
|
||||||
<x>157</x>
|
<x>157</x>
|
||||||
<y>274</y>
|
<y>274</y>
|
||||||
</hint>
|
</hint>
|
||||||
|
|
@ -70,14 +71,14 @@
|
||||||
<connection>
|
<connection>
|
||||||
<sender>buttonBox</sender>
|
<sender>buttonBox</sender>
|
||||||
<signal>rejected()</signal>
|
<signal>rejected()</signal>
|
||||||
<receiver>AddModel</receiver>
|
<receiver>Dialog</receiver>
|
||||||
<slot>reject()</slot>
|
<slot>reject()</slot>
|
||||||
<hints>
|
<hints>
|
||||||
<hint type="sourcelabel" >
|
<hint type="sourcelabel">
|
||||||
<x>334</x>
|
<x>334</x>
|
||||||
<y>353</y>
|
<y>353</y>
|
||||||
</hint>
|
</hint>
|
||||||
<hint type="destinationlabel" >
|
<hint type="destinationlabel">
|
||||||
<x>286</x>
|
<x>286</x>
|
||||||
<y>274</y>
|
<y>274</y>
|
||||||
</hint>
|
</hint>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue