aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmlmodels/qqmldelegatemodel_p_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmlmodels/qqmldelegatemodel_p_p.h')
-rw-r--r--src/qmlmodels/qqmldelegatemodel_p_p.h79
1 files changed, 21 insertions, 58 deletions
diff --git a/src/qmlmodels/qqmldelegatemodel_p_p.h b/src/qmlmodels/qqmldelegatemodel_p_p.h
index a1c9e7f583..3c7ab9281d 100644
--- a/src/qmlmodels/qqmldelegatemodel_p_p.h
+++ b/src/qmlmodels/qqmldelegatemodel_p_p.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef QQMLDATAMODEL_P_P_H
#define QQMLDATAMODEL_P_P_H
@@ -50,6 +14,7 @@
#include <private/qqmlopenmetaobject_p.h>
#include <QtCore/qloggingcategory.h>
+#include <QtCore/qpointer.h>
//
// W A R N I N G
@@ -73,7 +38,8 @@ typedef QQmlListCompositor Compositor;
class QQmlDelegateModelAttachedMetaObject;
class QQmlAbstractDelegateComponent;
-class Q_QMLMODELS_PRIVATE_EXPORT QQmlDelegateModelItemMetaType : public QQmlRefCount
+class Q_QMLMODELS_EXPORT QQmlDelegateModelItemMetaType final
+ : public QQmlRefCounted<QQmlDelegateModelItemMetaType>
{
public:
QQmlDelegateModelItemMetaType(QV4::ExecutionEngine *engine, QQmlDelegateModel *model, const QStringList &groupNames);
@@ -110,7 +76,11 @@ public:
~QQmlDelegateModelItem();
void referenceObject() { ++objectRef; }
- bool releaseObject() { return --objectRef == 0 && !(groups & Compositor::PersistedFlag); }
+ bool releaseObject()
+ {
+ Q_ASSERT(objectRef > 0);
+ return --objectRef == 0 && !(groups & Compositor::PersistedFlag);
+ }
bool isObjectReferenced() const { return objectRef != 0 || (groups & Compositor::PersistedFlag); }
void childContextObjectDestroyed(QObject *childContextObject);
@@ -263,7 +233,7 @@ public:
bool parseIndex(const QV4::Value &value, int *index, Compositor::Group *group) const;
bool parseGroupArgs(
- QQmlV4Function *args, Compositor::Group *group, int *index, int *count, int *groups) const;
+ QQmlV4FunctionPtr args, Compositor::Group *group, int *index, int *count, int *groups) const;
Compositor::Group group;
QPointer<QQmlDelegateModel> model;
@@ -333,7 +303,12 @@ public:
void emitModelUpdated(const QQmlChangeSet &changeSet, bool reset) override;
void delegateChanged(bool add = true, bool remove = true);
- bool insert(Compositor::insert_iterator &before, const QV4::Value &object, int groups);
+ enum class InsertionResult {
+ Success,
+ Error,
+ Retry
+ };
+ InsertionResult insert(Compositor::insert_iterator &before, const QV4::Value &object, int groups);
int adaptorModelCount() const;
@@ -386,7 +361,7 @@ public:
class QQmlPartsModel : public QQmlInstanceModel, public QQmlDelegateModelGroupEmitter
{
Q_OBJECT
- Q_PROPERTY(QString filterOnGroup READ filterGroup WRITE setFilterGroup NOTIFY filterGroupChanged RESET resetFilterGroup)
+ Q_PROPERTY(QString filterOnGroup READ filterGroup WRITE setFilterGroup NOTIFY filterGroupChanged RESET resetFilterGroup FINAL)
public:
QQmlPartsModel(QQmlDelegateModel *model, const QString &part, QObject *parent = nullptr);
~QQmlPartsModel();
@@ -451,7 +426,9 @@ public:
QList<QQmlPartsModel *> models;
};
-class QQmlDelegateModelAttachedMetaObject : public QAbstractDynamicMetaObject, public QQmlRefCount
+class QQmlDelegateModelAttachedMetaObject final
+ : public QAbstractDynamicMetaObject,
+ public QQmlRefCounted<QQmlDelegateModelAttachedMetaObject>
{
public:
QQmlDelegateModelAttachedMetaObject(
@@ -468,20 +445,6 @@ private:
const int indexPropertyOffset;
};
-class PropertyUpdater : public QObject
-{
- Q_OBJECT
-
-public:
- PropertyUpdater(QObject *parent);
- QHash<int, QMetaObject::Connection> senderToConnection;
- QHash<int, int> changeSignalIndexToPropertyIndex;
- int updateCount = 0;
-public Q_SLOTS:
- void doUpdate();
- void breakBinding();
-};
-
QT_END_NAMESPACE
#endif