7#include <private/qqmlglobal_p.h>
8#include <private/qqmlchangeset_p.h>
9#include <private/qqmldelegatemodel_p.h>
11#include <QtQml/QQmlInfo>
18 , dataSourceIsObject(
false)
19 , delegateValidated(
false)
149 if (
d->dataSourceIsObject) {
154 return d->dataSource;
164 if (
d->dataSource ==
model)
178 d->dataSourceAsObject =
object;
179 d->dataSourceIsObject =
object !=
nullptr;
181 if (
object && (vim = qobject_cast<QQmlInstanceModel *>(
object))) {
195 dataModel->setModel(
model);
248 return dataModel->delegate();
258 if (
delegate == dataModel->delegate())
270 d->delegateValidated =
false;
287 return d->model->count();
300 if (
index >= 0 && index < d->deletables.size())
301 return d->deletables[
index];
308 if (
d->model &&
d->ownModel)
312 if (
d->model &&
d->model->count())
324void QQuickRepeater::clear()
332 for (
int i =
d->deletables.size() - 1;
i >= 0; --
i) {
336 d->model->release(
item);
344 d->deletables.clear();
348void QQuickRepeater::regenerate()
360 d->deletables.resize(
d->itemCount);
364void QQuickRepeaterPrivate::requestItems()
366 for (
int i = 0;
i < itemCount;
i++) {
381void QQuickRepeater::initItem(
int index,
QObject *
object)
384 if (
index >=
d->deletables.size()) {
388 d->deletables.resize(
d->model->count() + 1);
392 if (!
d->deletables.at(
index)) {
395 d->model->release(
object);
396 if (!
d->delegateValidated) {
397 d->delegateValidated =
true;
410 if (
d->dataSourceIsObject)
416 for (
int si =
index+1; si <
d->itemCount; ++si) {
417 if (
d->deletables.at(si)) {
418 after =
d->deletables.at(si);
449 d->deletables.begin() +
index,
451 }
else while (
count--) {
453 d->deletables.remove(
index);
456 d->model->release(
item);
462 difference -=
remove.count;
475 if (i < d->deletables.size()) {
482 }
else for (
int i = 0;
i <
insert.count; ++
i) {
483 int modelIndex =
index +
i;
485 d->deletables.insert(modelIndex,
nullptr);
488 d->model->release(
object);
490 difference +=
insert.count;
499#include "moc_qquickrepeater_p.cpp"
void stackBefore(const QGraphicsItem *sibling)
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.
qsizetype size() const noexcept
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 ReleaseFlags release(QObject *object, ReusableFlag reusableFlag=NotReusable)=0
void setTransparentForPositioner(bool trans)
static QQuickItemPrivate * get(QQuickItem *item)
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
void componentComplete() override
\reimp Derived classes should call the base class method before adding their own actions to perform a...
QQuickItem * parentItem() const
virtual void itemChange(ItemChange, const ItemChangeData &)
Called when change occurs for this item.
bool isComponentComplete() const
Returns true if construction of the QML component is complete; otherwise returns false.
ItemChange
Used in conjunction with QQuickItem::itemChange() to notify the item about certain types of changes.
void stackBefore(const QQuickItem *)
Moves the specified sibling item to the index before this item within the list of children.
void itemChange(ItemChange change, const ItemChangeData &value) override
Called when change occurs for this item.
void componentComplete() override
\reimp Derived classes should call the base class method before adding their own actions to perform a...
void itemAdded(int index, QQuickItem *item)
void setDelegate(QQmlComponent *)
void itemRemoved(int index, QQuickItem *item)
virtual ~QQuickRepeater()
Q_INVOKABLE QQuickItem * itemAt(int index) const
\qmlmethod Item QtQuick::Repeater::itemAt(index)
void setModel(const QVariant &)
QQuickRepeater(QQuickItem *parent=nullptr)
\qmlsignal QtQuick::Repeater::itemAdded(int index, Item item)
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.
QQuickItem * qmlobject_cast< QQuickItem * >(QObject *object)
Q_QML_EXPORT QQmlInfo qmlWarning(const QObject *me)
static QVariant toVariant(const QV4::Value &value, QMetaType typeHint, bool createJSValueForObjectsAndSymbols, V4ObjectSet *visitedObjects)
QSqlQueryModel * model
[16]
settings remove("monkey")
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent