add deck to add cards dialog

This commit is contained in:
Damien Elmes 2011-12-13 01:53:18 +09:00
parent 63e1132b5b
commit 177a2d027b
4 changed files with 37 additions and 19 deletions

View file

@ -450,13 +450,14 @@ class Browser(QMainWindow):
if not self.model.cards: if not self.model.cards:
# no row change will fire # no row change will fire
self.onRowChanged(None, None) self.onRowChanged(None, None)
txt = _("No matches found.") # somewhat distracting
if not self.mw.pm.profile['fullSearch']: # txt = _("No matches found.")
txt += "<p>" + _( # if not self.mw.pm.profile['fullSearch']:
_("If your cards have formatting, you may want <br>" # txt += "<p>" + _(
"to enable 'search within formatting' in the<br>" # _("If your cards have formatting, you may want <br>"
"browser options.")) # "to enable 'search within formatting' in the<br>"
tooltip(txt) # "browser options."))
# tooltip(txt)
def updateTitle(self): def updateTitle(self):
selected = len(self.form.tableView.selectionModel().selectedRows()) selected = len(self.form.tableView.selectionModel().selectedRows())

View file

@ -206,7 +206,7 @@ class Editor(object):
self.setupOuter() self.setupOuter()
self.setupButtons() self.setupButtons()
self.setupWeb() self.setupWeb()
self.setupTags() self.setupTagsAndDeck()
self.setupKeyboard() self.setupKeyboard()
# Initial setup # Initial setup
@ -298,7 +298,8 @@ class Editor(object):
_("Cloze (Ctrl+Shift+c)"), text="[...]") _("Cloze (Ctrl+Shift+c)"), text="[...]")
but.setFixedWidth(24) but.setFixedWidth(24)
# fixme: better image names # fixme: better image names
b("text-speak", self.onAddMedia, "F3", _("Add pictures/audio/video (F3)")) b("mail-attachment", self.onAddMedia, "F3",
_("Attach pictures/audio/video (F3)"))
b("media-record", self.onRecSound, "F5", _("Record audio (F5)")) b("media-record", self.onRecSound, "F5", _("Record audio (F5)"))
b("adv", self.onAdvanced, text=u"") b("adv", self.onAdvanced, text=u"")
s = QShortcut(QKeySequence("Ctrl+t, t"), self.widget) s = QShortcut(QKeySequence("Ctrl+t, t"), self.widget)
@ -392,7 +393,7 @@ class Editor(object):
self.web.setHtml(_html % (getBase(self.mw.col), anki.js.all, self.web.setHtml(_html % (getBase(self.mw.col), anki.js.all,
_("Show Duplicates")), _("Show Duplicates")),
loadCB=self._loadFinished) loadCB=self._loadFinished)
self.updateTags() self.updateTagsAndDeck()
self.updateKeyboard() self.updateKeyboard()
elif hide: elif hide:
self.widget.hide() self.widget.hide()
@ -424,7 +425,7 @@ class Editor(object):
self._keepButtons = True self._keepButtons = True
self.web.eval("saveField('blur');") self.web.eval("saveField('blur');")
self._keepButtons = False self._keepButtons = False
self.saveTags() self.saveTagsAndDeck()
def checkValid(self): def checkValid(self):
cols = [] cols = []
@ -475,36 +476,51 @@ class Editor(object):
form.textEdit.toPlainText()) form.textEdit.toPlainText())
self.loadNote(self.currentField) self.loadNote(self.currentField)
# Tag handling # Tag & deck handling
###################################################################### ######################################################################
def setupTags(self): def setupTagsAndDeck(self):
import aqt.tagedit import aqt.tagedit
g = QGroupBox(self.widget) g = QGroupBox(self.widget)
g.setFlat(True) g.setFlat(True)
tb = QGridLayout() tb = QGridLayout()
tb.setSpacing(12) tb.setSpacing(12)
tb.setMargin(6) tb.setMargin(6)
# deck
if self.addMode:
l = QLabel(_("Deck"))
tb.addWidget(l, 0, 0)
self.deck = aqt.tagedit.TagEdit(self.widget, type=1)
self.deck.connect(self.deck, SIGNAL("lostFocus"),
self.saveTagsAndDeck)
tb.addWidget(self.deck, 0, 1)
else:
self.deck = None
# tags # tags
l = QLabel(_("Tags")) l = QLabel(_("Tags"))
tb.addWidget(l, 0, 2) tb.addWidget(l, 1, 0)
self.tags = aqt.tagedit.TagEdit(self.widget) self.tags = aqt.tagedit.TagEdit(self.widget)
self.tags.connect(self.tags, SIGNAL("lostFocus"), self.tags.connect(self.tags, SIGNAL("lostFocus"),
self.saveTags) self.saveTagsAndDeck)
tb.addWidget(self.tags, 0, 3) tb.addWidget(self.tags, 1, 1)
g.setLayout(tb) g.setLayout(tb)
self.outerLayout.addWidget(g) self.outerLayout.addWidget(g)
def updateTags(self): def updateTagsAndDeck(self):
if self.tags.col != self.mw.col: if self.tags.col != self.mw.col:
if self.deck:
self.deck.setCol(self.mw.col)
self.tags.setCol(self.mw.col) self.tags.setCol(self.mw.col)
if self.addMode:
self.deck.setText(self.mw.col.decks.name(self.note.did))
self.tags.setText(self.note.stringTags().strip()) self.tags.setText(self.note.stringTags().strip())
def saveTags(self): def saveTagsAndDeck(self):
if not self.note: if not self.note:
return return
self.note.tags = self.mw.col.tags.split(unicode(self.tags.text())) self.note.tags = self.mw.col.tags.split(self.tags.text())
if self.addMode: if self.addMode:
self.note.did = self.mw.col.decks.id(self.deck.text())
# save group and tags to model # save group and tags to model
m = self.note.model() m = self.note.model()
m['did'] = self.note.did m['did'] = self.note.did

View file

@ -106,5 +106,6 @@
<file>icons/delete16.png</file> <file>icons/delete16.png</file>
<file>icons/addtag16.png</file> <file>icons/addtag16.png</file>
<file>icons/deletetag16.png</file> <file>icons/deletetag16.png</file>
<file>icons/mail-attachment.png</file>
</qresource> </qresource>
</RCC> </RCC>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,022 B