From a85addc5d52f5339ddf4786729d91be8e4fa6ca6 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Tue, 24 Apr 2012 05:49:49 +0900 Subject: [PATCH] option to apply options group to all child decks --- aqt/deckconf.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/aqt/deckconf.py b/aqt/deckconf.py index 50999b981..f20c097b0 100644 --- a/aqt/deckconf.py +++ b/aqt/deckconf.py @@ -5,7 +5,8 @@ from aqt.qt import * import aqt, simplejson from anki.utils import ids2str -from aqt.utils import showInfo, showWarning, openHelp, getOnlyText +from aqt.utils import showInfo, showWarning, openHelp, getOnlyText, askUser, \ + tooltip from operator import itemgetter class DeckConf(QDialog): @@ -13,6 +14,8 @@ class DeckConf(QDialog): QDialog.__init__(self, mw) self.mw = mw self.deck = deck + self.childDids = [ + d[1] for d in self.mw.col.decks.children(self.deck['id'])] self.form = aqt.forms.dconf.Ui_Dialog() self.form.setupUi(self) self.mw.checkpoint(_("Options")) @@ -69,6 +72,10 @@ class DeckConf(QDialog): a.connect(a, SIGNAL("triggered()"), self.remGroup) a = m.addAction(_("Rename")) a.connect(a, SIGNAL("triggered()"), self.renameGroup) + a = m.addAction(_("Set for all subdecks")) + a.connect(a, SIGNAL("triggered()"), self.setChildren) + if not self.childDids: + a.setEnabled(False) m.exec_(QCursor.pos()) def onConfChange(self, idx): @@ -116,6 +123,17 @@ class DeckConf(QDialog): self.conf['name'] = name self.loadConfs() + def setChildren(self): + if not askUser( + _("Set all decks below %s to this option group?") % + self.deck['name']): + return + for did in self.childDids: + deck = self.mw.col.decks.get(did) + deck['conf'] = self.deck['conf'] + self.mw.col.decks.save(deck) + tooltip(_("%d decks updated.") % len(self.childDids)) + # Loading ##################################################