Fixed bug in reset logic

This commit is contained in:
Digital Artifex
2026-06-18 01:05:10 -04:00
parent 32085a6a52
commit 6a4dbced85
2 changed files with 9 additions and 3 deletions
+9 -2
View File
@@ -22,6 +22,7 @@
#include <QObject>
#include <QMutex>
#include <QMutexLocker>
#include <qdebug.h>
#include "komplex_global.h"
#include "slidingcachecontroller.h"
@@ -197,11 +198,16 @@ protected:
*/
auto setOffset(qsizetype offset) -> void
{
if(offset == m_offset)
if(offset == m_offset && offset != std::numeric_limits<qsizetype>::infinity())
{
return;
}
if(offset == std::numeric_limits<qsizetype>::infinity())
{
offset = 0;
}
m_offset = offset;
if(m_offset >= totalResults())
@@ -253,7 +259,6 @@ protected:
{
m_dataMutex.lock();
m_offset = std::numeric_limits<qsizetype>::infinity();
m_data.clear();
controller()->reset();
m_dataMutex.unlock();
@@ -261,6 +266,8 @@ protected:
Q_EMIT totalPagesChanged();
Q_EMIT dataChanged();
Q_EMIT pageChanged();
setOffset(std::numeric_limits<qsizetype>::infinity());
}
private:
@@ -89,7 +89,6 @@ public:
Q_EMIT queryChanged();
reset();
setOffset(0);
}
signals: