3#include <QQmlComponent>
7#include "qml_material/model/lazy_row.hpp"
11class DelegateRecycler :
public QObject {
13 explicit DelegateRecycler(QQmlEngine*, QObject* parent =
nullptr);
14 ~DelegateRecycler()
override;
15 QQuickItem* acquire(QQmlComponent*,
const ItemSnapshotPtr&,
int index);
16 bool rebind(QQuickItem*,
const ItemSnapshotPtr&,
int index);
17 void attach(QQuickItem*, QQuickItem* parent);
18 void layout(QQuickItem*,
const QRectF&);
19 void release(QQuickItem*);
21 void setPoolLimit(
int);
23 LazyRow* row(QQuickItem*)
const;
24 QString errorString()
const {
return m_error; }
29 QPointer<QQuickItem> item;
30 QPointer<QQuickItem> host;
31 QPointer<LazyRow> row;
32 QPointer<QQmlComponent> component;
35 bool updating =
false;
37 std::shared_ptr<Entry> entry(QQuickItem*)
const;
39 QPointer<QQmlEngine> m_engine;
40 QList<std::shared_ptr<Entry>> m_entries;
42 quint64 m_generation = 0;
44 bool m_clearing =
false;