16 if (itemsPerPage <= 0) {
17 qCWarning(C_PAGINATION) <<
"Invalid number of items per page:" << itemsPerPage
18 <<
"failing back to 1";
22 if (currentPage <= 0) {
23 qCWarning(C_PAGINATION) <<
"Invalid current page:" << currentPage <<
"failing back to 1";
28 qCWarning(C_PAGINATION) <<
"Invalid number of page links:" << pageLinks
29 <<
"failing back to 1";
33 insert(u
"limit"_s, itemsPerPage);
34 insert(u
"offset"_s, (currentPage - 1) * itemsPerPage);
35 insert(u
"currentPage"_s, currentPage);
36 insert(u
"current"_s, currentPage);
38 const int resultLastPage = ((numberOfItems - 1) / itemsPerPage) + 1;
39 currentPage = std::ranges::min(currentPage, resultLastPage);
41 const int startPage = (currentPage < pageLinks + 1) ? 1 : currentPage - pageLinks;
42 const int endPage = std::ranges::min((pageLinks * 2) + startPage, resultLastPage);
45 for (
int i = startPage; i <= endPage; ++i) {
48 insert(u
"enableFirst"_s, currentPage > 1);
49 insert(u
"enableLast"_s, currentPage != resultLastPage);
51 insert(u
"lastPage"_s, resultLastPage);
52 insert(u
"numberOfItems"_s, numberOfItems);