don't allow "" as deck name, hide completers when editor closed

This commit is contained in:
Damien Elmes 2012-01-16 12:40:06 +09:00
parent e4a65ec53f
commit 0a65d7abe0
2 changed files with 20 additions and 3 deletions

View file

@ -409,8 +409,10 @@ class Editor(object):
loadCB=self._loadFinished) loadCB=self._loadFinished)
self.updateTagsAndDeck() self.updateTagsAndDeck()
self.updateKeyboard() self.updateKeyboard()
elif hide: else:
self.widget.hide() self.hideCompleters()
if hide:
self.widget.hide()
def loadNote(self, field=0): def loadNote(self, field=0):
if not self._loaded: if not self._loaded:
@ -533,7 +535,11 @@ class Editor(object):
return return
self.note.tags = self.mw.col.tags.split(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()) 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 # save group and tags to model
m = self.note.model() m = self.note.model()
m['did'] = self.note.did m['did'] = self.note.did
@ -543,6 +549,11 @@ class Editor(object):
self.note.flush() self.note.flush()
runHook("tagsUpdated", self.note) runHook("tagsUpdated", self.note)
def hideCompleters(self):
self.tags.hideCompleter()
if self.addMode:
self.deck.hideCompleter()
# Format buttons # Format buttons
###################################################################### ######################################################################

View file

@ -35,6 +35,9 @@ class TagEdit(QLineEdit):
def keyPressEvent(self, evt): def keyPressEvent(self, evt):
QLineEdit.keyPressEvent(self, evt) QLineEdit.keyPressEvent(self, evt)
if not evt.text():
# if it's a modifier, don't show
return
self.showCompleter() self.showCompleter()
def showCompleter(self): def showCompleter(self):
@ -45,6 +48,9 @@ class TagEdit(QLineEdit):
QLineEdit.focusOutEvent(self, evt) QLineEdit.focusOutEvent(self, evt)
self.emit(SIGNAL("lostFocus")) self.emit(SIGNAL("lostFocus"))
def hideCompleter(self):
self.completer.popup().hide()
class TagCompleter(QCompleter): class TagCompleter(QCompleter):
def __init__(self, model, parent, edit, *args): def __init__(self, model, parent, edit, *args):