Fixed bug in reset logic
This commit is contained in:
@@ -22,6 +22,7 @@
|
|||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
#include <QMutexLocker>
|
#include <QMutexLocker>
|
||||||
|
#include <qdebug.h>
|
||||||
|
|
||||||
#include "komplex_global.h"
|
#include "komplex_global.h"
|
||||||
#include "slidingcachecontroller.h"
|
#include "slidingcachecontroller.h"
|
||||||
@@ -197,11 +198,16 @@ protected:
|
|||||||
*/
|
*/
|
||||||
auto setOffset(qsizetype offset) -> void
|
auto setOffset(qsizetype offset) -> void
|
||||||
{
|
{
|
||||||
if(offset == m_offset)
|
if(offset == m_offset && offset != std::numeric_limits<qsizetype>::infinity())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(offset == std::numeric_limits<qsizetype>::infinity())
|
||||||
|
{
|
||||||
|
offset = 0;
|
||||||
|
}
|
||||||
|
|
||||||
m_offset = offset;
|
m_offset = offset;
|
||||||
|
|
||||||
if(m_offset >= totalResults())
|
if(m_offset >= totalResults())
|
||||||
@@ -253,7 +259,6 @@ protected:
|
|||||||
{
|
{
|
||||||
m_dataMutex.lock();
|
m_dataMutex.lock();
|
||||||
|
|
||||||
m_offset = std::numeric_limits<qsizetype>::infinity();
|
|
||||||
m_data.clear();
|
m_data.clear();
|
||||||
controller()->reset();
|
controller()->reset();
|
||||||
m_dataMutex.unlock();
|
m_dataMutex.unlock();
|
||||||
@@ -261,6 +266,8 @@ protected:
|
|||||||
Q_EMIT totalPagesChanged();
|
Q_EMIT totalPagesChanged();
|
||||||
Q_EMIT dataChanged();
|
Q_EMIT dataChanged();
|
||||||
Q_EMIT pageChanged();
|
Q_EMIT pageChanged();
|
||||||
|
|
||||||
|
setOffset(std::numeric_limits<qsizetype>::infinity());
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -89,7 +89,6 @@ public:
|
|||||||
Q_EMIT queryChanged();
|
Q_EMIT queryChanged();
|
||||||
|
|
||||||
reset();
|
reset();
|
||||||
setOffset(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|||||||
Reference in New Issue
Block a user