mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 16:56:36 -04:00
discard large selections
This commit is contained in:
parent
fe083e916f
commit
3c5277ca69
1 changed files with 8 additions and 4 deletions
|
@ -124,8 +124,8 @@ class DeckModel(QAbstractTableModel):
|
|||
self.endReset()
|
||||
|
||||
def saveSelection(self):
|
||||
self.selectedCards = dict(
|
||||
[(id, True) for id in self.browser.selectedCards()])
|
||||
cards = self.browser.selectedCards()
|
||||
self.selectedCards = dict([(id, True) for id in cards])
|
||||
self.focusedCard = getattr(self.browser, 'card', None)
|
||||
|
||||
def restoreSelection(self):
|
||||
|
@ -137,8 +137,10 @@ class DeckModel(QAbstractTableModel):
|
|||
items = QItemSelection()
|
||||
focused = None
|
||||
first = None
|
||||
count = 0
|
||||
for row, id in enumerate(self.cards):
|
||||
if id in self.selectedCards:
|
||||
count += 1
|
||||
idx = self.index(row, 0)
|
||||
items.select(idx, idx)
|
||||
if not first:
|
||||
|
@ -154,8 +156,10 @@ class DeckModel(QAbstractTableModel):
|
|||
if focus:
|
||||
tv.selectRow(focus.row())
|
||||
tv.scrollTo(focus, tv.PositionAtCenter)
|
||||
sm.select(items, QItemSelectionModel.SelectCurrent |
|
||||
QItemSelectionModel.Rows)
|
||||
if count < 500:
|
||||
# discard large selections; they're too slow
|
||||
sm.select(items, QItemSelectionModel.SelectCurrent |
|
||||
QItemSelectionModel.Rows)
|
||||
else:
|
||||
tv.selectRow(0)
|
||||
|
||||
|
|
Loading…
Reference in a new issue