don't forget selection when refreshing after card changes

This commit is contained in:
Damien Elmes 2010-01-23 20:36:44 +09:00
parent 4fcc04cf30
commit e3de050ee6

View file

@ -190,6 +190,10 @@ facts.id = cards.factId) from cards where id = :id""",
# called after search changed # called after search changed
pass pass
def refresh(self):
self.cards = [[x[0]] for x in self.cards]
self.emit(SIGNAL("layoutChanged()"))
# Tools # Tools
###################################################################### ######################################################################
@ -803,12 +807,11 @@ where id in (%s)""" % ",".join([
"select id from cards where factId in (%s)" % "select id from cards where factId in (%s)" %
",".join([str(s) for s in self.selectedFacts()])) ",".join([str(s) for s in self.selectedFacts()]))
def updateAfterCardChange(self, reset=False): def updateAfterCardChange(self):
"Refresh info like stats on current card" "Refresh info like stats on current card"
self.currentRow = self.dialog.tableView.currentIndex() self.currentRow = self.dialog.tableView.currentIndex()
self.rowChanged(self.currentRow, None) self.rowChanged(self.currentRow, None)
if reset: self.model.refresh()
self.updateSearch()
self.drawTags() self.drawTags()
self.parent.moveToState("auto") self.parent.moveToState("auto")
@ -845,7 +848,7 @@ where id in (%s)""" % ",".join([
self.deck.addTags(self.selectedFacts(), tags) self.deck.addTags(self.selectedFacts(), tags)
self.deck.setUndoEnd(label) self.deck.setUndoEnd(label)
self.parent.setProgressParent(None) self.parent.setProgressParent(None)
self.updateAfterCardChange(reset=True) self.updateAfterCardChange()
def deleteTags(self, tags=None, label=None): def deleteTags(self, tags=None, label=None):
if tags is None: if tags is None:
@ -860,7 +863,7 @@ where id in (%s)""" % ",".join([
self.deck.deleteTags(self.selectedFacts(), tags) self.deck.deleteTags(self.selectedFacts(), tags)
self.deck.setUndoEnd(label) self.deck.setUndoEnd(label)
self.parent.setProgressParent(None) self.parent.setProgressParent(None)
self.updateAfterCardChange(reset=True) self.updateAfterCardChange()
def updateToggles(self): def updateToggles(self):
self.dialog.actionToggleSuspend.setChecked(self.isSuspended()) self.dialog.actionToggleSuspend.setChecked(self.isSuspended())
@ -882,7 +885,7 @@ where id in (%s)""" % ",".join([
self.deck.suspendCards(self.selectedCards()) self.deck.suspendCards(self.selectedCards())
self.deck.setUndoEnd(n) self.deck.setUndoEnd(n)
self.parent.setProgressParent(None) self.parent.setProgressParent(None)
self.model.cards = [[x[0]] for x in self.model.cards] self.model.refresh()
def _onUnsuspend(self): def _onUnsuspend(self):
n = _("Unsuspend") n = _("Unsuspend")
@ -891,7 +894,7 @@ where id in (%s)""" % ",".join([
self.deck.unsuspendCards(self.selectedCards()) self.deck.unsuspendCards(self.selectedCards())
self.deck.setUndoEnd(n) self.deck.setUndoEnd(n)
self.parent.setProgressParent(None) self.parent.setProgressParent(None)
self.model.cards = [[x[0]] for x in self.model.cards] self.model.refresh()
def isMarked(self): def isMarked(self):
return self.currentCard and "Marked" in self.currentCard.fact.tags return self.currentCard and "Marked" in self.currentCard.fact.tags
@ -933,7 +936,7 @@ where id in (%s)""" % ",".join([
self.deck.rebuildCounts(full=False) self.deck.rebuildCounts(full=False)
self.deck.rebuildQueue() self.deck.rebuildQueue()
self.deck.setUndoEnd(n) self.deck.setUndoEnd(n)
self.updateAfterCardChange(reset=True) self.updateAfterCardChange()
def addCards(self): def addCards(self):
sf = self.selectedFacts() sf = self.selectedFacts()