Fixed bug in reset logic

This commit is contained in:
Digital Artifex
2026-06-18 01:05:10 -04:00
parent 7bfe9f86bc
commit 49ee8bb952
2 changed files with 9 additions and 3 deletions
+9 -2
View File
@@ -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: