itemmodels/qabstractitemmodel.cpp

Switch to Source codePreprocessed file
LineSource CodeCoverage
1 -
2 -
3 -
4 -
5QPersistentModelIndexData *QPersistentModelIndexData::create(const QModelIndex &index) -
6{ -
7 qt_noop(); -
8 QPersistentModelIndexData *d = 0; -
9 QAbstractItemModel *model = const_cast<QAbstractItemModel *>(index.model()); -
10 QHash<QModelIndex, QPersistentModelIndexData *> &indexes = model->d_func()->persistent.indexes; -
11 const QHash<QModelIndex, QPersistentModelIndexData *>::iterator it = indexes.find(index); -
12 if (it != indexes.end()) {
evaluated: it != indexes.end()
TRUEFALSE
yes
Evaluation Count:67450
yes
Evaluation Count:19416
19416-67450
13 d = (*it); -
14 } else {
executed: }
Execution Count:67450
67450
15 d = new QPersistentModelIndexData(index); -
16 indexes.insert(index, d); -
17 }
executed: }
Execution Count:19416
19416
18 qt_noop(); -
19 return d;
executed: return d;
Execution Count:86866
86866
20} -
21 -
22void QPersistentModelIndexData::destroy(QPersistentModelIndexData *data) -
23{ -
24 qt_noop(); -
25 qt_noop(); -
26 QAbstractItemModel *model = const_cast<QAbstractItemModel *>(data->model); -
27 -
28 if (model) {
evaluated: model
TRUEFALSE
yes
Evaluation Count:16868
yes
Evaluation Count:2536
2536-16868
29 QAbstractItemModelPrivate *p = model->d_func(); -
30 qt_noop(); -
31 p->removePersistentIndexData(data); -
32 }
executed: }
Execution Count:16868
16868
33 delete data; -
34}
executed: }
Execution Count:19404
19404
35QPersistentModelIndex::QPersistentModelIndex() -
36 : d(0) -
37{ -
38}
executed: }
Execution Count:37462
37462
39QPersistentModelIndex::QPersistentModelIndex(const QPersistentModelIndex &other) -
40 : d(other.d) -
41{ -
42 if (d) d->ref.ref();
evaluated: d
TRUEFALSE
yes
Evaluation Count:54979
yes
Evaluation Count:1483
executed: d->ref.ref();
Execution Count:54979
1483-54979
43}
executed: }
Execution Count:56462
56462
44 -
45 -
46 -
47 -
48 -
49QPersistentModelIndex::QPersistentModelIndex(const QModelIndex &index) -
50 : d(0) -
51{ -
52 if (index.isValid()) {
evaluated: index.isValid()
TRUEFALSE
yes
Evaluation Count:68911
yes
Evaluation Count:416
416-68911
53 d = QPersistentModelIndexData::create(index); -
54 d->ref.ref(); -
55 }
executed: }
Execution Count:68911
68911
56}
executed: }
Execution Count:69327
69327
57 -
58 -
59 -
60 -
61 -
62 -
63 -
64QPersistentModelIndex::~QPersistentModelIndex() -
65{ -
66 if (d && !d->ref.deref()) {
evaluated: d
TRUEFALSE
yes
Evaluation Count:139867
yes
Evaluation Count:19526
evaluated: !d->ref.deref()
TRUEFALSE
yes
Evaluation Count:17125
yes
Evaluation Count:122742
17125-139867
67 QPersistentModelIndexData::destroy(d); -
68 d = 0; -
69 }
executed: }
Execution Count:17125
17125
70}
executed: }
Execution Count:159393
159393
71bool QPersistentModelIndex::operator==(const QPersistentModelIndex &other) const -
72{ -
73 if (d && other.d)
evaluated: d
TRUEFALSE
yes
Evaluation Count:32161
yes
Evaluation Count:342
evaluated: other.d
TRUEFALSE
yes
Evaluation Count:26291
yes
Evaluation Count:5870
342-32161
74 return d->index == other.d->index;
executed: return d->index == other.d->index;
Execution Count:26291
26291
75 return d == other.d;
executed: return d == other.d;
Execution Count:6212
6212
76} -
77bool QPersistentModelIndex::operator<(const QPersistentModelIndex &other) const -
78{ -
79 if (d && other.d)
partially evaluated: d
TRUEFALSE
yes
Evaluation Count:1499
no
Evaluation Count:0
partially evaluated: other.d
TRUEFALSE
yes
Evaluation Count:1499
no
Evaluation Count:0
0-1499
80 return d->index < other.d->index;
executed: return d->index < other.d->index;
Execution Count:1499
1499
81 -
82 return d < other.d;
never executed: return d < other.d;
0
83} -
84QPersistentModelIndex &QPersistentModelIndex::operator=(const QPersistentModelIndex &other) -
85{ -
86 if (d == other.d)
evaluated: d == other.d
TRUEFALSE
yes
Evaluation Count:3894
yes
Evaluation Count:3532
3532-3894
87 return *this;
executed: return *this;
Execution Count:3894
3894
88 if (d && !d->ref.deref())
evaluated: d
TRUEFALSE
yes
Evaluation Count:2450
yes
Evaluation Count:1082
evaluated: !d->ref.deref()
TRUEFALSE
yes
Evaluation Count:904
yes
Evaluation Count:1546
904-2450
89 QPersistentModelIndexData::destroy(d);
executed: QPersistentModelIndexData::destroy(d);
Execution Count:904
904
90 d = other.d; -
91 if (d) d->ref.ref();
executed: d->ref.ref();
Execution Count:3520
evaluated: d
TRUEFALSE
yes
Evaluation Count:3520
yes
Evaluation Count:12
12-3520
92 return *this;
executed: return *this;
Execution Count:3532
3532
93} -
94QPersistentModelIndex &QPersistentModelIndex::operator=(const QModelIndex &other) -
95{ -
96 if (d && !d->ref.deref())
evaluated: d
TRUEFALSE
yes
Evaluation Count:3028
yes
Evaluation Count:28853
evaluated: !d->ref.deref()
TRUEFALSE
yes
Evaluation Count:1375
yes
Evaluation Count:1653
1375-28853
97 QPersistentModelIndexData::destroy(d);
executed: QPersistentModelIndexData::destroy(d);
Execution Count:1375
1375
98 if (other.isValid()) {
evaluated: other.isValid()
TRUEFALSE
yes
Evaluation Count:17955
yes
Evaluation Count:13926
13926-17955
99 d = QPersistentModelIndexData::create(other); -
100 if (d) d->ref.ref();
executed: d->ref.ref();
Execution Count:17955
partially evaluated: d
TRUEFALSE
yes
Evaluation Count:17955
no
Evaluation Count:0
0-17955
101 } else {
executed: }
Execution Count:17955
17955
102 d = 0; -
103 }
executed: }
Execution Count:13926
13926
104 return *this;
executed: return *this;
Execution Count:31881
31881
105} -
106 -
107 -
108 -
109 -
110 -
111 -
112 -
113QPersistentModelIndex::operator const QModelIndex&() const -
114{ -
115 static const QModelIndex invalid; -
116 if (d)
evaluated: d
TRUEFALSE
yes
Evaluation Count:65721
yes
Evaluation Count:277576
65721-277576
117 return d->index;
executed: return d->index;
Execution Count:65721
65721
118 return invalid;
executed: return invalid;
Execution Count:277576
277576
119} -
120bool QPersistentModelIndex::operator==(const QModelIndex &other) const -
121{ -
122 if (d)
evaluated: d
TRUEFALSE
yes
Evaluation Count:702
yes
Evaluation Count:584
584-702
123 return d->index == other;
executed: return d->index == other;
Execution Count:702
702
124 return !other.isValid();
executed: return !other.isValid();
Execution Count:584
584
125} -
126bool QPersistentModelIndex::operator!=(const QModelIndex &other) const -
127{ -
128 if (d)
partially evaluated: d
TRUEFALSE
yes
Evaluation Count:48
no
Evaluation Count:0
0-48
129 return d->index != other;
executed: return d->index != other;
Execution Count:48
48
130 return other.isValid();
never executed: return other.isValid();
0
131} -
132 -
133 -
134 -
135 -
136 -
137 -
138 -
139int QPersistentModelIndex::row() const -
140{ -
141 if (d)
evaluated: d
TRUEFALSE
yes
Evaluation Count:132347
yes
Evaluation Count:2240
2240-132347
142 return d->index.row();
executed: return d->index.row();
Execution Count:132347
132347
143 return -1;
executed: return -1;
Execution Count:2240
2240
144} -
145 -
146 -
147 -
148 -
149 -
150 -
151 -
152int QPersistentModelIndex::column() const -
153{ -
154 if (d)
evaluated: d
TRUEFALSE
yes
Evaluation Count:102913
yes
Evaluation Count:1592
1592-102913
155 return d->index.column();
executed: return d->index.column();
Execution Count:102913
102913
156 return -1;
executed: return -1;
Execution Count:1592
1592
157} -
158void *QPersistentModelIndex::internalPointer() const -
159{ -
160 if (d)
partially evaluated: d
TRUEFALSE
yes
Evaluation Count:89
no
Evaluation Count:0
0-89
161 return d->index.internalPointer();
executed: return d->index.internalPointer();
Execution Count:89
89
162 return 0;
never executed: return 0;
0
163} -
164quintptr QPersistentModelIndex::internalId() const -
165{ -
166 if (d)
partially evaluated: d
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
0-4
167 return d->index.internalId();
executed: return d->index.internalId();
Execution Count:4
4
168 return 0;
never executed: return 0;
0
169} -
170 -
171 -
172 -
173 -
174 -
175 -
176 -
177QModelIndex QPersistentModelIndex::parent() const -
178{ -
179 if (d)
evaluated: d
TRUEFALSE
yes
Evaluation Count:103291
yes
Evaluation Count:668
668-103291
180 return d->index.parent();
executed: return d->index.parent();
Execution Count:103291
103291
181 return QModelIndex();
executed: return QModelIndex();
Execution Count:668
668
182} -
183QModelIndex QPersistentModelIndex::sibling(int row, int column) const -
184{ -
185 if (d)
partially evaluated: d
TRUEFALSE
yes
Evaluation Count:8
no
Evaluation Count:0
0-8
186 return d->index.sibling(row, column);
executed: return d->index.sibling(row, column);
Execution Count:8
8
187 return QModelIndex();
never executed: return QModelIndex();
0
188} -
189QModelIndex QPersistentModelIndex::child(int row, int column) const -
190{ -
191 if (d)
never evaluated: d
0
192 return d->index.child(row, column);
never executed: return d->index.child(row, column);
0
193 return QModelIndex();
never executed: return QModelIndex();
0
194} -
195 -
196 -
197 -
198 -
199 -
200 -
201 -
202QVariant QPersistentModelIndex::data(int role) const -
203{ -
204 if (d)
partially evaluated: d
TRUEFALSE
yes
Evaluation Count:69
no
Evaluation Count:0
0-69
205 return d->index.data(role);
executed: return d->index.data(role);
Execution Count:69
69
206 return QVariant();
never executed: return QVariant();
0
207} -
208 -
209 -
210 -
211 -
212 -
213 -
214Qt::ItemFlags QPersistentModelIndex::flags() const -
215{ -
216 if (d)
never evaluated: d
0
217 return d->index.flags();
never executed: return d->index.flags();
0
218 return 0;
never executed: return 0;
0
219} -
220 -
221 -
222 -
223 -
224const QAbstractItemModel *QPersistentModelIndex::model() const -
225{ -
226 if (d)
partially evaluated: d
TRUEFALSE
yes
Evaluation Count:18559
no
Evaluation Count:0
0-18559
227 return d->index.model();
executed: return d->index.model();
Execution Count:18559
18559
228 return 0;
never executed: return 0;
0
229} -
230bool QPersistentModelIndex::isValid() const -
231{ -
232 return d && d->index.isValid();
executed: return d && d->index.isValid();
Execution Count:74439
74439
233} -
234 -
235 -
236QDebug operator<<(QDebug dbg, const QModelIndex &idx) -
237{ -
238 dbg.nospace() << "QModelIndex(" << idx.row() << ',' << idx.column() -
239 << ',' << idx.internalPointer() << ',' << idx.model() << ')'; -
240 return dbg.space();
executed: return dbg.space();
Execution Count:9
9
241} -
242 -
243QDebug operator<<(QDebug dbg, const QPersistentModelIndex &idx) -
244{ -
245 if (idx.d)
never evaluated: idx.d
0
246 dbg << idx.d->index;
never executed: dbg << idx.d->index;
0
247 else -
248 dbg << QModelIndex();
never executed: dbg << QModelIndex();
0
249 return dbg;
never executed: return dbg;
0
250} -
251 -
252 -
253class QEmptyItemModel : public QAbstractItemModel -
254{ -
255public: -
256 explicit QEmptyItemModel(QObject *parent = 0) : QAbstractItemModel(parent) {}
executed: }
Execution Count:35
35
257 QModelIndex index(int, int, const QModelIndex &) const { return QModelIndex(); }
executed: return QModelIndex();
Execution Count:23
23
258 QModelIndex parent(const QModelIndex &) const { return QModelIndex(); }
never executed: return QModelIndex();
0
259 int rowCount(const QModelIndex &) const { return 0; }
executed: return 0;
Execution Count:1110
1110
260 int columnCount(const QModelIndex &) const { return 0; }
executed: return 0;
Execution Count:1906
1906
261 bool hasChildren(const QModelIndex &) const { return false; }
executed: return false;
Execution Count:96
96
262 QVariant data(const QModelIndex &, int) const { return QVariant(); }
executed: return QVariant();
Execution Count:1030
1030
263}; -
264 -
265static QEmptyItemModel *qEmptyModel() { static QGlobalStatic<QEmptyItemModel > thisGlobalStatic = { { (0) }, false }; if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { QEmptyItemModel *x = new QEmptyItemModel; if (!thisGlobalStatic.pointer.testAndSetOrdered(0, x)) delete x; else static QGlobalStaticDeleter<QEmptyItemModel > cleanup(thisGlobalStatic); } return thisGlobalStatic.pointer.load(); }
partially evaluated: !thisGlobalStatic.pointer.testAndSetOrdered(0, x)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:35
evaluated: !thisGlobalStatic.pointer.load()
TRUEFALSE
yes
Evaluation Count:35
yes
Evaluation Count:177821
partially evaluated: !thisGlobalStatic.destroyed
TRUEFALSE
yes
Evaluation Count:35
no
Evaluation Count:0
never executed: delete x;
executed: return thisGlobalStatic.pointer.load();
Execution Count:177856
0-177856
266 -
267QAbstractItemModel *QAbstractItemModelPrivate::staticEmptyModel() -
268{ -
269 return qEmptyModel();
executed: return qEmptyModel();
Execution Count:177856
177856
270} -
271 -
272namespace { -
273 struct DefaultRoleNames : public QHash<int, QByteArray> -
274 { -
275 DefaultRoleNames() { -
276 (*this)[Qt::DisplayRole] = "display"; -
277 (*this)[Qt::DecorationRole] = "decoration"; -
278 (*this)[Qt::EditRole] = "edit"; -
279 (*this)[Qt::ToolTipRole] = "toolTip"; -
280 (*this)[Qt::StatusTipRole] = "statusTip"; -
281 (*this)[Qt::WhatsThisRole] = "whatsThis"; -
282 }
executed: }
Execution Count:44
44
283 }; -
284} -
285 -
286static DefaultRoleNames *qDefaultRoleNames() { static QGlobalStatic<DefaultRoleNames > thisGlobalStatic = { { (0) }, false }; if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { DefaultRoleNames *x = new DefaultRoleNames; if (!thisGlobalStatic.pointer.testAndSetOrdered(0, x)) delete x; else static QGlobalStaticDeleter<DefaultRoleNames > cleanup(thisGlobalStatic); } return thisGlobalStatic.pointer.load(); }
partially evaluated: !thisGlobalStatic.pointer.testAndSetOrdered(0, x)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:44
evaluated: !thisGlobalStatic.pointer.load()
TRUEFALSE
yes
Evaluation Count:44
yes
Evaluation Count:4241
partially evaluated: !thisGlobalStatic.destroyed
TRUEFALSE
yes
Evaluation Count:44
no
Evaluation Count:0
never executed: delete x;
executed: return thisGlobalStatic.pointer.load();
Execution Count:4285
0-4285
287 -
288const QHash<int,QByteArray> &QAbstractItemModelPrivate::defaultRoleNames() -
289{ -
290 return *qDefaultRoleNames();
executed: return *qDefaultRoleNames();
Execution Count:4285
4285
291} -
292 -
293 -
294static uint typeOfVariant(const QVariant &value) -
295{ -
296 -
297 switch (value.userType()) { -
298 case QVariant::Bool: -
299 case QVariant::Int: -
300 case QVariant::UInt: -
301 case QVariant::LongLong: -
302 case QVariant::ULongLong: -
303 case QVariant::Char: -
304 case QMetaType::Short: -
305 case QMetaType::UShort: -
306 case QMetaType::UChar: -
307 case QMetaType::ULong: -
308 case QMetaType::Long: -
309 return 0;
executed: return 0;
Execution Count:2
2
310 case QVariant::Double: -
311 case QMetaType::Float: -
312 return 1;
never executed: return 1;
0
313 default: -
314 return 2;
executed: return 2;
Execution Count:19798
19798
315 } -
316}
never executed: }
0
317 -
318 -
319 -
320 -
321 -
322 -
323 -
324bool QAbstractItemModelPrivate::variantLessThan(const QVariant &v1, const QVariant &v2) -
325{ -
326 switch(qMax(typeOfVariant(v1), typeOfVariant(v2))) -
327 { -
328 case 0: -
329 return v1.toLongLong() < v2.toLongLong();
executed: return v1.toLongLong() < v2.toLongLong();
Execution Count:1
1
330 case 1: -
331 return v1.toReal() < v2.toReal();
never executed: return v1.toReal() < v2.toReal();
0
332 default: -
333 return v1.toString().localeAwareCompare(v2.toString()) < 0;
executed: return v1.toString().localeAwareCompare(v2.toString()) < 0;
Execution Count:9899
9899
334 } -
335}
never executed: }
0
336 -
337void QAbstractItemModelPrivate::removePersistentIndexData(QPersistentModelIndexData *data) -
338{ -
339 if (data->index.isValid()) {
evaluated: data->index.isValid()
TRUEFALSE
yes
Evaluation Count:16866
yes
Evaluation Count:2
2-16866
340 int removed = persistent.indexes.remove(data->index); -
341 qt_noop(); -
342 -
343 -
344 -
345 (void)removed;; -
346 }
executed: }
Execution Count:16866
16866
347 -
348 for (int i = persistent.moved.count() - 1; i >= 0; --i) {
partially evaluated: i >= 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:16868
0-16868
349 int idx = persistent.moved[i].indexOf(data); -
350 if (idx >= 0)
never evaluated: idx >= 0
0
351 persistent.moved[i].remove(idx);
never executed: persistent.moved[i].remove(idx);
0
352 }
never executed: }
0
353 -
354 for (int i = persistent.invalidated.count() - 1; i >= 0; --i) {
partially evaluated: i >= 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:16868
0-16868
355 int idx = persistent.invalidated[i].indexOf(data); -
356 if (idx >= 0)
never evaluated: idx >= 0
0
357 persistent.invalidated[i].remove(idx);
never executed: persistent.invalidated[i].remove(idx);
0
358 }
never executed: }
0
359 -
360}
executed: }
Execution Count:16868
16868
361 -
362void QAbstractItemModelPrivate::rowsAboutToBeInserted(const QModelIndex &parent, -
363 int first, int last) -
364{ -
365 QAbstractItemModel * const q = q_func(); -
366 (void)last;; -
367 QVector<QPersistentModelIndexData *> persistent_moved; -
368 if (first < q->rowCount(parent)) {
evaluated: first < q->rowCount(parent)
TRUEFALSE
yes
Evaluation Count:2126
yes
Evaluation Count:103674
2126-103674
369 for (QHash<QModelIndex, QPersistentModelIndexData *>::const_iterator it = persistent.indexes.constBegin(); -
370 it != persistent.indexes.constEnd(); ++it) {
evaluated: it != persistent.indexes.constEnd()
TRUEFALSE
yes
Evaluation Count:7452
yes
Evaluation Count:2126
2126-7452
371 QPersistentModelIndexData *data = *it; -
372 const QModelIndex &index = data->index; -
373 if (index.row() >= first && index.isValid() && index.parent() == parent) {
evaluated: index.row() >= first
TRUEFALSE
yes
Evaluation Count:6112
yes
Evaluation Count:1340
partially evaluated: index.isValid()
TRUEFALSE
yes
Evaluation Count:6112
no
Evaluation Count:0
evaluated: index.parent() == parent
TRUEFALSE
yes
Evaluation Count:6083
yes
Evaluation Count:29
0-6112
374 persistent_moved.append(data); -
375 }
executed: }
Execution Count:6083
6083
376 }
executed: }
Execution Count:7452
7452
377 }
executed: }
Execution Count:2126
2126
378 persistent.moved.push(persistent_moved); -
379}
executed: }
Execution Count:105800
105800
380 -
381void QAbstractItemModelPrivate::rowsInserted(const QModelIndex &parent, -
382 int first, int last) -
383{ -
384 QVector<QPersistentModelIndexData *> persistent_moved = persistent.moved.pop(); -
385 int count = (last - first) + 1; -
386 for (QVector<QPersistentModelIndexData *>::const_iterator it = persistent_moved.constBegin(); -
387 it != persistent_moved.constEnd(); ++it) {
evaluated: it != persistent_moved.constEnd()
TRUEFALSE
yes
Evaluation Count:6083
yes
Evaluation Count:105800
6083-105800
388 QPersistentModelIndexData *data = *it; -
389 QModelIndex old = data->index; -
390 persistent.indexes.erase(persistent.indexes.find(old)); -
391 data->index = q_func()->index(old.row() + count, old.column(), parent); -
392 if (data->index.isValid()) {
partially evaluated: data->index.isValid()
TRUEFALSE
yes
Evaluation Count:6083
no
Evaluation Count:0
0-6083
393 persistent.insertMultiAtEnd(data->index, data); -
394 } else {
executed: }
Execution Count:6083
6083
395 QMessageLogger("itemmodels/qabstractitemmodel.cpp", 600, __PRETTY_FUNCTION__).warning() << "QAbstractItemModel::endInsertRows: Invalid index (" << old.row() + count << ',' << old.column() << ") in model" << q_func(); -
396 }
never executed: }
0
397 } -
398}
executed: }
Execution Count:105800
105800
399 -
400void QAbstractItemModelPrivate::itemsAboutToBeMoved(const QModelIndex &srcParent, int srcFirst, int srcLast, const QModelIndex &destinationParent, int destinationChild, Qt::Orientation orientation) -
401{ -
402 QVector<QPersistentModelIndexData *> persistent_moved_explicitly; -
403 QVector<QPersistentModelIndexData *> persistent_moved_in_source; -
404 QVector<QPersistentModelIndexData *> persistent_moved_in_destination; -
405 -
406 QHash<QModelIndex, QPersistentModelIndexData *>::const_iterator it; -
407 const QHash<QModelIndex, QPersistentModelIndexData *>::const_iterator begin = persistent.indexes.constBegin(); -
408 const QHash<QModelIndex, QPersistentModelIndexData *>::const_iterator end = persistent.indexes.constEnd(); -
409 -
410 const bool sameParent = (srcParent == destinationParent); -
411 const bool movingUp = (srcFirst > destinationChild); -
412 -
413 for ( it = begin; it != end; ++it) {
evaluated: it != end
TRUEFALSE
yes
Evaluation Count:2617
yes
Evaluation Count:64
64-2617
414 QPersistentModelIndexData *data = *it; -
415 const QModelIndex &index = data->index; -
416 const QModelIndex &parent = index.parent(); -
417 const bool isSourceIndex = (parent == srcParent); -
418 const bool isDestinationIndex = (parent == destinationParent); -
419 -
420 int childPosition; -
421 if (orientation == Qt::Vertical)
partially evaluated: orientation == Qt::Vertical
TRUEFALSE
yes
Evaluation Count:2617
no
Evaluation Count:0
0-2617
422 childPosition = index.row();
executed: childPosition = index.row();
Execution Count:2617
2617
423 else -
424 childPosition = index.column();
never executed: childPosition = index.column();
0
425 -
426 if (!index.isValid() || !(isSourceIndex || isDestinationIndex ) )
partially evaluated: !index.isValid()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2617
evaluated: isSourceIndex
TRUEFALSE
yes
Evaluation Count:1312
yes
Evaluation Count:1305
evaluated: isDestinationIndex
TRUEFALSE
yes
Evaluation Count:823
yes
Evaluation Count:482
0-2617
427 continue;
executed: continue;
Execution Count:482
482
428 -
429 if (!sameParent && isDestinationIndex) {
evaluated: !sameParent
TRUEFALSE
yes
Evaluation Count:1655
yes
Evaluation Count:480
evaluated: isDestinationIndex
TRUEFALSE
yes
Evaluation Count:823
yes
Evaluation Count:832
480-1655
430 if (childPosition >= destinationChild)
evaluated: childPosition >= destinationChild
TRUEFALSE
yes
Evaluation Count:376
yes
Evaluation Count:447
376-447
431 persistent_moved_in_destination.append(data);
executed: persistent_moved_in_destination.append(data);
Execution Count:376
376
432 continue;
executed: continue;
Execution Count:823
823
433 } -
434 -
435 if (sameParent && movingUp && childPosition < destinationChild)
evaluated: sameParent
TRUEFALSE
yes
Evaluation Count:480
yes
Evaluation Count:832
evaluated: movingUp
TRUEFALSE
yes
Evaluation Count:160
yes
Evaluation Count:320
evaluated: childPosition < destinationChild
TRUEFALSE
yes
Evaluation Count:28
yes
Evaluation Count:132
28-832
436 continue;
executed: continue;
Execution Count:28
28
437 -
438 if (sameParent && !movingUp && childPosition < srcFirst )
evaluated: sameParent
TRUEFALSE
yes
Evaluation Count:452
yes
Evaluation Count:832
evaluated: !movingUp
TRUEFALSE
yes
Evaluation Count:320
yes
Evaluation Count:132
evaluated: childPosition < srcFirst
TRUEFALSE
yes
Evaluation Count:48
yes
Evaluation Count:272
48-832
439 continue;
executed: continue;
Execution Count:48
48
440 -
441 if (!sameParent && childPosition < srcFirst)
evaluated: !sameParent
TRUEFALSE
yes
Evaluation Count:832
yes
Evaluation Count:404
evaluated: childPosition < srcFirst
TRUEFALSE
yes
Evaluation Count:386
yes
Evaluation Count:446
386-832
442 continue;
executed: continue;
Execution Count:386
386
443 -
444 if (sameParent && (childPosition > srcLast) && (childPosition >= destinationChild ))
evaluated: sameParent
TRUEFALSE
yes
Evaluation Count:404
yes
Evaluation Count:446
evaluated: (childPosition > srcLast)
TRUEFALSE
yes
Evaluation Count:192
yes
Evaluation Count:212
evaluated: (childPosition >= destinationChild )
TRUEFALSE
yes
Evaluation Count:48
yes
Evaluation Count:144
48-446
445 continue;
executed: continue;
Execution Count:48
48
446 -
447 if ((childPosition <= srcLast) && (childPosition >= srcFirst)) {
evaluated: (childPosition <= srcLast)
TRUEFALSE
yes
Evaluation Count:463
yes
Evaluation Count:339
evaluated: (childPosition >= srcFirst)
TRUEFALSE
yes
Evaluation Count:387
yes
Evaluation Count:76
76-463
448 persistent_moved_explicitly.append(data); -
449 } else {
executed: }
Execution Count:387
387
450 persistent_moved_in_source.append(data); -
451 }
executed: }
Execution Count:415
415
452 } -
453 persistent.moved.push(persistent_moved_explicitly); -
454 persistent.moved.push(persistent_moved_in_source); -
455 persistent.moved.push(persistent_moved_in_destination); -
456}
executed: }
Execution Count:64
64
457void QAbstractItemModelPrivate::movePersistentIndexes(QVector<QPersistentModelIndexData *> indexes, int change, const QModelIndex &parent, Qt::Orientation orientation) -
458{ -
459 QVector<QPersistentModelIndexData *>::const_iterator it; -
460 const QVector<QPersistentModelIndexData *>::const_iterator begin = indexes.constBegin(); -
461 const QVector<QPersistentModelIndexData *>::const_iterator end = indexes.constEnd(); -
462 -
463 for (it = begin; it != end; ++it)
evaluated: it != end
TRUEFALSE
yes
Evaluation Count:1178
yes
Evaluation Count:192
192-1178
464 { -
465 QPersistentModelIndexData *data = *it; -
466 -
467 int row = data->index.row(); -
468 int column = data->index.column(); -
469 -
470 if (Qt::Vertical == orientation)
partially evaluated: Qt::Vertical == orientation
TRUEFALSE
yes
Evaluation Count:1178
no
Evaluation Count:0
0-1178
471 row += change;
executed: row += change;
Execution Count:1178
1178
472 else -
473 column += change;
never executed: column += change;
0
474 -
475 persistent.indexes.erase(persistent.indexes.find(data->index)); -
476 data->index = q_func()->index(row, column, parent); -
477 if (data->index.isValid()) {
partially evaluated: data->index.isValid()
TRUEFALSE
yes
Evaluation Count:1178
no
Evaluation Count:0
0-1178
478 persistent.insertMultiAtEnd(data->index, data); -
479 } else {
executed: }
Execution Count:1178
1178
480 QMessageLogger("itemmodels/qabstractitemmodel.cpp", 693, __PRETTY_FUNCTION__).warning() << "QAbstractItemModel::endMoveRows: Invalid index (" << row << "," << column << ") in model" << q_func(); -
481 }
never executed: }
0
482 } -
483}
executed: }
Execution Count:192
192
484 -
485void QAbstractItemModelPrivate::itemsMoved(const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationChild, Qt::Orientation orientation) -
486{ -
487 QVector<QPersistentModelIndexData *> moved_in_destination = persistent.moved.pop(); -
488 QVector<QPersistentModelIndexData *> moved_in_source = persistent.moved.pop(); -
489 QVector<QPersistentModelIndexData *> moved_explicitly = persistent.moved.pop(); -
490 -
491 const bool sameParent = (sourceParent == destinationParent); -
492 const bool movingUp = (sourceFirst > destinationChild); -
493 -
494 const int explicit_change = (!sameParent || movingUp) ? destinationChild - sourceFirst : destinationChild - sourceLast - 1 ;
evaluated: !sameParent
TRUEFALSE
yes
Evaluation Count:46
yes
Evaluation Count:18
evaluated: movingUp
TRUEFALSE
yes
Evaluation Count:10
yes
Evaluation Count:8
8-46
495 const int source_change = (!sameParent || !movingUp) ? -1*(sourceLast - sourceFirst + 1) : sourceLast - sourceFirst + 1 ;
evaluated: !sameParent
TRUEFALSE
yes
Evaluation Count:46
yes
Evaluation Count:18
evaluated: !movingUp
TRUEFALSE
yes
Evaluation Count:8
yes
Evaluation Count:10
8-46
496 const int destination_change = sourceLast - sourceFirst + 1; -
497 -
498 movePersistentIndexes(moved_explicitly, explicit_change, destinationParent, orientation); -
499 movePersistentIndexes(moved_in_source, source_change, sourceParent, orientation); -
500 movePersistentIndexes(moved_in_destination, destination_change, destinationParent, orientation); -
501}
executed: }
Execution Count:64
64
502 -
503void QAbstractItemModelPrivate::rowsAboutToBeRemoved(const QModelIndex &parent, -
504 int first, int last) -
505{ -
506 QVector<QPersistentModelIndexData *> persistent_moved; -
507 QVector<QPersistentModelIndexData *> persistent_invalidated; -
508 -
509 -
510 for (QHash<QModelIndex, QPersistentModelIndexData *>::const_iterator it = persistent.indexes.constBegin(); -
511 it != persistent.indexes.constEnd(); ++it) {
evaluated: it != persistent.indexes.constEnd()
TRUEFALSE
yes
Evaluation Count:2484
yes
Evaluation Count:1963
1963-2484
512 QPersistentModelIndexData *data = *it; -
513 bool level_changed = false; -
514 QModelIndex current = data->index; -
515 while (current.isValid()) {
evaluated: current.isValid()
TRUEFALSE
yes
Evaluation Count:2749
yes
Evaluation Count:121
121-2749
516 QModelIndex current_parent = current.parent(); -
517 if (current_parent == parent) {
evaluated: current_parent == parent
TRUEFALSE
yes
Evaluation Count:2363
yes
Evaluation Count:386
386-2363
518 if (!level_changed && current.row() > last)
evaluated: !level_changed
TRUEFALSE
yes
Evaluation Count:2313
yes
Evaluation Count:50
evaluated: current.row() > last
TRUEFALSE
yes
Evaluation Count:1071
yes
Evaluation Count:1242
50-2313
519 persistent_moved.append(data);
executed: persistent_moved.append(data);
Execution Count:1071
1071
520 else if (current.row() <= last && current.row() >= first)
partially evaluated: current.row() <= last
TRUEFALSE
yes
Evaluation Count:1292
no
Evaluation Count:0
evaluated: current.row() >= first
TRUEFALSE
yes
Evaluation Count:245
yes
Evaluation Count:1047
0-1292
521 persistent_invalidated.append(data);
executed: persistent_invalidated.append(data);
Execution Count:245
245
522 break;
executed: break;
Execution Count:2363
2363
523 } -
524 current = current_parent; -
525 level_changed = true; -
526 }
executed: }
Execution Count:386
386
527 }
executed: }
Execution Count:2484
2484
528 -
529 persistent.moved.push(persistent_moved); -
530 persistent.invalidated.push(persistent_invalidated); -
531}
executed: }
Execution Count:1963
1963
532 -
533void QAbstractItemModelPrivate::rowsRemoved(const QModelIndex &parent, -
534 int first, int last) -
535{ -
536 QVector<QPersistentModelIndexData *> persistent_moved = persistent.moved.pop(); -
537 int count = (last - first) + 1; -
538 for (QVector<QPersistentModelIndexData *>::const_iterator it = persistent_moved.constBegin(); -
539 it != persistent_moved.constEnd(); ++it) {
evaluated: it != persistent_moved.constEnd()
TRUEFALSE
yes
Evaluation Count:1071
yes
Evaluation Count:1963
1071-1963
540 QPersistentModelIndexData *data = *it; -
541 QModelIndex old = data->index; -
542 persistent.indexes.erase(persistent.indexes.find(old)); -
543 data->index = q_func()->index(old.row() - count, old.column(), parent); -
544 if (data->index.isValid()) {
partially evaluated: data->index.isValid()
TRUEFALSE
yes
Evaluation Count:1071
no
Evaluation Count:0
0-1071
545 persistent.insertMultiAtEnd(data->index, data); -
546 } else {
executed: }
Execution Count:1071
1071
547 QMessageLogger("itemmodels/qabstractitemmodel.cpp", 760, __PRETTY_FUNCTION__).warning() << "QAbstractItemModel::endRemoveRows: Invalid index (" << old.row() - count << ',' << old.column() << ") in model" << q_func(); -
548 }
never executed: }
0
549 } -
550 QVector<QPersistentModelIndexData *> persistent_invalidated = persistent.invalidated.pop(); -
551 for (QVector<QPersistentModelIndexData *>::const_iterator it = persistent_invalidated.constBegin(); -
552 it != persistent_invalidated.constEnd(); ++it) {
evaluated: it != persistent_invalidated.constEnd()
TRUEFALSE
yes
Evaluation Count:245
yes
Evaluation Count:1963
245-1963
553 QPersistentModelIndexData *data = *it; -
554 persistent.indexes.erase(persistent.indexes.find(data->index)); -
555 data->index = QModelIndex(); -
556 data->model = 0; -
557 }
executed: }
Execution Count:245
245
558}
executed: }
Execution Count:1963
1963
559 -
560void QAbstractItemModelPrivate::columnsAboutToBeInserted(const QModelIndex &parent, -
561 int first, int last) -
562{ -
563 QAbstractItemModel * const q = q_func(); -
564 (void)last;; -
565 QVector<QPersistentModelIndexData *> persistent_moved; -
566 if (first < q->columnCount(parent)) {
evaluated: first < q->columnCount(parent)
TRUEFALSE
yes
Evaluation Count:335
yes
Evaluation Count:6299
335-6299
567 for (QHash<QModelIndex, QPersistentModelIndexData *>::const_iterator it = persistent.indexes.constBegin(); -
568 it != persistent.indexes.constEnd(); ++it) {
evaluated: it != persistent.indexes.constEnd()
TRUEFALSE
yes
Evaluation Count:51
yes
Evaluation Count:335
51-335
569 QPersistentModelIndexData *data = *it; -
570 const QModelIndex &index = data->index; -
571 if (index.column() >= first && index.isValid() && index.parent() == parent)
evaluated: index.column() >= first
TRUEFALSE
yes
Evaluation Count:26
yes
Evaluation Count:25
partially evaluated: index.isValid()
TRUEFALSE
yes
Evaluation Count:26
no
Evaluation Count:0
evaluated: index.parent() == parent
TRUEFALSE
yes
Evaluation Count:11
yes
Evaluation Count:15
0-26
572 persistent_moved.append(data);
executed: persistent_moved.append(data);
Execution Count:11
11
573 }
executed: }
Execution Count:51
51
574 }
executed: }
Execution Count:335
335
575 persistent.moved.push(persistent_moved); -
576}
executed: }
Execution Count:6634
6634
577 -
578void QAbstractItemModelPrivate::columnsInserted(const QModelIndex &parent, -
579 int first, int last) -
580{ -
581 QVector<QPersistentModelIndexData *> persistent_moved = persistent.moved.pop(); -
582 int count = (last - first) + 1; -
583 for (QVector<QPersistentModelIndexData *>::const_iterator it = persistent_moved.constBegin(); -
584 it != persistent_moved.constEnd(); ++it) {
evaluated: it != persistent_moved.constEnd()
TRUEFALSE
yes
Evaluation Count:11
yes
Evaluation Count:6634
11-6634
585 QPersistentModelIndexData *data = *it; -
586 QModelIndex old = data->index; -
587 persistent.indexes.erase(persistent.indexes.find(old)); -
588 data->index = q_func()->index(old.row(), old.column() + count, parent); -
589 if (data->index.isValid()) {
partially evaluated: data->index.isValid()
TRUEFALSE
yes
Evaluation Count:11
no
Evaluation Count:0
0-11
590 persistent.insertMultiAtEnd(data->index, data); -
591 } else {
executed: }
Execution Count:11
11
592 QMessageLogger("itemmodels/qabstractitemmodel.cpp", 805, __PRETTY_FUNCTION__).warning() << "QAbstractItemModel::endInsertColumns: Invalid index (" << old.row() << ',' << old.column() + count << ") in model" << q_func(); -
593 }
never executed: }
0
594 } -
595}
executed: }
Execution Count:6634
6634
596 -
597void QAbstractItemModelPrivate::columnsAboutToBeRemoved(const QModelIndex &parent, -
598 int first, int last) -
599{ -
600 QVector<QPersistentModelIndexData *> persistent_moved; -
601 QVector<QPersistentModelIndexData *> persistent_invalidated; -
602 -
603 -
604 for (QHash<QModelIndex, QPersistentModelIndexData *>::const_iterator it = persistent.indexes.constBegin(); -
605 it != persistent.indexes.constEnd(); ++it) {
evaluated: it != persistent.indexes.constEnd()
TRUEFALSE
yes
Evaluation Count:95
yes
Evaluation Count:201
95-201
606 QPersistentModelIndexData *data = *it; -
607 bool level_changed = false; -
608 QModelIndex current = data->index; -
609 while (current.isValid()) {
evaluated: current.isValid()
TRUEFALSE
yes
Evaluation Count:96
yes
Evaluation Count:35
35-96
610 QModelIndex current_parent = current.parent(); -
611 if (current_parent == parent) {
evaluated: current_parent == parent
TRUEFALSE
yes
Evaluation Count:60
yes
Evaluation Count:36
36-60
612 if (!level_changed && current.column() > last)
evaluated: !level_changed
TRUEFALSE
yes
Evaluation Count:59
yes
Evaluation Count:1
evaluated: current.column() > last
TRUEFALSE
yes
Evaluation Count:15
yes
Evaluation Count:44
1-59
613 persistent_moved.append(data);
executed: persistent_moved.append(data);
Execution Count:15
15
614 else if (current.column() <= last && current.column() >= first)
partially evaluated: current.column() <= last
TRUEFALSE
yes
Evaluation Count:45
no
Evaluation Count:0
evaluated: current.column() >= first
TRUEFALSE
yes
Evaluation Count:24
yes
Evaluation Count:21
0-45
615 persistent_invalidated.append(data);
executed: persistent_invalidated.append(data);
Execution Count:24
24
616 break;
executed: break;
Execution Count:60
60
617 } -
618 current = current_parent; -
619 level_changed = true; -
620 }
executed: }
Execution Count:36
36
621 }
executed: }
Execution Count:95
95
622 -
623 persistent.moved.push(persistent_moved); -
624 persistent.invalidated.push(persistent_invalidated); -
625 -
626}
executed: }
Execution Count:201
201
627 -
628void QAbstractItemModelPrivate::columnsRemoved(const QModelIndex &parent, -
629 int first, int last) -
630{ -
631 QVector<QPersistentModelIndexData *> persistent_moved = persistent.moved.pop(); -
632 int count = (last - first) + 1; -
633 for (QVector<QPersistentModelIndexData *>::const_iterator it = persistent_moved.constBegin(); -
634 it != persistent_moved.constEnd(); ++it) {
evaluated: it != persistent_moved.constEnd()
TRUEFALSE
yes
Evaluation Count:15
yes
Evaluation Count:201
15-201
635 QPersistentModelIndexData *data = *it; -
636 QModelIndex old = data->index; -
637 persistent.indexes.erase(persistent.indexes.find(old)); -
638 data->index = q_func()->index(old.row(), old.column() - count, parent); -
639 if (data->index.isValid()) {
partially evaluated: data->index.isValid()
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
640 persistent.insertMultiAtEnd(data->index, data); -
641 } else {
executed: }
Execution Count:15
15
642 QMessageLogger("itemmodels/qabstractitemmodel.cpp", 855, __PRETTY_FUNCTION__).warning() << "QAbstractItemModel::endRemoveColumns: Invalid index (" << old.row() << ',' << old.column() - count << ") in model" << q_func(); -
643 }
never executed: }
0
644 } -
645 QVector<QPersistentModelIndexData *> persistent_invalidated = persistent.invalidated.pop(); -
646 for (QVector<QPersistentModelIndexData *>::const_iterator it = persistent_invalidated.constBegin(); -
647 it != persistent_invalidated.constEnd(); ++it) {
evaluated: it != persistent_invalidated.constEnd()
TRUEFALSE
yes
Evaluation Count:24
yes
Evaluation Count:201
24-201
648 QPersistentModelIndexData *data = *it; -
649 persistent.indexes.erase(persistent.indexes.find(data->index)); -
650 data->index = QModelIndex(); -
651 data->model = 0; -
652 }
executed: }
Execution Count:24
24
653}
executed: }
Execution Count:201
201
654QAbstractItemModel::QAbstractItemModel(QObject *parent) -
655 : QObject(*new QAbstractItemModelPrivate, parent) -
656{ -
657}
executed: }
Execution Count:1399
1399
658 -
659 -
660 -
661 -
662QAbstractItemModel::QAbstractItemModel(QAbstractItemModelPrivate &dd, QObject *parent) -
663 : QObject(dd, parent) -
664{ -
665}
executed: }
Execution Count:2886
2886
666 -
667 -
668 -
669 -
670QAbstractItemModel::~QAbstractItemModel() -
671{ -
672 d_func()->invalidatePersistentIndexes(); -
673}
executed: }
Execution Count:4104
4104
674bool QAbstractItemModel::hasIndex(int row, int column, const QModelIndex &parent) const -
675{ -
676 if (row < 0 || column < 0)
evaluated: row < 0
TRUEFALSE
yes
Evaluation Count:895
yes
Evaluation Count:170440
evaluated: column < 0
TRUEFALSE
yes
Evaluation Count:1330
yes
Evaluation Count:169110
895-170440
677 return false;
executed: return false;
Execution Count:2225
2225
678 return row < rowCount(parent) && column < columnCount(parent);
executed: return row < rowCount(parent) && column < columnCount(parent);
Execution Count:169110
169110
679} -
680bool QAbstractItemModel::hasChildren(const QModelIndex &parent) const -
681{ -
682 return (rowCount(parent) > 0) && (columnCount(parent) > 0);
executed: return (rowCount(parent) > 0) && (columnCount(parent) > 0);
Execution Count:2129
2129
683} -
684QModelIndex QAbstractItemModel::sibling(int row, int column, const QModelIndex &idx) const -
685{ -
686 return (row == idx.row() && column == idx.column()) ? idx : index(row, column, parent(idx));
executed: return (row == idx.row() && column == idx.column()) ? idx : index(row, column, parent(idx));
Execution Count:14074
14074
687} -
688QMap<int, QVariant> QAbstractItemModel::itemData(const QModelIndex &index) const -
689{ -
690 QMap<int, QVariant> roles; -
691 for (int i = 0; i < Qt::UserRole; ++i) {
evaluated: i < Qt::UserRole
TRUEFALSE
yes
Evaluation Count:110336
yes
Evaluation Count:431
431-110336
692 QVariant variantData = data(index, i); -
693 if (variantData.isValid())
evaluated: variantData.isValid()
TRUEFALSE
yes
Evaluation Count:101120
yes
Evaluation Count:9216
9216-101120
694 roles.insert(i, variantData);
executed: roles.insert(i, variantData);
Execution Count:101120
101120
695 }
executed: }
Execution Count:110336
110336
696 return roles;
executed: return roles;
Execution Count:431
431
697} -
698bool QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role) -
699{ -
700 (void)index;; -
701 (void)value;; -
702 (void)role;; -
703 return false;
executed: return false;
Execution Count:25
25
704} -
705bool QAbstractItemModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles) -
706{ -
707 bool b = true; -
708 for (QMap<int, QVariant>::ConstIterator it = roles.begin(); it != roles.end(); ++it)
evaluated: it != roles.end()
TRUEFALSE
yes
Evaluation Count:11776
yes
Evaluation Count:56
56-11776
709 b = b && setData(index, it.value(), it.key());
executed: b = b && setData(index, it.value(), it.key());
Execution Count:11776
partially evaluated: b
TRUEFALSE
yes
Evaluation Count:11776
no
Evaluation Count:0
partially evaluated: setData(index, it.value(), it.key())
TRUEFALSE
yes
Evaluation Count:11776
no
Evaluation Count:0
0-11776
710 return b;
executed: return b;
Execution Count:56
56
711} -
712 -
713 -
714 -
715 -
716 -
717 -
718 -
719QStringList QAbstractItemModel::mimeTypes() const -
720{ -
721 QStringList types; -
722 types << QLatin1String("application/x-qabstractitemmodeldatalist"); -
723 return types;
executed: return types;
Execution Count:145
145
724} -
725QMimeData *QAbstractItemModel::mimeData(const QModelIndexList &indexes) const -
726{ -
727 if (indexes.count() <= 0)
partially evaluated: indexes.count() <= 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
728 return 0;
never executed: return 0;
0
729 QStringList types = mimeTypes(); -
730 if (types.isEmpty())
partially evaluated: types.isEmpty()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
731 return 0;
never executed: return 0;
0
732 QMimeData *data = new QMimeData(); -
733 QString format = types.at(0); -
734 QByteArray encoded; -
735 QDataStream stream(&encoded, QIODevice::WriteOnly); -
736 encodeData(indexes, stream); -
737 data->setData(format, encoded); -
738 return data;
executed: return data;
Execution Count:12
12
739} -
740bool QAbstractItemModel::canDropMimeData(const QMimeData *data, Qt::DropAction action, -
741 int row, int column, -
742 const QModelIndex &parent) const -
743{ -
744 (void)data; -
745 (void)action; -
746 (void)row; -
747 (void)column; -
748 (void)parent; -
749 return true;
never executed: return true;
0
750} -
751bool QAbstractItemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, -
752 int row, int column, const QModelIndex &parent) -
753{ -
754 -
755 if (!data || !(action == Qt::CopyAction || action == Qt::MoveAction))
partially evaluated: !data
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
partially evaluated: action == Qt::CopyAction
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
never evaluated: action == Qt::MoveAction
0-12
756 return false;
never executed: return false;
0
757 -
758 QStringList types = mimeTypes(); -
759 if (types.isEmpty())
partially evaluated: types.isEmpty()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
760 return false;
never executed: return false;
0
761 QString format = types.at(0); -
762 if (!data->hasFormat(format))
partially evaluated: !data->hasFormat(format)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
763 return false;
never executed: return false;
0
764 if (row > rowCount(parent))
evaluated: row > rowCount(parent)
TRUEFALSE
yes
Evaluation Count:4
yes
Evaluation Count:8
4-8
765 row = rowCount(parent);
executed: row = rowCount(parent);
Execution Count:4
4
766 if (row == -1)
partially evaluated: row == -1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
767 row = rowCount(parent);
never executed: row = rowCount(parent);
0
768 if (column == -1)
partially evaluated: column == -1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
769 column = 0;
never executed: column = 0;
0
770 -
771 QByteArray encoded = data->data(format); -
772 QDataStream stream(&encoded, QIODevice::ReadOnly); -
773 return decodeData(row, column, parent, stream);
executed: return decodeData(row, column, parent, stream);
Execution Count:12
12
774} -
775Qt::DropActions QAbstractItemModel::supportedDropActions() const -
776{ -
777 return Qt::CopyAction;
executed: return Qt::CopyAction;
Execution Count:91
91
778} -
779Qt::DropActions QAbstractItemModel::supportedDragActions() const -
780{ -
781 const QAbstractItemModelPrivate * const d = d_func(); -
782 if (d->supportedDragActions != -1)
partially evaluated: d->supportedDragActions != -1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
783 return d->supportedDragActions;
never executed: return d->supportedDragActions;
0
784 return supportedDropActions();
executed: return supportedDropActions();
Execution Count:1
1
785} -
786 -
787 -
788 -
789 -
790void QAbstractItemModel::doSetSupportedDragActions(Qt::DropActions actions) -
791{ -
792 QAbstractItemModelPrivate * const d = d_func(); -
793 d->supportedDragActions = actions; -
794}
never executed: }
0
795bool QAbstractItemModel::insertRows(int, int, const QModelIndex &) -
796{ -
797 return false;
never executed: return false;
0
798} -
799bool QAbstractItemModel::insertColumns(int, int, const QModelIndex &) -
800{ -
801 return false;
executed: return false;
Execution Count:76
76
802} -
803bool QAbstractItemModel::removeRows(int, int, const QModelIndex &) -
804{ -
805 return false;
never executed: return false;
0
806} -
807bool QAbstractItemModel::removeColumns(int, int, const QModelIndex &) -
808{ -
809 return false;
executed: return false;
Execution Count:132
132
810} -
811bool QAbstractItemModel::moveRows(const QModelIndex &, int , int , const QModelIndex &, int) -
812{ -
813 return false;
never executed: return false;
0
814} -
815bool QAbstractItemModel::moveColumns(const QModelIndex &, int , int , const QModelIndex &, int) -
816{ -
817 return false;
never executed: return false;
0
818} -
819void QAbstractItemModel::fetchMore(const QModelIndex &) -
820{ -
821 -
822} -
823bool QAbstractItemModel::canFetchMore(const QModelIndex &) const -
824{ -
825 return false;
executed: return false;
Execution Count:5438
5438
826} -
827Qt::ItemFlags QAbstractItemModel::flags(const QModelIndex &index) const -
828{ -
829 const QAbstractItemModelPrivate * const d = d_func(); -
830 if (!d->indexValid(index))
evaluated: !d->indexValid(index)
TRUEFALSE
yes
Evaluation Count:35
yes
Evaluation Count:26070
35-26070
831 return 0;
executed: return 0;
Execution Count:35
35
832 -
833 return Qt::ItemIsSelectable|Qt::ItemIsEnabled;
executed: return Qt::ItemIsSelectable|Qt::ItemIsEnabled;
Execution Count:26070
26070
834} -
835 -
836 -
837 -
838 -
839 -
840 -
841void QAbstractItemModel::sort(int column, Qt::SortOrder order) -
842{ -
843 (void)column;; -
844 (void)order;; -
845 -
846}
executed: }
Execution Count:352
352
847QModelIndex QAbstractItemModel::buddy(const QModelIndex &index) const -
848{ -
849 return index;
executed: return index;
Execution Count:18122
18122
850} -
851QModelIndexList QAbstractItemModel::match(const QModelIndex &start, int role, -
852 const QVariant &value, int hits, -
853 Qt::MatchFlags flags) const -
854{ -
855 QModelIndexList result; -
856 uint matchType = flags & 0x0F; -
857 Qt::CaseSensitivity cs = flags & Qt::MatchCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive;
evaluated: flags & Qt::MatchCaseSensitive
TRUEFALSE
yes
Evaluation Count:21
yes
Evaluation Count:190
21-190
858 bool recurse = flags & Qt::MatchRecursive; -
859 bool wrap = flags & Qt::MatchWrap; -
860 bool allHits = (hits == -1); -
861 QString text; -
862 QModelIndex p = parent(start); -
863 int from = start.row(); -
864 int to = rowCount(p); -
865 -
866 -
867 for (int i = 0; (wrap && i < 2) || (!wrap && i < 1); ++i) {
evaluated: wrap
TRUEFALSE
yes
Evaluation Count:468
yes
Evaluation Count:110
evaluated: i < 2
TRUEFALSE
yes
Evaluation Count:312
yes
Evaluation Count:156
evaluated: !wrap
TRUEFALSE
yes
Evaluation Count:110
yes
Evaluation Count:156
evaluated: i < 1
TRUEFALSE
yes
Evaluation Count:55
yes
Evaluation Count:55
55-468
868 for (int r = from; (r < to) && (allHits || result.count() < hits); ++r) {
evaluated: (r < to)
TRUEFALSE
yes
Evaluation Count:2292
yes
Evaluation Count:338
evaluated: allHits
TRUEFALSE
yes
Evaluation Count:84
yes
Evaluation Count:2208
evaluated: result.count() < hits
TRUEFALSE
yes
Evaluation Count:2179
yes
Evaluation Count:29
29-2292
869 QModelIndex idx = index(r, start.column(), p); -
870 if (!idx.isValid())
evaluated: !idx.isValid()
TRUEFALSE
yes
Evaluation Count:1854
yes
Evaluation Count:409
409-1854
871 continue;
executed: continue;
Execution Count:1854
1854
872 QVariant v = data(idx, role); -
873 -
874 if (matchType == Qt::MatchExactly) {
evaluated: matchType == Qt::MatchExactly
TRUEFALSE
yes
Evaluation Count:91
yes
Evaluation Count:318
91-318
875 if (value == v)
evaluated: value == v
TRUEFALSE
yes
Evaluation Count:23
yes
Evaluation Count:68
23-68
876 result.append(idx);
executed: result.append(idx);
Execution Count:23
23
877 } else {
executed: }
Execution Count:91
91
878 if (text.isEmpty())
evaluated: text.isEmpty()
TRUEFALSE
yes
Evaluation Count:117
yes
Evaluation Count:201
117-201
879 text = value.toString();
executed: text = value.toString();
Execution Count:117
117
880 QString t = v.toString(); -
881 switch (matchType) { -
882 case Qt::MatchRegExp: -
883 if (QRegExp(text, cs).exactMatch(t))
evaluated: QRegExp(text, cs).exactMatch(t)
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:6
2-6
884 result.append(idx);
executed: result.append(idx);
Execution Count:2
2
885 break;
executed: break;
Execution Count:8
8
886 case Qt::MatchWildcard: -
887 if (QRegExp(text, cs, QRegExp::Wildcard).exactMatch(t))
evaluated: QRegExp(text, cs, QRegExp::Wildcard).exactMatch(t)
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:1
1-3
888 result.append(idx);
executed: result.append(idx);
Execution Count:3
3
889 break;
executed: break;
Execution Count:4
4
890 case Qt::MatchStartsWith: -
891 if (t.startsWith(text, cs))
evaluated: t.startsWith(text, cs)
TRUEFALSE
yes
Evaluation Count:16
yes
Evaluation Count:274
16-274
892 result.append(idx);
executed: result.append(idx);
Execution Count:16
16
893 break;
executed: break;
Execution Count:290
290
894 case Qt::MatchEndsWith: -
895 if (t.endsWith(text, cs))
evaluated: t.endsWith(text, cs)
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:2
2
896 result.append(idx);
executed: result.append(idx);
Execution Count:2
2
897 break;
executed: break;
Execution Count:4
4
898 case Qt::MatchFixedString: -
899 if (t.compare(text, cs) == 0)
evaluated: t.compare(text, cs) == 0
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:6
2-6
900 result.append(idx);
executed: result.append(idx);
Execution Count:2
2
901 break;
executed: break;
Execution Count:8
8
902 case Qt::MatchContains: -
903 default: -
904 if (t.contains(text, cs))
evaluated: t.contains(text, cs)
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:1
1-3
905 result.append(idx);
executed: result.append(idx);
Execution Count:3
3
906 }
executed: }
Execution Count:4
4
907 }
executed: }
Execution Count:318
318
908 if (recurse && hasChildren(idx)) {
evaluated: recurse
TRUEFALSE
yes
Evaluation Count:40
yes
Evaluation Count:369
evaluated: hasChildren(idx)
TRUEFALSE
yes
Evaluation Count:13
yes
Evaluation Count:27
13-369
909 result += match(index(0, idx.column(), idx), role, -
910 (text.isEmpty() ? value : text), -
911 (allHits ? -1 : hits - result.count()), flags); -
912 }
executed: }
Execution Count:13
13
913 }
executed: }
Execution Count:409
409
914 -
915 from = 0; -
916 to = start.row(); -
917 }
executed: }
Execution Count:367
367
918 return result;
executed: return result;
Execution Count:211
211
919} -
920 -
921 -
922 -
923 -
924 -
925 -
926 -
927QSize QAbstractItemModel::span(const QModelIndex &) const -
928{ -
929 return QSize(1, 1);
executed: return QSize(1, 1);
Execution Count:122
122
930} -
931void QAbstractItemModel::doSetRoleNames(const QHash<int,QByteArray> &roleNames) -
932{ -
933 QAbstractItemModelPrivate * const d = d_func(); -
934 d->roleNames = roleNames; -
935}
executed: }
Execution Count:2
2
936QHash<int,QByteArray> QAbstractItemModel::roleNames() const -
937{ -
938 const QAbstractItemModelPrivate * const d = d_func(); -
939 return d->roleNames;
executed: return d->roleNames;
Execution Count:1596
1596
940} -
941bool QAbstractItemModel::submit() -
942{ -
943 return true;
executed: return true;
Execution Count:2450
2450
944} -
945void QAbstractItemModel::revert() -
946{ -
947 -
948} -
949QVariant QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const -
950{ -
951 (void)orientation;; -
952 if (role == Qt::DisplayRole)
evaluated: role == Qt::DisplayRole
TRUEFALSE
yes
Evaluation Count:16685
yes
Evaluation Count:54442
16685-54442
953 return section + 1;
executed: return section + 1;
Execution Count:16685
16685
954 return QVariant();
executed: return QVariant();
Execution Count:54442
54442
955} -
956bool QAbstractItemModel::setHeaderData(int section, Qt::Orientation orientation, -
957 const QVariant &value, int role) -
958{ -
959 (void)section;; -
960 (void)orientation;; -
961 (void)value;; -
962 (void)role;; -
963 return false;
executed: return false;
Execution Count:84
84
964} -
965void QAbstractItemModel::encodeData(const QModelIndexList &indexes, QDataStream &stream) const -
966{ -
967 QModelIndexList::ConstIterator it = indexes.begin(); -
968 for (; it != indexes.end(); ++it)
evaluated: it != indexes.end()
TRUEFALSE
yes
Evaluation Count:46
yes
Evaluation Count:12
12-46
969 stream << (*it).row() << (*it).column() << itemData(*it);
executed: stream << (*it).row() << (*it).column() << itemData(*it);
Execution Count:46
46
970}
executed: }
Execution Count:12
12
971 -
972 -
973 -
974 -
975bool QAbstractItemModel::decodeData(int row, int column, const QModelIndex &parent, -
976 QDataStream &stream) -
977{ -
978 int top = 2147483647; -
979 int left = 2147483647; -
980 int bottom = 0; -
981 int right = 0; -
982 QVector<int> rows, columns; -
983 QVector<QMap<int, QVariant> > data; -
984 -
985 while (!stream.atEnd()) {
evaluated: !stream.atEnd()
TRUEFALSE
yes
Evaluation Count:46
yes
Evaluation Count:12
12-46
986 int r, c; -
987 QMap<int, QVariant> v; -
988 stream >> r >> c >> v; -
989 rows.append(r); -
990 columns.append(c); -
991 data.append(v); -
992 top = qMin(r, top); -
993 left = qMin(c, left); -
994 bottom = qMax(r, bottom); -
995 right = qMax(c, right); -
996 }
executed: }
Execution Count:46
46
997 -
998 -
999 -
1000 int dragRowCount = 0; -
1001 int dragColumnCount = right - left + 1; -
1002 -
1003 -
1004 QVector<int> rowsToInsert(bottom + 1); -
1005 for (int i = 0; i < rows.count(); ++i)
evaluated: i < rows.count()
TRUEFALSE
yes
Evaluation Count:46
yes
Evaluation Count:12
12-46
1006 rowsToInsert[rows.at(i)] = 1;
executed: rowsToInsert[rows.at(i)] = 1;
Execution Count:46
46
1007 for (int i = 0; i < rowsToInsert.count(); ++i) {
evaluated: i < rowsToInsert.count()
TRUEFALSE
yes
Evaluation Count:24
yes
Evaluation Count:12
12-24
1008 if (rowsToInsert[i] == 1){
evaluated: rowsToInsert[i] == 1
TRUEFALSE
yes
Evaluation Count:22
yes
Evaluation Count:2
2-22
1009 rowsToInsert[i] = dragRowCount; -
1010 ++dragRowCount; -
1011 }
executed: }
Execution Count:22
22
1012 }
executed: }
Execution Count:24
24
1013 for (int i = 0; i < rows.count(); ++i)
evaluated: i < rows.count()
TRUEFALSE
yes
Evaluation Count:46
yes
Evaluation Count:12
12-46
1014 rows[i] = top + rowsToInsert[rows[i]];
executed: rows[i] = top + rowsToInsert[rows[i]];
Execution Count:46
46
1015 -
1016 QBitArray isWrittenTo(dragRowCount * dragColumnCount); -
1017 -
1018 -
1019 int colCount = columnCount(parent); -
1020 if (colCount == 0) {
partially evaluated: colCount == 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
1021 insertColumns(colCount, dragColumnCount - colCount, parent); -
1022 colCount = columnCount(parent); -
1023 }
never executed: }
0
1024 insertRows(row, dragRowCount, parent); -
1025 -
1026 row = qMax(0, row); -
1027 column = qMax(0, column); -
1028 -
1029 QVector<QPersistentModelIndex> newIndexes(data.size()); -
1030 -
1031 for (int j = 0; j < data.size(); ++j) {
evaluated: j < data.size()
TRUEFALSE
yes
Evaluation Count:46
yes
Evaluation Count:12
12-46
1032 int relativeRow = rows.at(j) - top; -
1033 int relativeColumn = columns.at(j) - left; -
1034 int destinationRow = relativeRow + row; -
1035 int destinationColumn = relativeColumn + column; -
1036 int flat = (relativeRow * dragColumnCount) + relativeColumn; -
1037 -
1038 if (destinationColumn >= colCount || isWrittenTo.testBit(flat)) {
evaluated: destinationColumn >= colCount
TRUEFALSE
yes
Evaluation Count:9
yes
Evaluation Count:37
evaluated: isWrittenTo.testBit(flat)
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:34
3-37
1039 destinationColumn = qBound(column, destinationColumn, colCount - 1); -
1040 destinationRow = row + dragRowCount; -
1041 insertRows(row + dragRowCount, 1, parent); -
1042 flat = (dragRowCount * dragColumnCount) + relativeColumn; -
1043 isWrittenTo.resize(++dragRowCount * dragColumnCount); -
1044 }
executed: }
Execution Count:12
12
1045 if (!isWrittenTo.testBit(flat)) {
partially evaluated: !isWrittenTo.testBit(flat)
TRUEFALSE
yes
Evaluation Count:46
no
Evaluation Count:0
0-46
1046 newIndexes[j] = index(destinationRow, destinationColumn, parent); -
1047 isWrittenTo.setBit(flat); -
1048 }
executed: }
Execution Count:46
46
1049 }
executed: }
Execution Count:46
46
1050 -
1051 for(int k = 0; k < newIndexes.size(); k++) {
evaluated: k < newIndexes.size()
TRUEFALSE
yes
Evaluation Count:46
yes
Evaluation Count:12
12-46
1052 if (newIndexes.at(k).isValid())
partially evaluated: newIndexes.at(k).isValid()
TRUEFALSE
yes
Evaluation Count:46
no
Evaluation Count:0
0-46
1053 setItemData(newIndexes.at(k), data.at(k));
executed: setItemData(newIndexes.at(k), data.at(k));
Execution Count:46
46
1054 }
executed: }
Execution Count:46
46
1055 -
1056 return true;
executed: return true;
Execution Count:12
12
1057} -
1058void QAbstractItemModel::beginInsertRows(const QModelIndex &parent, int first, int last) -
1059{ -
1060 qt_noop(); -
1061 qt_noop(); -
1062 QAbstractItemModelPrivate * const d = d_func(); -
1063 d->changes.push(QAbstractItemModelPrivate::Change(parent, first, last)); -
1064 rowsAboutToBeInserted(parent, first, last, QPrivateSignal()); -
1065 d->rowsAboutToBeInserted(parent, first, last); -
1066}
executed: }
Execution Count:105800
105800
1067void QAbstractItemModel::endInsertRows() -
1068{ -
1069 QAbstractItemModelPrivate * const d = d_func(); -
1070 QAbstractItemModelPrivate::Change change = d->changes.pop(); -
1071 d->rowsInserted(change.parent, change.first, change.last); -
1072 rowsInserted(change.parent, change.first, change.last, QPrivateSignal()); -
1073}
executed: }
Execution Count:105800
105800
1074void QAbstractItemModel::beginRemoveRows(const QModelIndex &parent, int first, int last) -
1075{ -
1076 qt_noop(); -
1077 qt_noop(); -
1078 QAbstractItemModelPrivate * const d = d_func(); -
1079 d->changes.push(QAbstractItemModelPrivate::Change(parent, first, last)); -
1080 rowsAboutToBeRemoved(parent, first, last, QPrivateSignal()); -
1081 d->rowsAboutToBeRemoved(parent, first, last); -
1082}
executed: }
Execution Count:1937
1937
1083void QAbstractItemModel::endRemoveRows() -
1084{ -
1085 QAbstractItemModelPrivate * const d = d_func(); -
1086 QAbstractItemModelPrivate::Change change = d->changes.pop(); -
1087 d->rowsRemoved(change.parent, change.first, change.last); -
1088 rowsRemoved(change.parent, change.first, change.last, QPrivateSignal()); -
1089}
executed: }
Execution Count:1937
1937
1090bool QAbstractItemModelPrivate::allowMove(const QModelIndex &srcParent, int start, int end, const QModelIndex &destinationParent, int destinationStart, Qt::Orientation orientation) -
1091{ -
1092 -
1093 if (destinationParent == srcParent)
evaluated: destinationParent == srcParent
TRUEFALSE
yes
Evaluation Count:43
yes
Evaluation Count:106
43-106
1094 return !(destinationStart >= start && destinationStart <= end + 1);
executed: return !(destinationStart >= start && destinationStart <= end + 1);
Execution Count:43
43
1095 -
1096 QModelIndex destinationAncestor = destinationParent; -
1097 int pos = (Qt::Vertical == orientation) ? destinationAncestor.row() : destinationAncestor.column();
partially evaluated: (Qt::Vertical == orientation)
TRUEFALSE
yes
Evaluation Count:106
no
Evaluation Count:0
0-106
1098 for(;;) { -
1099 if (destinationAncestor == srcParent) {
evaluated: destinationAncestor == srcParent
TRUEFALSE
yes
Evaluation Count:75
yes
Evaluation Count:270
75-270
1100 if (pos >= start && pos <= end)
evaluated: pos >= start
TRUEFALSE
yes
Evaluation Count:67
yes
Evaluation Count:8
evaluated: pos <= end
TRUEFALSE
yes
Evaluation Count:60
yes
Evaluation Count:7
7-67
1101 return false;
executed: return false;
Execution Count:60
60
1102 break;
executed: break;
Execution Count:15
15
1103 } -
1104 -
1105 if (!destinationAncestor.isValid())
evaluated: !destinationAncestor.isValid()
TRUEFALSE
yes
Evaluation Count:31
yes
Evaluation Count:239
31-239
1106 break;
executed: break;
Execution Count:31
31
1107 -
1108 pos = (Qt::Vertical == orientation) ? destinationAncestor.row() : destinationAncestor.column();
partially evaluated: (Qt::Vertical == orientation)
TRUEFALSE
yes
Evaluation Count:239
no
Evaluation Count:0
0-239
1109 destinationAncestor = destinationAncestor.parent(); -
1110 }
executed: }
Execution Count:239
239
1111 -
1112 return true;
executed: return true;
Execution Count:46
46
1113} -
1114bool QAbstractItemModel::beginMoveRows(const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationChild) -
1115{ -
1116 qt_noop(); -
1117 qt_noop(); -
1118 qt_noop(); -
1119 QAbstractItemModelPrivate * const d = d_func(); -
1120 -
1121 if (!d->allowMove(sourceParent, sourceFirst, sourceLast, destinationParent, destinationChild, Qt::Vertical)) {
evaluated: !d->allowMove(sourceParent, sourceFirst, sourceLast, destinationParent, destinationChild, Qt::Vertical)
TRUEFALSE
yes
Evaluation Count:85
yes
Evaluation Count:63
63-85
1122 return false;
executed: return false;
Execution Count:85
85
1123 } -
1124 -
1125 QAbstractItemModelPrivate::Change sourceChange(sourceParent, sourceFirst, sourceLast); -
1126 sourceChange.needsAdjust = sourceParent.isValid() && sourceParent.row() >= destinationChild && sourceParent.parent() == destinationParent;
evaluated: sourceParent.isValid()
TRUEFALSE
yes
Evaluation Count:39
yes
Evaluation Count:24
evaluated: sourceParent.row() >= destinationChild
TRUEFALSE
yes
Evaluation Count:25
yes
Evaluation Count:14
evaluated: sourceParent.parent() == destinationParent
TRUEFALSE
yes
Evaluation Count:10
yes
Evaluation Count:15
10-39
1127 d->changes.push(sourceChange); -
1128 int destinationLast = destinationChild + (sourceLast - sourceFirst); -
1129 QAbstractItemModelPrivate::Change destinationChange(destinationParent, destinationChild, destinationLast); -
1130 destinationChange.needsAdjust = destinationParent.isValid() && destinationParent.row() >= sourceLast && destinationParent.parent() == sourceParent;
evaluated: destinationParent.isValid()
TRUEFALSE
yes
Evaluation Count:37
yes
Evaluation Count:26
evaluated: destinationParent.row() >= sourceLast
TRUEFALSE
yes
Evaluation Count:16
yes
Evaluation Count:21
evaluated: destinationParent.parent() == sourceParent
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:9
7-37
1131 d->changes.push(destinationChange); -
1132 -
1133 rowsAboutToBeMoved(sourceParent, sourceFirst, sourceLast, destinationParent, destinationChild, QPrivateSignal()); -
1134 d->itemsAboutToBeMoved(sourceParent, sourceFirst, sourceLast, destinationParent, destinationChild, Qt::Vertical); -
1135 return true;
executed: return true;
Execution Count:63
63
1136} -
1137void QAbstractItemModel::endMoveRows() -
1138{ -
1139 QAbstractItemModelPrivate * const d = d_func(); -
1140 -
1141 QAbstractItemModelPrivate::Change insertChange = d->changes.pop(); -
1142 QAbstractItemModelPrivate::Change removeChange = d->changes.pop(); -
1143 -
1144 QModelIndex adjustedSource = removeChange.parent; -
1145 QModelIndex adjustedDestination = insertChange.parent; -
1146 -
1147 const int numMoved = removeChange.last - removeChange.first + 1; -
1148 if (insertChange.needsAdjust)
evaluated: insertChange.needsAdjust
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:56
7-56
1149 adjustedDestination = createIndex(adjustedDestination.row() - numMoved, adjustedDestination.column(), adjustedDestination.internalPointer());
executed: adjustedDestination = createIndex(adjustedDestination.row() - numMoved, adjustedDestination.column(), adjustedDestination.internalPointer());
Execution Count:7
7
1150 -
1151 if (removeChange.needsAdjust)
evaluated: removeChange.needsAdjust
TRUEFALSE
yes
Evaluation Count:10
yes
Evaluation Count:53
10-53
1152 adjustedSource = createIndex(adjustedSource.row() + numMoved, adjustedSource.column(), adjustedSource.internalPointer());
executed: adjustedSource = createIndex(adjustedSource.row() + numMoved, adjustedSource.column(), adjustedSource.internalPointer());
Execution Count:10
10
1153 -
1154 d->itemsMoved(adjustedSource, removeChange.first, removeChange.last, adjustedDestination, insertChange.first, Qt::Vertical); -
1155 -
1156 rowsMoved(adjustedSource, removeChange.first, removeChange.last, adjustedDestination, insertChange.first, QPrivateSignal()); -
1157}
executed: }
Execution Count:63
63
1158void QAbstractItemModel::beginInsertColumns(const QModelIndex &parent, int first, int last) -
1159{ -
1160 qt_noop(); -
1161 qt_noop(); -
1162 QAbstractItemModelPrivate * const d = d_func(); -
1163 d->changes.push(QAbstractItemModelPrivate::Change(parent, first, last)); -
1164 columnsAboutToBeInserted(parent, first, last, QPrivateSignal()); -
1165 d->columnsAboutToBeInserted(parent, first, last); -
1166}
executed: }
Execution Count:6634
6634
1167void QAbstractItemModel::endInsertColumns() -
1168{ -
1169 QAbstractItemModelPrivate * const d = d_func(); -
1170 QAbstractItemModelPrivate::Change change = d->changes.pop(); -
1171 d->columnsInserted(change.parent, change.first, change.last); -
1172 columnsInserted(change.parent, change.first, change.last, QPrivateSignal()); -
1173}
executed: }
Execution Count:6634
6634
1174void QAbstractItemModel::beginRemoveColumns(const QModelIndex &parent, int first, int last) -
1175{ -
1176 qt_noop(); -
1177 qt_noop(); -
1178 QAbstractItemModelPrivate * const d = d_func(); -
1179 d->changes.push(QAbstractItemModelPrivate::Change(parent, first, last)); -
1180 columnsAboutToBeRemoved(parent, first, last, QPrivateSignal()); -
1181 d->columnsAboutToBeRemoved(parent, first, last); -
1182}
executed: }
Execution Count:201
201
1183void QAbstractItemModel::endRemoveColumns() -
1184{ -
1185 QAbstractItemModelPrivate * const d = d_func(); -
1186 QAbstractItemModelPrivate::Change change = d->changes.pop(); -
1187 d->columnsRemoved(change.parent, change.first, change.last); -
1188 columnsRemoved(change.parent, change.first, change.last, QPrivateSignal()); -
1189}
executed: }
Execution Count:201
201
1190bool QAbstractItemModel::beginMoveColumns(const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationChild) -
1191{ -
1192 qt_noop(); -
1193 qt_noop(); -
1194 qt_noop(); -
1195 QAbstractItemModelPrivate * const d = d_func(); -
1196 -
1197 if (!d->allowMove(sourceParent, sourceFirst, sourceLast, destinationParent, destinationChild, Qt::Horizontal)) {
partially evaluated: !d->allowMove(sourceParent, sourceFirst, sourceLast, destinationParent, destinationChild, Qt::Horizontal)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1198 return false;
never executed: return false;
0
1199 } -
1200 -
1201 QAbstractItemModelPrivate::Change sourceChange(sourceParent, sourceFirst, sourceLast); -
1202 sourceChange.needsAdjust = sourceParent.isValid() && sourceParent.row() >= destinationChild && sourceParent.parent() == destinationParent;
partially evaluated: sourceParent.isValid()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never evaluated: sourceParent.row() >= destinationChild
never evaluated: sourceParent.parent() == destinationParent
0-1
1203 d->changes.push(sourceChange); -
1204 int destinationLast = destinationChild + (sourceLast - sourceFirst); -
1205 QAbstractItemModelPrivate::Change destinationChange(destinationParent, destinationChild, destinationLast); -
1206 destinationChange.needsAdjust = destinationParent.isValid() && destinationParent.row() >= sourceLast && destinationParent.parent() == sourceParent;
partially evaluated: destinationParent.isValid()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never evaluated: destinationParent.row() >= sourceLast
never evaluated: destinationParent.parent() == sourceParent
0-1
1207 d->changes.push(destinationChange); -
1208 -
1209 d->itemsAboutToBeMoved(sourceParent, sourceFirst, sourceLast, destinationParent, destinationChild, Qt::Horizontal); -
1210 -
1211 columnsAboutToBeMoved(sourceParent, sourceFirst, sourceLast, destinationParent, destinationChild, QPrivateSignal()); -
1212 return true;
executed: return true;
Execution Count:1
1
1213} -
1214void QAbstractItemModel::endMoveColumns() -
1215{ -
1216 QAbstractItemModelPrivate * const d = d_func(); -
1217 -
1218 QAbstractItemModelPrivate::Change insertChange = d->changes.pop(); -
1219 QAbstractItemModelPrivate::Change removeChange = d->changes.pop(); -
1220 -
1221 QModelIndex adjustedSource = removeChange.parent; -
1222 QModelIndex adjustedDestination = insertChange.parent; -
1223 -
1224 const int numMoved = removeChange.last - removeChange.first + 1; -
1225 if (insertChange.needsAdjust)
partially evaluated: insertChange.needsAdjust
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1226 adjustedDestination = createIndex(adjustedDestination.row(), adjustedDestination.column() - numMoved, adjustedDestination.internalPointer());
never executed: adjustedDestination = createIndex(adjustedDestination.row(), adjustedDestination.column() - numMoved, adjustedDestination.internalPointer());
0
1227 -
1228 if (removeChange.needsAdjust)
partially evaluated: removeChange.needsAdjust
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1229 adjustedSource = createIndex(adjustedSource.row(), adjustedSource.column() + numMoved, adjustedSource.internalPointer());
never executed: adjustedSource = createIndex(adjustedSource.row(), adjustedSource.column() + numMoved, adjustedSource.internalPointer());
0
1230 -
1231 d->itemsMoved(adjustedSource, removeChange.first, removeChange.last, adjustedDestination, insertChange.first, Qt::Horizontal); -
1232 -
1233 columnsMoved(adjustedSource, removeChange.first, removeChange.last, adjustedDestination, insertChange.first, QPrivateSignal()); -
1234}
executed: }
Execution Count:1
1
1235void QAbstractItemModel::beginResetModel() -
1236{ -
1237 modelAboutToBeReset(QPrivateSignal()); -
1238}
executed: }
Execution Count:6279
6279
1239void QAbstractItemModel::endResetModel() -
1240{ -
1241 QAbstractItemModelPrivate * const d = d_func(); -
1242 d->invalidatePersistentIndexes(); -
1243 modelReset(QPrivateSignal()); -
1244}
executed: }
Execution Count:6278
6278
1245void QAbstractItemModel::changePersistentIndex(const QModelIndex &from, const QModelIndex &to) -
1246{ -
1247 QAbstractItemModelPrivate * const d = d_func(); -
1248 if (d->persistent.indexes.isEmpty())
partially evaluated: d->persistent.indexes.isEmpty()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
1249 return;
never executed: return;
0
1250 -
1251 const QHash<QModelIndex, QPersistentModelIndexData *>::iterator it = d->persistent.indexes.find(from); -
1252 if (it != d->persistent.indexes.end()) {
partially evaluated: it != d->persistent.indexes.end()
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
0-12
1253 QPersistentModelIndexData *data = *it; -
1254 d->persistent.indexes.erase(it); -
1255 data->index = to; -
1256 if (to.isValid())
partially evaluated: to.isValid()
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
0-12
1257 d->persistent.insertMultiAtEnd(to, data);
executed: d->persistent.insertMultiAtEnd(to, data);
Execution Count:12
12
1258 else -
1259 data->model = 0;
never executed: data->model = 0;
0
1260 } -
1261}
executed: }
Execution Count:12
12
1262void QAbstractItemModel::changePersistentIndexList(const QModelIndexList &from, -
1263 const QModelIndexList &to) -
1264{ -
1265 QAbstractItemModelPrivate * const d = d_func(); -
1266 if (d->persistent.indexes.isEmpty())
evaluated: d->persistent.indexes.isEmpty()
TRUEFALSE
yes
Evaluation Count:4489
yes
Evaluation Count:520
520-4489
1267 return;
executed: return;
Execution Count:4489
4489
1268 QVector<QPersistentModelIndexData *> toBeReinserted; -
1269 toBeReinserted.reserve(to.count()); -
1270 for (int i = 0; i < from.count(); ++i) {
evaluated: i < from.count()
TRUEFALSE
yes
Evaluation Count:1150
yes
Evaluation Count:520
520-1150
1271 if (from.at(i) == to.at(i))
evaluated: from.at(i) == to.at(i)
TRUEFALSE
yes
Evaluation Count:548
yes
Evaluation Count:602
548-602
1272 continue;
executed: continue;
Execution Count:548
548
1273 const QHash<QModelIndex, QPersistentModelIndexData *>::iterator it = d->persistent.indexes.find(from.at(i)); -
1274 if (it != d->persistent.indexes.end()) {
evaluated: it != d->persistent.indexes.end()
TRUEFALSE
yes
Evaluation Count:476
yes
Evaluation Count:126
126-476
1275 QPersistentModelIndexData *data = *it; -
1276 d->persistent.indexes.erase(it); -
1277 data->index = to.at(i); -
1278 if (data->index.isValid())
partially evaluated: data->index.isValid()
TRUEFALSE
yes
Evaluation Count:476
no
Evaluation Count:0
0-476
1279 toBeReinserted << data;
executed: toBeReinserted << data;
Execution Count:476
476
1280 else -
1281 data->model = 0;
never executed: data->model = 0;
0
1282 } -
1283 }
executed: }
Execution Count:602
602
1284 -
1285 for (QVector<QPersistentModelIndexData *>::const_iterator it = toBeReinserted.constBegin(); -
1286 it != toBeReinserted.constEnd() ; ++it) {
evaluated: it != toBeReinserted.constEnd()
TRUEFALSE
yes
Evaluation Count:476
yes
Evaluation Count:520
476-520
1287 QPersistentModelIndexData *data = *it; -
1288 d->persistent.insertMultiAtEnd(data->index, data); -
1289 }
executed: }
Execution Count:476
476
1290}
executed: }
Execution Count:520
520
1291 -
1292 -
1293 -
1294 -
1295 -
1296 -
1297QModelIndexList QAbstractItemModel::persistentIndexList() const -
1298{ -
1299 const QAbstractItemModelPrivate * const d = d_func(); -
1300 QModelIndexList result; -
1301 for (QHash<QModelIndex, QPersistentModelIndexData *>::const_iterator it = d->persistent.indexes.constBegin(); -
1302 it != d->persistent.indexes.constEnd(); ++it) {
evaluated: it != d->persistent.indexes.constEnd()
TRUEFALSE
yes
Evaluation Count:477
yes
Evaluation Count:684
477-684
1303 QPersistentModelIndexData *data = *it; -
1304 result.append(data->index); -
1305 }
executed: }
Execution Count:477
477
1306 return result;
executed: return result;
Execution Count:684
684
1307} -
1308QAbstractTableModel::QAbstractTableModel(QObject *parent) -
1309 : QAbstractItemModel(parent) -
1310{ -
1311 -
1312}
executed: }
Execution Count:389
389
1313 -
1314 -
1315 -
1316 -
1317 -
1318 -
1319 -
1320QAbstractTableModel::QAbstractTableModel(QAbstractItemModelPrivate &dd, QObject *parent) -
1321 : QAbstractItemModel(dd, parent) -
1322{ -
1323 -
1324}
executed: }
Execution Count:280
280
1325 -
1326 -
1327 -
1328 -
1329 -
1330QAbstractTableModel::~QAbstractTableModel() -
1331{ -
1332 -
1333} -
1334QModelIndex QAbstractTableModel::index(int row, int column, const QModelIndex &parent) const -
1335{ -
1336 return hasIndex(row, column, parent) ? createIndex(row, column) : QModelIndex();
executed: return hasIndex(row, column, parent) ? createIndex(row, column) : QModelIndex();
Execution Count:53619
53619
1337} -
1338QModelIndex QAbstractTableModel::parent(const QModelIndex &) const -
1339{ -
1340 return QModelIndex();
executed: return QModelIndex();
Execution Count:31720
31720
1341} -
1342 -
1343bool QAbstractTableModel::hasChildren(const QModelIndex &parent) const -
1344{ -
1345 if (parent.model() == this || !parent.isValid())
evaluated: parent.model() == this
TRUEFALSE
yes
Evaluation Count:2453
yes
Evaluation Count:254
partially evaluated: !parent.isValid()
TRUEFALSE
yes
Evaluation Count:254
no
Evaluation Count:0
0-2453
1346 return rowCount(parent) > 0 && columnCount(parent) > 0;
executed: return rowCount(parent) > 0 && columnCount(parent) > 0;
Execution Count:2707
2707
1347 return false;
never executed: return false;
0
1348} -
1349QAbstractListModel::QAbstractListModel(QObject *parent) -
1350 : QAbstractItemModel(parent) -
1351{ -
1352 -
1353}
executed: }
Execution Count:489
489
1354 -
1355 -
1356 -
1357 -
1358 -
1359 -
1360 -
1361QAbstractListModel::QAbstractListModel(QAbstractItemModelPrivate &dd, QObject *parent) -
1362 : QAbstractItemModel(dd, parent) -
1363{ -
1364 -
1365}
never executed: }
0
1366 -
1367 -
1368 -
1369 -
1370 -
1371QAbstractListModel::~QAbstractListModel() -
1372{ -
1373 -
1374} -
1375QModelIndex QAbstractListModel::index(int row, int column, const QModelIndex &parent) const -
1376{ -
1377 return hasIndex(row, column, parent) ? createIndex(row, column) : QModelIndex();
executed: return hasIndex(row, column, parent) ? createIndex(row, column) : QModelIndex();
Execution Count:91880
91880
1378} -
1379 -
1380 -
1381 -
1382 -
1383 -
1384 -
1385 -
1386QModelIndex QAbstractListModel::parent(const QModelIndex & ) const -
1387{ -
1388 return QModelIndex();
executed: return QModelIndex();
Execution Count:32358
32358
1389} -
1390int QAbstractListModel::columnCount(const QModelIndex &parent) const -
1391{ -
1392 return parent.isValid() ? 0 : 1;
executed: return parent.isValid() ? 0 : 1;
Execution Count:86236
86236
1393} -
1394 -
1395bool QAbstractListModel::hasChildren(const QModelIndex &parent) const -
1396{ -
1397 return parent.isValid() ? false : (rowCount() > 0);
executed: return parent.isValid() ? false : (rowCount() > 0);
Execution Count:498
498
1398} -
1399bool QAbstractTableModel::dropMimeData(const QMimeData *data, Qt::DropAction action, -
1400 int row, int column, const QModelIndex &parent) -
1401{ -
1402 if (!data || !(action == Qt::CopyAction || action == Qt::MoveAction))
never evaluated: !data
never evaluated: action == Qt::CopyAction
never evaluated: action == Qt::MoveAction
0
1403 return false;
never executed: return false;
0
1404 -
1405 QStringList types = mimeTypes(); -
1406 if (types.isEmpty())
never evaluated: types.isEmpty()
0
1407 return false;
never executed: return false;
0
1408 QString format = types.at(0); -
1409 if (!data->hasFormat(format))
never evaluated: !data->hasFormat(format)
0
1410 return false;
never executed: return false;
0
1411 -
1412 QByteArray encoded = data->data(format); -
1413 QDataStream stream(&encoded, QIODevice::ReadOnly); -
1414 -
1415 -
1416 if (parent.isValid() && row == -1 && column == -1) {
never evaluated: parent.isValid()
never evaluated: row == -1
never evaluated: column == -1
0
1417 int top = 2147483647; -
1418 int left = 2147483647; -
1419 QVector<int> rows, columns; -
1420 QVector<QMap<int, QVariant> > data; -
1421 -
1422 while (!stream.atEnd()) {
never evaluated: !stream.atEnd()
0
1423 int r, c; -
1424 QMap<int, QVariant> v; -
1425 stream >> r >> c >> v; -
1426 rows.append(r); -
1427 columns.append(c); -
1428 data.append(v); -
1429 top = qMin(r, top); -
1430 left = qMin(c, left); -
1431 }
never executed: }
0
1432 -
1433 for (int i = 0; i < data.size(); ++i) {
never evaluated: i < data.size()
0
1434 int r = (rows.at(i) - top) + parent.row(); -
1435 int c = (columns.at(i) - left) + parent.column(); -
1436 if (hasIndex(r, c))
never evaluated: hasIndex(r, c)
0
1437 setItemData(index(r, c), data.at(i));
never executed: setItemData(index(r, c), data.at(i));
0
1438 }
never executed: }
0
1439 -
1440 return true;
never executed: return true;
0
1441 } -
1442 -
1443 -
1444 return decodeData(row, column, parent, stream);
never executed: return decodeData(row, column, parent, stream);
0
1445} -
1446 -
1447 -
1448 -
1449 -
1450bool QAbstractListModel::dropMimeData(const QMimeData *data, Qt::DropAction action, -
1451 int row, int column, const QModelIndex &parent) -
1452{ -
1453 if (!data || !(action == Qt::CopyAction || action == Qt::MoveAction))
never evaluated: !data
never evaluated: action == Qt::CopyAction
never evaluated: action == Qt::MoveAction
0
1454 return false;
never executed: return false;
0
1455 -
1456 QStringList types = mimeTypes(); -
1457 if (types.isEmpty())
never evaluated: types.isEmpty()
0
1458 return false;
never executed: return false;
0
1459 QString format = types.at(0); -
1460 if (!data->hasFormat(format))
never evaluated: !data->hasFormat(format)
0
1461 return false;
never executed: return false;
0
1462 -
1463 QByteArray encoded = data->data(format); -
1464 QDataStream stream(&encoded, QIODevice::ReadOnly); -
1465 -
1466 -
1467 if (parent.isValid() && row == -1 && column == -1) {
never evaluated: parent.isValid()
never evaluated: row == -1
never evaluated: column == -1
0
1468 int top = 2147483647; -
1469 int left = 2147483647; -
1470 QVector<int> rows, columns; -
1471 QVector<QMap<int, QVariant> > data; -
1472 -
1473 while (!stream.atEnd()) {
never evaluated: !stream.atEnd()
0
1474 int r, c; -
1475 QMap<int, QVariant> v; -
1476 stream >> r >> c >> v; -
1477 rows.append(r); -
1478 columns.append(c); -
1479 data.append(v); -
1480 top = qMin(r, top); -
1481 left = qMin(c, left); -
1482 }
never executed: }
0
1483 -
1484 for (int i = 0; i < data.size(); ++i) {
never evaluated: i < data.size()
0
1485 int r = (rows.at(i) - top) + parent.row(); -
1486 if (columns.at(i) == left && hasIndex(r, 0))
never evaluated: columns.at(i) == left
never evaluated: hasIndex(r, 0)
0
1487 setItemData(index(r), data.at(i));
never executed: setItemData(index(r), data.at(i));
0
1488 }
never executed: }
0
1489 -
1490 return true;
never executed: return true;
0
1491 } -
1492 -
1493 if (row == -1)
never evaluated: row == -1
0
1494 row = rowCount(parent);
never executed: row = rowCount(parent);
0
1495 -
1496 -
1497 return decodeData(row, column, parent, stream);
never executed: return decodeData(row, column, parent, stream);
0
1498} -
1499void QAbstractItemModelPrivate::Persistent::insertMultiAtEnd(const QModelIndex& key, QPersistentModelIndexData *data) -
1500{ -
1501 QHash<QModelIndex,QPersistentModelIndexData *>::iterator newIt = -
1502 indexes.insertMulti(key, data); -
1503 QHash<QModelIndex,QPersistentModelIndexData *>::iterator it = newIt + 1; -
1504 while (it != indexes.end() && it.key() == key) {
evaluated: it != indexes.end()
TRUEFALSE
yes
Evaluation Count:6489
yes
Evaluation Count:2373
evaluated: it.key() == key
TRUEFALSE
yes
Evaluation Count:16
yes
Evaluation Count:6473
16-6489
1505 qSwap(*newIt,*it); -
1506 newIt = it; -
1507 ++it; -
1508 }
executed: }
Execution Count:16
16
1509}
executed: }
Execution Count:8846
8846
1510 -
1511 -
1512 -
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial