void OpdsBookModel::onReplyFinished() { QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender()); Q_ASSERT(reply); reply->deleteLater(); OpdsParser parser; OpdsInfo data = parser.parse(reply->url(), reply); if (reply->url() == m_source) { beginResetModel(); m_data = data; endResetModel(); m_state = Ready; } else if (reply->url() == m_data.next()) { beginInsertRows(QModelIndex(), m_data.entries.size(), m_data.entries.size() + data.entries.size() - 1); m_data.entries.append(data.entries); m_data.links = data.links; endInsertRows(); m_busy = false; emit busyChanged(m_busy); } emit hasNextPageChanged(hasNextPage()); }
/* Method exchanging the place of selected icon (item) with * next one */ bool Grid::moveRight(Component* item){ if(!page) return false; bool moved = page->moveRight(item); /* If item is the last icon of the page, we have to do the job from here */ if(!moved && hasNextPage()) page->switchLastToFirst(pages[pages.indexOf(page)+1]); else if(!moved) return false; showCurrentPage(); return true; }
/** * Returns whether a new page has been displayed or not */ bool Grid::selectNext(int off){ selection->setVisible(true); int total = page->items.size(); if(selectindex + off >= total && !hasNextPage()) return false; selectindex += off; if(selectindex >= total){ selectindex %= total; showNextPage(); return true; } else { resized(); } return false; }
void Grid::showNextPage() { if (hasNextPage()) { int i = pages.indexOf(page); showPageAtIndex(i+1); } }