diff --git a/anki/collection.py b/anki/collection.py index cf8cb82d5..8f6221ba3 100644 --- a/anki/collection.py +++ b/anki/collection.py @@ -417,7 +417,7 @@ insert into cards values (?,?,?,?,?,?,0,0,?,0,0,0,0,0,0,0,0,"")""", # type 0 - when previewing in add dialog, only non-empty # type 1 - when previewing edit, only existing # type 2 - when previewing in models dialog, all templates - def previewCards(self, note, type=0): + def previewCards(self, note, type=0, did = None): if type == 0: cms = self.findTemplates(note) elif type == 1: @@ -428,19 +428,23 @@ insert into cards values (?,?,?,?,?,?,0,0,?,0,0,0,0,0,0,0,0,"")""", return [] cards = [] for template in cms: - cards.append(self._newCard(note, template, 1, flush=False)) + cards.append(self._newCard(note, template, 1, flush=False, did = did)) return cards - def _newCard(self, note, template, due, flush=True): + def _newCard(self, note, template, due, did = None, flush=True): "Create a new card." card = anki.cards.Card(self) card.nid = note.id card.ord = template['ord'] - # Use template did (deck override) if valid, otherwise model did - if template['did'] and str(template['did']) in self.decks.decks: - card.did = template['did'] - else: - card.did = note.model()['did'] + card.did = self.db.scalar("select did from cards where nid = ? and ord = ?", card.nid, card.ord) + # Use template did (deck override) if valid, otherwise did in argument, otherwise model did + if not card.did: + if template['did'] and str(template['did']) in self.decks.decks: + card.did = template['did'] + elif did: + card.did = did + else: + card.did = note.model()['did'] # if invalid did, use default instead deck = self.decks.get(card.did) if deck['dyn']: diff --git a/aqt/about.py b/aqt/about.py index 718eaadf8..0baa2e9f7 100644 --- a/aqt/about.py +++ b/aqt/about.py @@ -117,6 +117,7 @@ system. It's free and open source.") "黃文龍", "David Bailey", "Arman High", + "Arthur Milchior", )) abouttext += '

' + _("Written by Damien Elmes, with patches, translation,\ diff --git a/aqt/clayout.py b/aqt/clayout.py index d0414c6bf..037f3b954 100644 --- a/aqt/clayout.py +++ b/aqt/clayout.py @@ -61,7 +61,10 @@ class CardLayout(QDialog): self.setFocus() def redraw(self): - self.cards = self.col.previewCards(self.note, 2) + did = None + if hasattr(self.parent,"deckChooser"): + did = self.parent.deckChooser.selectedId() + self.cards = self.col.previewCards(self.note, 2, did = did) idx = self.ord if idx >= len(self.cards): self.ord = len(self.cards) - 1