OpenCoverage

qqmllistmodelworkeragent_p.h

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/qml/types/qqmllistmodelworkeragent_p.h
Source codeSwitch to Preprocessed file
LineSourceCount
1/****************************************************************************-
2**-
3** Copyright (C) 2016 The Qt Company Ltd.-
4** Contact: https://www.qt.io/licensing/-
5**-
6** This file is part of the QtQml module of the Qt Toolkit.-
7**-
8** $QT_BEGIN_LICENSE:LGPL$-
9** Commercial License Usage-
10** Licensees holding valid commercial Qt licenses may use this file in-
11** accordance with the commercial license agreement provided with the-
12** Software or, alternatively, in accordance with the terms contained in-
13** a written agreement between you and The Qt Company. For licensing terms-
14** and conditions see https://www.qt.io/terms-conditions. For further-
15** information use the contact form at https://www.qt.io/contact-us.-
16**-
17** GNU Lesser General Public License Usage-
18** Alternatively, this file may be used under the terms of the GNU Lesser-
19** General Public License version 3 as published by the Free Software-
20** Foundation and appearing in the file LICENSE.LGPL3 included in the-
21** packaging of this file. Please review the following information to-
22** ensure the GNU Lesser General Public License version 3 requirements-
23** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.-
24**-
25** GNU General Public License Usage-
26** Alternatively, this file may be used under the terms of the GNU-
27** General Public License version 2.0 or (at your option) the GNU General-
28** Public license version 3 or any later version approved by the KDE Free-
29** Qt Foundation. The licenses are as published by the Free Software-
30** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3-
31** included in the packaging of this file. Please review the following-
32** information to ensure the GNU General Public License requirements will-
33** be met: https://www.gnu.org/licenses/gpl-2.0.html and-
34** https://www.gnu.org/licenses/gpl-3.0.html.-
35**-
36** $QT_END_LICENSE$-
37**-
38****************************************************************************/-
39-
40#ifndef QQUICKLISTMODELWORKERAGENT_P_H-
41#define QQUICKLISTMODELWORKERAGENT_P_H-
42-
43//-
44// W A R N I N G-
45// --------------
46//-
47// This file is not part of the Qt API. It exists purely as an-
48// implementation detail. This header file may change from version to-
49// version without notice, or even be removed.-
50//-
51// We mean it.-
52//-
53-
54#include <qqml.h>-
55-
56#include <QEvent>-
57#include <QMutex>-
58#include <QWaitCondition>-
59-
60#include <private/qv8engine_p.h>-
61-
62QT_REQUIRE_CONFIG(qml_list_model);-
63-
64QT_BEGIN_NAMESPACE-
65-
66-
67class QQmlListModel;-
68-
69class QQmlListModelWorkerAgent : public QObject-
70{-
71 Q_OBJECT-
72 Q_PROPERTY(int count READ count)-
73-
74public:-
75 QQmlListModelWorkerAgent(QQmlListModel *);-
76 ~QQmlListModelWorkerAgent();-
77 void setEngine(QV4::ExecutionEngine *eng);-
78-
79 void addref();-
80 void release();-
81-
82 int count() const;-
83-
84 Q_INVOKABLE void clear();-
85 Q_INVOKABLE void remove(QQmlV4Function *args);-
86 Q_INVOKABLE void append(QQmlV4Function *args);-
87 Q_INVOKABLE void insert(QQmlV4Function *args);-
88 Q_INVOKABLE QQmlV4Handle get(int index) const;-
89 Q_INVOKABLE void set(int index, const QQmlV4Handle &);-
90 Q_INVOKABLE void setProperty(int index, const QString& property, const QVariant& value);-
91 Q_INVOKABLE void move(int from, int to, int count);-
92 Q_INVOKABLE void sync();-
93-
94 struct VariantRef-
95 {-
96 VariantRef() : a(nullptr) {}
never executed: end of block
0
97 VariantRef(const VariantRef &r) : a(r.a) { if (a) a->addref(); }
executed 928 times by 2 tests: end of block
Executed by:
  • tst_examples
  • tst_qqmllistmodelworkerscript
executed 928 times by 2 tests: a->addref();
Executed by:
  • tst_examples
  • tst_qqmllistmodelworkerscript
aDescription
TRUEevaluated 928 times by 2 tests
Evaluated by:
  • tst_examples
  • tst_qqmllistmodelworkerscript
FALSEnever evaluated
0-928
98 VariantRef(QQmlListModelWorkerAgent *_a) : a(_a) { if (a) a->addref(); }
executed 928 times by 2 tests: end of block
Executed by:
  • tst_examples
  • tst_qqmllistmodelworkerscript
executed 928 times by 2 tests: a->addref();
Executed by:
  • tst_examples
  • tst_qqmllistmodelworkerscript
aDescription
TRUEevaluated 928 times by 2 tests
Evaluated by:
  • tst_examples
  • tst_qqmllistmodelworkerscript
FALSEnever evaluated
0-928
99 ~VariantRef() { if (a) a->release(); }
executed 1856 times by 2 tests: end of block
Executed by:
  • tst_examples
  • tst_qqmllistmodelworkerscript
executed 1856 times by 2 tests: a->release();
Executed by:
  • tst_examples
  • tst_qqmllistmodelworkerscript
aDescription
TRUEevaluated 1856 times by 2 tests
Evaluated by:
  • tst_examples
  • tst_qqmllistmodelworkerscript
FALSEnever evaluated
0-1856
100-
101 VariantRef &operator=(const VariantRef &o) {-
102 if (o.a) o.a->addref();
never executed: o.a->addref();
o.aDescription
TRUEnever evaluated
FALSEnever evaluated
0
103 if (a) a->release();
never executed: a->release();
aDescription
TRUEnever evaluated
FALSEnever evaluated
0
104 a = o.a;-
105 return *this;
never executed: return *this;
0
106 }-
107-
108 QQmlListModelWorkerAgent *a;-
109 };-
110-
111 void modelDestroyed();-
112protected:-
113 bool event(QEvent *) override;-
114-
115private:-
116 friend class QQuickWorkerScriptEnginePrivate;-
117 friend class QQmlListModel;-
118-
119 struct Sync : public QEvent {-
120 Sync(QQmlListModel *l)-
121 : QEvent(QEvent::User)-
122 , list(l)-
123 {}
executed 908 times by 2 tests: end of block
Executed by:
  • tst_examples
  • tst_qqmllistmodelworkerscript
908
124 ~Sync();-
125 QQmlListModel *list;-
126 };-
127-
128 QAtomicInt m_ref;-
129 QQmlListModel *m_orig;-
130 QQmlListModel *m_copy;-
131 QMutex mutex;-
132 QWaitCondition syncDone;-
133};-
134-
135QT_END_NAMESPACE-
136-
137Q_DECLARE_METATYPE(QQmlListModelWorkerAgent::VariantRef)-
138-
139#endif // QQUICKLISTMODELWORKERAGENT_P_H-
140-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.0