6#include <private/qqmlglobal_p.h>
7#include <private/qqmllistaccessor_p.h>
8#include <private/qqmlchangeset_p.h>
9#include <private/qqmldelegatemodel_p.h>
11#include <QtQml/QQmlInfo>
66 , m_dataSourceIsObject(
false)
67 , m_delegateValidated(
false)
98 if (m_dataSourceIsObject) {
113 if (m_dataSource ==
model)
125 m_dataSource =
model;
127 m_dataSourceAsObject =
object;
128 m_dataSourceIsObject =
object !=
nullptr;
130 if (
object && (vim = qobject_cast<QQmlInstanceModel *>(
object))) {
144 dataModel->setModel(
model);
179 return dataModel->delegate();
188 if (
delegate == dataModel->delegate())
202 m_delegateValidated =
false;
220 return m_model->
count();
233 if (
index >= 0 &&
index < m_deletables.size())
234 return m_deletables[
index];
238void QQuick3DRepeater::clear()
245 for (
int i = m_deletables.size() - 1;
i >= 0; --
i) {
257 m_deletables.clear();
261void QQuick3DRepeater::regenerate()
271 m_itemCount =
count();
272 m_deletables.resize(m_itemCount);
278 if (m_model && m_ownModel)
282 if (m_model && m_model->
count())
289 if (change == ItemParentHasChanged) {
294void QQuick3DRepeater::createdObject(
int index,
QObject *)
301void QQuick3DRepeater::initObject(
int index,
QObject *
object)
305 if (!m_deletables.at(
index)) {
309 if (!m_delegateValidated) {
310 m_delegateValidated =
true;
318 item->setParent(
this);
344 m_deletables.begin() +
index,
346 }
else while (
count--) {
348 m_deletables.remove(
index);
357 difference -=
remove.count;
364 m_deletables = m_deletables.mid(0,
index) +
items + m_deletables.mid(
index);
365 }
else for (
int i = 0;
i <
insert.count; ++
i) {
366 int modelIndex =
index +
i;
368 m_deletables.insert(modelIndex,
nullptr);
373 difference +=
insert.count;
380void QQuick3DRepeater::requestItems()
382 for (
int i = 0;
i < m_itemCount;
i++) {
391#include "moc_qquick3drepeater_p.cpp"
void setParentItem(QGraphicsItem *parent)
Sets this item's parent item to newParent.
T value(const Key &key) const noexcept
iterator insert(const Key &key, const T &value)
Inserts a new item with the key and a value of value.
The QJSValue class acts as a container for Qt/JavaScript data types.
The QQmlChangeSet class stores an ordered list of notifications about changes to a linear data set.
The QQmlComponent class encapsulates a QML component definition.
virtual bool isValid() const =0
virtual ReleaseFlags release(QObject *object, ReusableFlag reusableFlag=NotReusable)=0
void componentComplete() override
Invoked after the root component that caused this instantiation has completed construction.
\qmltype Object3D \inqmlmodule QtQuick3D \instantiates QQuick3DObject \inherits QtObject
virtual void itemChange(ItemChange, const ItemChangeData &)
bool isComponentComplete() const
void objectAdded(int index, QQuick3DObject *object)
virtual void initDelegate(int, QQuick3DNode *)
void setDelegate(QQmlComponent *)
~QQuick3DRepeater() override
Q_INVOKABLE QQuick3DObject * objectAt(int index) const
\qmlmethod Object3D QtQuick3D::Repeater3D::objectAt(index)
void objectRemoved(int index, QQuick3DObject *object)
void componentComplete() override
Invoked after the root component that caused this instantiation has completed construction.
void setModel(const QVariant &)
void itemChange(ItemChange change, const ItemChangeData &value) override
QQuick3DRepeater(QQuick3DNode *parent=nullptr)
\qmltype Repeater3D \inqmlmodule QtQuick3D \inherits Node
static auto fromValue(T &&value) noexcept(std::is_nothrow_copy_constructible_v< T > &&Private::CanUseInternalSpace< T >) -> std::enable_if_t< std::conjunction_v< std::is_copy_constructible< T >, std::is_destructible< T > >, QVariant >
cache insert(employee->id(), employee)
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
constexpr const T & qMin(const T &a, const T &b)
GLenum GLenum GLsizei count
QQmlContext * qmlContext(const QObject *obj)
#define qmlobject_disconnect(Sender, SenderType, Signal, Receiver, ReceiverType, Method)
Disconnect Signal of Sender from Method of Receiver.
#define qmlobject_connect(Sender, SenderType, Signal, Receiver, ReceiverType, Method)
Connect Signal of Sender to Method of Receiver.
Q_QML_EXPORT QQmlInfo qmlWarning(const QObject *me)
static QVariant toVariant(const QV4::Value &value, QMetaType typeHint, bool createJSValueForObjectsAndSymbols, V4ObjectSet *visitedObjects)
settings remove("monkey")
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent