85 lines
1.7 KiB
C++
85 lines
1.7 KiB
C++
|
#include "pagingutil.h"
|
||
|
|
||
|
PagingUtil::PagingUtil(QObject* parent)
|
||
|
: QObject(parent)
|
||
|
, totalSize(10)
|
||
|
, sizeofPerPage(2)
|
||
|
, curSelectNumber(1)
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
PagingUtil::~PagingUtil() {
|
||
|
}
|
||
|
|
||
|
PagingUtil &PagingUtil::operator=(const PagingUtil &other) {
|
||
|
this->totalSize = other.totalSize;
|
||
|
this->sizeofPerPage = other.sizeofPerPage;
|
||
|
this->curSelectNumber = other.curSelectNumber;
|
||
|
return *this;
|
||
|
}
|
||
|
|
||
|
int PagingUtil::getTotalSize() const {
|
||
|
return totalSize;
|
||
|
}
|
||
|
|
||
|
void PagingUtil::setTotalSize(int size) {
|
||
|
totalSize = size;
|
||
|
pre2ReCacheNumbers();
|
||
|
}
|
||
|
|
||
|
int PagingUtil::getSizeofPerPage() const {
|
||
|
return sizeofPerPage;
|
||
|
}
|
||
|
|
||
|
void PagingUtil::setSizeofPerPage(int size) {
|
||
|
Q_ASSERT(size > 0);
|
||
|
sizeofPerPage = size;
|
||
|
pre2ReCacheNumbers();
|
||
|
}
|
||
|
|
||
|
|
||
|
void PagingUtil::numberSelected(int number) {
|
||
|
if (number < 1) {
|
||
|
return;
|
||
|
}
|
||
|
if (number > getPageSize()) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
curSelectNumber = number;
|
||
|
pre2ReCacheNumbers();
|
||
|
emit numberSelectChanged();
|
||
|
}
|
||
|
|
||
|
bool PagingUtil::isSelectedNumber(int number) const {
|
||
|
return curSelectNumber == number;
|
||
|
}
|
||
|
|
||
|
int PagingUtil::getPageSize() const {
|
||
|
int pageSize = 1;
|
||
|
if (totalSize != 0) {
|
||
|
pageSize = (totalSize - 1) / sizeofPerPage + 1;
|
||
|
}
|
||
|
return pageSize;
|
||
|
}
|
||
|
|
||
|
void PagingUtil::pre2ReCacheNumbers() {
|
||
|
int oldNumberSize = curCacheNumbers.size();
|
||
|
|
||
|
reCacheNumbers();
|
||
|
|
||
|
if (curCacheNumbers.size() != oldNumberSize) {
|
||
|
emit numberArraySizeChanged();
|
||
|
}
|
||
|
|
||
|
emit numbersChanged();
|
||
|
|
||
|
//check select number when total size changed
|
||
|
auto pageSize = getPageSize();
|
||
|
if (curSelectNumber > pageSize) {
|
||
|
curSelectNumber = pageSize;
|
||
|
emit numberSelectChanged();
|
||
|
}
|
||
|
}
|