mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2025-12-12 15:49:28 -08:00
Fix a bounds check to load the last page of cards in VDD as well. (#6169)
Took 18 minutes Took 17 seconds Took 14 seconds Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
@@ -274,21 +274,8 @@ void VisualDatabaseDisplayWidget::loadCurrentPage()
|
||||
|
||||
void VisualDatabaseDisplayWidget::populateCards()
|
||||
{
|
||||
int rowCount = databaseDisplayModel->rowCount();
|
||||
cards->clear();
|
||||
|
||||
// Calculate the start and end indices for the current page
|
||||
int start = currentPage * cardsPerPage;
|
||||
int end = qMin(start + cardsPerPage, rowCount);
|
||||
|
||||
qCDebug(VisualDatabaseDisplayLog) << "Fetching from " << start << " to " << end << " cards";
|
||||
// Load more cards if we are at the end of the current list and can fetch more
|
||||
if (end >= rowCount && databaseDisplayModel->canFetchMore(QModelIndex())) {
|
||||
qCDebug(VisualDatabaseDisplayLog) << "We gotta load more";
|
||||
databaseDisplayModel->fetchMore(QModelIndex());
|
||||
}
|
||||
|
||||
loadPage(start, end);
|
||||
loadNextPage();
|
||||
}
|
||||
|
||||
void VisualDatabaseDisplayWidget::loadNextPage()
|
||||
@@ -359,18 +346,18 @@ void VisualDatabaseDisplayWidget::databaseDataChanged(const QModelIndex &topLeft
|
||||
|
||||
void VisualDatabaseDisplayWidget::wheelEvent(QWheelEvent *event)
|
||||
{
|
||||
int totalRows = databaseDisplayModel->rowCount(); // Total number of cards
|
||||
int nextPageStartIndex = (currentPage + 1) * cardsPerPage;
|
||||
int totalCards = databaseDisplayModel->rowCount(); // Total number of cards
|
||||
int loadedCards = currentPage * cardsPerPage;
|
||||
|
||||
// Handle scrolling down
|
||||
if (event->angleDelta().y() < 0) {
|
||||
// Check if the next page has any cards to load
|
||||
if (nextPageStartIndex < totalRows) {
|
||||
if (loadedCards < totalCards) {
|
||||
loadCurrentPage(); // Load the next page
|
||||
event->accept(); // Accept the event as valid
|
||||
return;
|
||||
}
|
||||
qCDebug(VisualDatabaseDisplayLog) << nextPageStartIndex << ":" << totalRows;
|
||||
qCDebug(VisualDatabaseDisplayLog) << loadedCards << ":" << totalCards;
|
||||
}
|
||||
|
||||
// Prevent overscrolling when there's no more data to load
|
||||
|
||||
Reference in New Issue
Block a user