From 4859050faf27211849b854d600a48e147af65c63 Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Sun, 23 Dec 2012 18:11:14 -0800 Subject: [PATCH] Adding deck selector to preferences --- yomi_base/anki_host.py | 15 +++++++++++++++ yomi_base/preference_data.py | 3 +++ yomi_base/preferences.py | 3 +++ yomi_base/ui/preferences.ui | 28 ++++++++++++++++------------ 4 files changed, 37 insertions(+), 12 deletions(-) diff --git a/yomi_base/anki_host.py b/yomi_base/anki_host.py index f10a594..287ba35 100644 --- a/yomi_base/anki_host.py +++ b/yomi_base/anki_host.py @@ -103,3 +103,18 @@ class Anki: for model in self.models().models.values(): if model['name'] == name: return model + + + def decks(self): + return self.collection().decks + + + def deckNames(self): + return self.decks().allNames() + + + def findDeck(self, name): + for deck in self.decks().decks.values(): + if deck['name'] == name: + return deck + diff --git a/yomi_base/preference_data.py b/yomi_base/preference_data.py index 9af2380..cd1b099 100644 --- a/yomi_base/preference_data.py +++ b/yomi_base/preference_data.py @@ -49,6 +49,7 @@ class Preferences: self.ankiFields = dict() self.ankiTags = list() + self.ankiDeck = unicode() self.ankiModel = unicode() @@ -97,6 +98,7 @@ class Preferences: self.searchGroupByExp = self.readAttrBool(search, 'groupByExp', self.searchGroupByExp) for anki in root.getElementsByTagName('anki'): + self.ankiDeck = self.readAttrStr(anki, 'deck', unicode()) self.ankiModel = self.readAttrStr(anki, 'model', unicode()) for tag in anki.getElementsByTagName('tag'): @@ -164,6 +166,7 @@ class Preferences: anki = doc.createElement('anki') root.appendChild(anki) + self.writeAttrStr(anki, 'deck', self.ankiDeck) self.writeAttrStr(anki, 'model', self.ankiModel) for value in self.ankiTags: diff --git a/yomi_base/preferences.py b/yomi_base/preferences.py index 8e56cf1..d51963d 100644 --- a/yomi_base/preferences.py +++ b/yomi_base/preferences.py @@ -54,6 +54,8 @@ class DialogPreferences(QtGui.QDialog): self.tabAnki.setEnabled(self.anki is not None) if self.anki: + self.comboBoxAnkiDeck.addItems(self.anki.deckNames()) + self.comboBoxAnkiDeck.setCurrentIndex(self.comboBoxAnkiDeck.findText(self.preferences.ankiDeck)) self.comboBoxAnkiModel.blockSignals(True) self.comboBoxAnkiModel.addItems(self.anki.modelNames()) self.comboBoxAnkiModel.blockSignals(False) @@ -70,6 +72,7 @@ class DialogPreferences(QtGui.QDialog): self.preferences.searchGroupByExp = self.checkSearchGroupByExp.isChecked() if self.anki: + self.preferences.ankiDeck = unicode(self.comboBoxAnkiDeck.currentText()) self.preferences.ankiModel = unicode(self.comboBoxAnkiModel.currentText()) self.preferences.ankiFields = self.ankiFields() diff --git a/yomi_base/ui/preferences.ui b/yomi_base/ui/preferences.ui index 2bd1838..9afb6fd 100644 --- a/yomi_base/ui/preferences.ui +++ b/yomi_base/ui/preferences.ui @@ -7,7 +7,7 @@ 0 0 600 - 300 + 350 @@ -173,21 +173,25 @@ - - - - - - 0 - 0 - - + + + - Model to use + Deck - + + + + + + + Model + + + +