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()
|
self.endReset()
|
||||||
|
|
||||||
def saveSelection(self):
|
def saveSelection(self):
|
||||||
self.selectedCards = dict(
|
cards = self.browser.selectedCards()
|
||||||
[(id, True) for id in self.browser.selectedCards()])
|
self.selectedCards = dict([(id, True) for id in cards])
|
||||||
self.focusedCard = getattr(self.browser, 'card', None)
|
self.focusedCard = getattr(self.browser, 'card', None)
|
||||||
|
|
||||||
def restoreSelection(self):
|
def restoreSelection(self):
|
||||||
|
@ -137,8 +137,10 @@ class DeckModel(QAbstractTableModel):
|
||||||
items = QItemSelection()
|
items = QItemSelection()
|
||||||
focused = None
|
focused = None
|
||||||
first = None
|
first = None
|
||||||
|
count = 0
|
||||||
for row, id in enumerate(self.cards):
|
for row, id in enumerate(self.cards):
|
||||||
if id in self.selectedCards:
|
if id in self.selectedCards:
|
||||||
|
count += 1
|
||||||
idx = self.index(row, 0)
|
idx = self.index(row, 0)
|
||||||
items.select(idx, idx)
|
items.select(idx, idx)
|
||||||
if not first:
|
if not first:
|
||||||
|
@ -154,8 +156,10 @@ class DeckModel(QAbstractTableModel):
|
||||||
if focus:
|
if focus:
|
||||||
tv.selectRow(focus.row())
|
tv.selectRow(focus.row())
|
||||||
tv.scrollTo(focus, tv.PositionAtCenter)
|
tv.scrollTo(focus, tv.PositionAtCenter)
|
||||||
sm.select(items, QItemSelectionModel.SelectCurrent |
|
if count < 500:
|
||||||
QItemSelectionModel.Rows)
|
# discard large selections; they're too slow
|
||||||
|
sm.select(items, QItemSelectionModel.SelectCurrent |
|
||||||
|
QItemSelectionModel.Rows)
|
||||||
else:
|
else:
|
||||||
tv.selectRow(0)
|
tv.selectRow(0)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue