diff --git a/aqt/editor.py b/aqt/editor.py index 42cb96126..776a2c0b9 100644 --- a/aqt/editor.py +++ b/aqt/editor.py @@ -409,8 +409,10 @@ class Editor(object): loadCB=self._loadFinished) self.updateTagsAndDeck() self.updateKeyboard() - elif hide: - self.widget.hide() + else: + self.hideCompleters() + if hide: + self.widget.hide() def loadNote(self, field=0): if not self._loaded: @@ -533,7 +535,11 @@ class Editor(object): return self.note.tags = self.mw.col.tags.split(self.tags.text()) if self.addMode: - self.note.did = self.mw.col.decks.id(self.deck.text()) + name = self.deck.text() + if not name.strip(): + self.note.did = 1 + else: + self.note.did = self.mw.col.decks.id(name) # save group and tags to model m = self.note.model() m['did'] = self.note.did @@ -543,6 +549,11 @@ class Editor(object): self.note.flush() runHook("tagsUpdated", self.note) + def hideCompleters(self): + self.tags.hideCompleter() + if self.addMode: + self.deck.hideCompleter() + # Format buttons ###################################################################### diff --git a/aqt/tagedit.py b/aqt/tagedit.py index 6ca95ed1c..d31007f27 100644 --- a/aqt/tagedit.py +++ b/aqt/tagedit.py @@ -35,6 +35,9 @@ class TagEdit(QLineEdit): def keyPressEvent(self, evt): QLineEdit.keyPressEvent(self, evt) + if not evt.text(): + # if it's a modifier, don't show + return self.showCompleter() def showCompleter(self): @@ -45,6 +48,9 @@ class TagEdit(QLineEdit): QLineEdit.focusOutEvent(self, evt) self.emit(SIGNAL("lostFocus")) + def hideCompleter(self): + self.completer.popup().hide() + class TagCompleter(QCompleter): def __init__(self, model, parent, edit, *args):