hide the editor when more than one card is selected

This commit is contained in:
Damien Elmes 2011-04-12 23:50:13 +09:00
parent ae831408b2
commit 949dc9defd
2 changed files with 23 additions and 24 deletions

View file

@ -399,10 +399,6 @@ class Browser(QMainWindow):
txt = unicode(self.form.searchEdit.text()).strip() txt = unicode(self.form.searchEdit.text()).strip()
self.model.search(txt) self.model.search(txt)
show = not not self.model.cards show = not not self.model.cards
self.form.cardLabel.setShown(show)
self.form.fieldsArea.setShown(show)
if not show:
self.editor.setFact(None)
def updateTitle(self): def updateTitle(self):
selected = len(self.form.tableView.selectionModel().selectedRows()) selected = len(self.form.tableView.selectionModel().selectedRows())
@ -414,6 +410,7 @@ class Browser(QMainWindow):
"tot": self.deck.cardCount(), "tot": self.deck.cardCount(),
"sel": ngettext("%d selected", "%d selected", selected) % selected "sel": ngettext("%d selected", "%d selected", selected) % selected
} + " - " + self.deck.name()) } + " - " + self.deck.name())
return selected
# Table view & editor # Table view & editor
###################################################################### ######################################################################
@ -424,36 +421,30 @@ class Browser(QMainWindow):
self.form.tableView.setShowGrid(False) self.form.tableView.setShowGrid(False)
self.form.tableView.setModel(self.model) self.form.tableView.setModel(self.model)
self.form.tableView.selectionModel() self.form.tableView.selectionModel()
self.connect(self.form.tableView.selectionModel(),
SIGNAL("selectionChanged(QItemSelection,QItemSelection)"),
self.updateTitle)
self.form.tableView.setItemDelegate(StatusDelegate(self, self.model)) self.form.tableView.setItemDelegate(StatusDelegate(self, self.model))
self.connect(self.form.tableView.selectionModel(), self.connect(self.form.tableView.selectionModel(),
SIGNAL("currentRowChanged(QModelIndex, QModelIndex)"), SIGNAL("selectionChanged(QItemSelection,QItemSelection)"),
self.rowChanged) self.onRowChanged)
def setupEditor(self): def setupEditor(self):
self.editor = aqt.editor.Editor(self.mw, self.editor = aqt.editor.Editor(self.mw,
self.form.fieldsArea) self.form.fieldsArea)
self.editor.stealFocus = False self.editor.stealFocus = False
def rowChanged(self, current, previous): def onRowChanged(self, current, previous):
self.currentRow = current "Update current fact and hide/show editor."
self.card = self.model.getCard(current) show = self.model.cards and self.updateTitle() == 1
if not self.card: self.form.splitter_2.widget(1).setShown(show)
self.editor.setFact(None, True) if not show:
return self.editor.setFact(None)
fact = self.card.fact() else:
self.editor.setFact(fact) self.card = self.model.getCard(
self.editor.card = self.card self.form.tableView.selectionModel().currentIndex())
self.showCardInfo(self.card) self.editor.setFact(self.card.fact())
self.editor.card = self.card
self.showCardInfo(self.card)
self.updateToggles() self.updateToggles()
def cardRow(self):
try:
return self.model.cards.index(self.card.id)
except:
return -1
# Headers & sorting # Headers & sorting
###################################################################### ######################################################################
@ -701,6 +692,12 @@ where id in %s""" % ids2str(
# Menu options # Menu options
###################################################################### ######################################################################
def cardRow(self):
try:
return self.model.cards.index(self.card.id)
except:
return -1
def deleteCards(self): def deleteCards(self):
cards = self.selectedCards() cards = self.selectedCards()
n = _("Delete Cards") n = _("Delete Cards")

View file

@ -352,6 +352,8 @@ class Editor(object):
def setFact(self, fact): def setFact(self, fact):
"Make FACT the current fact." "Make FACT the current fact."
if self.fact and fact and self.fact.id == fact.id:
return
self.fact = fact self.fact = fact
# change timer # change timer
if self.fact: if self.fact: