diff --git a/aqt/editor.py b/aqt/editor.py index 7e0b20502..aa34d049d 100644 --- a/aqt/editor.py +++ b/aqt/editor.py @@ -651,9 +651,19 @@ class Editor(object): 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.saveTags) + self.deck = QPushButton() + self.deck.setAutoDefault(False) + self.deck.setStyleSheet("* { text-align: left; }") + # not working for some reason + #self.deck.setShortcut("Ctrl+D") + self.deckShortcut = QShortcut( + QKeySequence("Ctrl+D"), self.widget) + self.deckShortcut.connect( + self.deckShortcut, SIGNAL("activated()"), + self.deck.click) + self.deck.connect(self.deck, SIGNAL("clicked()"), + self.onChangeDeck) + self.deck.setToolTip("Change Deck (Ctrl+D)") tb.addWidget(self.deck, 0, 1) else: self.deck = None @@ -669,8 +679,6 @@ class Editor(object): def updateTagsAndDeck(self): if self.tags.col != self.mw.col: - if self.deck: - self.deck.setCol(self.mw.col) self.tags.setCol(self.mw.col) if self.addMode: if self.mw.col.conf.get("addToCur", True): @@ -713,10 +721,17 @@ class Editor(object): m['tags'] = self.note.tags self.mw.col.models.save(m) + def onChangeDeck(self): + from aqt.studydeck import StudyDeck + cur = self.deck.text() + ret = StudyDeck( + self.mw, current=cur, accept=_("Choose"), + title=_("Select Deck"), help="addingnotes", + cancel=False, parent=self.parentWindow) + self.deck.setText(ret.name) + def hideCompleters(self): self.tags.hideCompleter() - if self.addMode: - self.deck.hideCompleter() # Format buttons ###################################################################### diff --git a/aqt/studydeck.py b/aqt/studydeck.py index 99661d6c3..4575266d4 100644 --- a/aqt/studydeck.py +++ b/aqt/studydeck.py @@ -10,12 +10,17 @@ from operator import itemgetter class StudyDeck(QDialog): def __init__(self, mw, names=None, accept=None, title=None, - help="studydeck", current=None, parent=None): + help="studydeck", current=None, cancel=True, + parent=None): QDialog.__init__(self, parent or mw) self.mw = mw self.form = aqt.forms.studydeck.Ui_Dialog() self.form.setupUi(self) self.form.filter.installEventFilter(self) + self.cancel = cancel + if not cancel: + self.form.buttonBox.removeButton( + self.form.buttonBox.button(QDialogButtonBox.Cancel)) if title: self.setWindowTitle(title) if not names: @@ -81,3 +86,9 @@ class StudyDeck(QDialog): def accept(self): self.name = self.names[self.form.list.currentRow()] QDialog.accept(self) + + def reject(self): + if not self.cancel: + return self.accept() + QDialog.reject(self) +