Contiguous cache example: minor cleanup

Modernised contiguous cache example.

Change-Id: I88d67b03ed95a61484873149da16f0d814b26cd8
Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
This commit is contained in:
Amanda Hamblin-Trué 2023-06-29 10:01:28 +02:00
parent f1db0ca251
commit 15a7e108aa
2 changed files with 8 additions and 13 deletions

View File

@ -3,16 +3,12 @@
#include "randomlistmodel.h" #include "randomlistmodel.h"
#include <QRandomGenerator> #include <QRandomGenerator>
static const int bufferSize(500); static constexpr int bufferSize(500);
static const int lookAhead(100); static constexpr int lookAhead(100);
static const int halfLookAhead(lookAhead/2); static constexpr int halfLookAhead(lookAhead / 2);
RandomListModel::RandomListModel(QObject *parent) RandomListModel::RandomListModel(QObject *parent)
: QAbstractListModel(parent), m_rows(bufferSize), m_count(10000) : QAbstractListModel(parent), m_rows(bufferSize), m_count(10000)
{
}
RandomListModel::~RandomListModel()
{ {
} }
@ -31,14 +27,14 @@ QVariant RandomListModel::data(const QModelIndex &index, int role) const
if (row > m_rows.lastIndex()) { if (row > m_rows.lastIndex()) {
if (row - m_rows.lastIndex() > lookAhead) if (row - m_rows.lastIndex() > lookAhead)
cacheRows(row-halfLookAhead, qMin(m_count, row+halfLookAhead)); cacheRows(row - halfLookAhead, qMin(m_count, row + halfLookAhead));
else while (row > m_rows.lastIndex()) else while (row > m_rows.lastIndex())
m_rows.append(fetchRow(m_rows.lastIndex()+1)); m_rows.append(fetchRow(m_rows.lastIndex() + 1));
} else if (row < m_rows.firstIndex()) { } else if (row < m_rows.firstIndex()) {
if (m_rows.firstIndex() - row > lookAhead) if (m_rows.firstIndex() - row > lookAhead)
cacheRows(qMax(0, row-halfLookAhead), row+halfLookAhead); cacheRows(qMax(0, row - halfLookAhead), row + halfLookAhead);
else while (row < m_rows.firstIndex()) else while (row < m_rows.firstIndex())
m_rows.prepend(fetchRow(m_rows.firstIndex()-1)); m_rows.prepend(fetchRow(m_rows.firstIndex() - 1));
} }
return m_rows.at(row); return m_rows.at(row);

View File

@ -13,7 +13,6 @@ class RandomListModel : public QAbstractListModel
Q_OBJECT Q_OBJECT
public: public:
RandomListModel(QObject *parent = nullptr); RandomListModel(QObject *parent = nullptr);
~RandomListModel();
int rowCount(const QModelIndex & = QModelIndex()) const override; int rowCount(const QModelIndex & = QModelIndex()) const override;
QVariant data(const QModelIndex &, int) const override; QVariant data(const QModelIndex &, int) const override;