OpenCoverage

qtreewidget.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/widgets/itemviews/qtreewidget.cpp
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9typedef bool(*LessThan)(const QPair<QTreeWidgetItem*,int>&,const QPair<QTreeWidgetItem*,int>&);-
10-
11class QTreeModelLessThan-
12{-
13public:-
14 inline bool operator()(QTreeWidgetItem *i1, QTreeWidgetItem *i2) const-
15 { return
never executed: return *i1 < *i2;
*i1 < *i2;
never executed: return *i1 < *i2;
}
0
16};-
17-
18class QTreeModelGreaterThan-
19{-
20public:-
21 inline bool operator()(QTreeWidgetItem *i1, QTreeWidgetItem *i2) const-
22 { return
never executed: return *i2 < *i1;
*i2 < *i1;
never executed: return *i2 < *i1;
}
0
23};-
24QTreeModel::QTreeModel(int columns, QTreeWidget *parent)-
25 : QAbstractItemModel(parent), rootItem(new QTreeWidgetItem),-
26 headerItem(new QTreeWidgetItem), skipPendingSort(false)-
27{-
28 rootItem->view = parent;-
29 rootItem->itemFlags = Qt::ItemIsDropEnabled;-
30 headerItem->view = parent;-
31 setColumnCount(columns);-
32}
never executed: end of block
0
33-
34-
35-
36-
37-
38-
39QTreeModel::QTreeModel(QTreeModelPrivate &dd, QTreeWidget *parent)-
40 : QAbstractItemModel(dd, parent), rootItem(new QTreeWidgetItem),-
41 headerItem(new QTreeWidgetItem), skipPendingSort(false)-
42{-
43 rootItem->view = parent;-
44 rootItem->itemFlags = Qt::ItemIsDropEnabled;-
45 headerItem->view = parent;-
46}
never executed: end of block
0
47-
48-
49-
50-
51-
52-
53-
54QTreeModel::~QTreeModel()-
55{-
56 clear();-
57 headerItem->view = nullptr;-
58 delete headerItem;-
59 rootItem->view = 0;-
60 delete rootItem;-
61}
never executed: end of block
0
62-
63-
64-
65-
66-
67-
68-
69void QTreeModel::clear()-
70{-
71 SkipSorting skipSorting(this);-
72 beginResetModel();-
73 for (int i = 0; i < rootItem->childCount()
i < rootItem->childCount()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
74 QTreeWidgetItem *item = rootItem->children.at(i);-
75 item->par = 0;-
76 item->view = 0;-
77 delete item;-
78 }
never executed: end of block
0
79 rootItem->children.clear();-
80 sortPendingTimer.stop();-
81 endResetModel();-
82}
never executed: end of block
0
83-
84-
85-
86-
87-
88-
89-
90void QTreeModel::setColumnCount(int columns)-
91{-
92 SkipSorting skipSorting(this);-
93 if (columns < 0
columns < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
94 return;
never executed: return;
0
95 if (!headerItem
!headerItemDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
96 headerItem = new QTreeWidgetItem();-
97 headerItem->view = view();-
98 }
never executed: end of block
0
99 int count = columnCount();-
100 if (count == columns
count == columnsDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
101 return;
never executed: return;
0
102-
103 if (columns < count
columns < countDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
104 beginRemoveColumns(QModelIndex(), columns, count - 1);-
105 headerItem->values.resize(columns);-
106 endRemoveColumns();-
107 }
never executed: end of block
else {
0
108 beginInsertColumns(QModelIndex(), count, columns - 1);-
109 headerItem->values.resize(columns);-
110 for (int i = count; i < columns
i < columnsDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
111 headerItem->values[i].append(QWidgetItemData(Qt::DisplayRole, QString::number(i + 1)));-
112 headerItem->d->display.append(QString::number(i + 1));-
113 }
never executed: end of block
0
114 endInsertColumns();-
115 }
never executed: end of block
0
116}-
117QTreeWidgetItem *QTreeModel::item(const QModelIndex &index) const-
118{-
119 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
120 return
never executed: return 0;
0;
never executed: return 0;
0
121 return
never executed: return static_cast<QTreeWidgetItem*>(index.internalPointer());
static_cast<QTreeWidgetItem*>(index.internalPointer());
never executed: return static_cast<QTreeWidgetItem*>(index.internalPointer());
0
122}-
123QModelIndex QTreeModel::index(const QTreeWidgetItem *item, int column) const-
124{-
125 executePendingSort();-
126-
127 if (!item
!itemDescription
TRUEnever evaluated
FALSEnever evaluated
|| (
(item == rootItem)Description
TRUEnever evaluated
FALSEnever evaluated
item == rootItem)
(item == rootItem)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
128 return
never executed: return QModelIndex();
QModelIndex();
never executed: return QModelIndex();
0
129 const QTreeWidgetItem *par = item->parent();-
130 QTreeWidgetItem *itm = const_cast<QTreeWidgetItem*>(item);-
131 if (!par
!parDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
132 par = rootItem;
never executed: par = rootItem;
0
133 int row;-
134 int guess = item->d->rowGuess;-
135 if (guess >= 0
guess >= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
136 && par->children.count() > guess
par->children.count() > guessDescription
TRUEnever evaluated
FALSEnever evaluated
0
137 && par->children.at(guess) == itm
par->children.at(guess) == itmDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
138 row = guess;-
139 }
never executed: end of block
else {
0
140 row = par->children.lastIndexOf(itm);-
141 itm->d->rowGuess = row;-
142 }
never executed: end of block
0
143 return
never executed: return createIndex(row, column, itm);
createIndex(row, column, itm);
never executed: return createIndex(row, column, itm);
0
144}-
145QModelIndex QTreeModel::index(int row, int column, const QModelIndex &parent) const-
146{-
147 executePendingSort();-
148-
149 int c = columnCount(parent);-
150 if (row < 0
row < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| column < 0
column < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| column >= c
column >= cDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
151 return
never executed: return QModelIndex();
QModelIndex();
never executed: return QModelIndex();
0
152-
153 QTreeWidgetItem *parentItem = parent.isValid()
parent.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
? item(parent) : rootItem;
0
154 if (parentItem
parentItemDescription
TRUEnever evaluated
FALSEnever evaluated
&& row < parentItem->childCount()
row < parentItem->childCount()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
155 QTreeWidgetItem *itm = parentItem->child(row);-
156 if (itm
itmDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
157 return
never executed: return createIndex(row, column, itm);
createIndex(row, column, itm);
never executed: return createIndex(row, column, itm);
0
158 return
never executed: return QModelIndex();
QModelIndex();
never executed: return QModelIndex();
0
159 }-
160-
161 return
never executed: return QModelIndex();
QModelIndex();
never executed: return QModelIndex();
0
162}-
163QModelIndex QTreeModel::parent(const QModelIndex &child) const-
164{-
165 SkipSorting skipSorting(this);-
166-
167-
168 if (!child.isValid()
!child.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
169 return
never executed: return QModelIndex();
QModelIndex();
never executed: return QModelIndex();
0
170 QTreeWidgetItem *itm = static_cast<QTreeWidgetItem *>(child.internalPointer());-
171 if (!itm
!itmDescription
TRUEnever evaluated
FALSEnever evaluated
|| itm == rootItem
itm == rootItemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
172 return
never executed: return QModelIndex();
QModelIndex();
never executed: return QModelIndex();
0
173 QTreeWidgetItem *parent = itm->parent();-
174 return
never executed: return index(parent, 0);
index(parent, 0);
never executed: return index(parent, 0);
0
175}-
176int QTreeModel::rowCount(const QModelIndex &parent) const-
177{-
178 if (!parent.isValid()
!parent.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
179 return
never executed: return rootItem->childCount();
rootItem->childCount();
never executed: return rootItem->childCount();
0
180-
181 QTreeWidgetItem *parentItem = item(parent);-
182 if (parentItem
parentItemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
183 return
never executed: return parentItem->childCount();
parentItem->childCount();
never executed: return parentItem->childCount();
0
184 return
never executed: return 0;
0;
never executed: return 0;
0
185}-
186int QTreeModel::columnCount(const QModelIndex &index) const-
187{-
188 (void)index;;-
189 if (!headerItem
!headerItemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
190 return
never executed: return 0;
0;
never executed: return 0;
0
191 return
never executed: return headerItem->columnCount();
headerItem->columnCount();
never executed: return headerItem->columnCount();
0
192}-
193-
194bool QTreeModel::hasChildren(const QModelIndex &parent) const-
195{-
196 if (!parent.isValid()
!parent.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
197 return
never executed: return (rootItem->childCount() > 0);
(rootItem->childCount() > 0);
never executed: return (rootItem->childCount() > 0);
0
198-
199 QTreeWidgetItem *itm = item(parent);-
200 if (!itm
!itmDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
201 return
never executed: return false;
false;
never executed: return false;
0
202 switch (itm->d->policy) {-
203 case
never executed: case QTreeWidgetItem::ShowIndicator:
QTreeWidgetItem::ShowIndicator:
never executed: case QTreeWidgetItem::ShowIndicator:
0
204 return
never executed: return true;
true;
never executed: return true;
0
205 case
never executed: case QTreeWidgetItem::DontShowIndicator:
QTreeWidgetItem::DontShowIndicator:
never executed: case QTreeWidgetItem::DontShowIndicator:
0
206 return
never executed: return false;
false;
never executed: return false;
0
207 case
never executed: case QTreeWidgetItem::DontShowIndicatorWhenChildless:
QTreeWidgetItem::DontShowIndicatorWhenChildless:
never executed: case QTreeWidgetItem::DontShowIndicatorWhenChildless:
0
208 return
never executed: return (itm->childCount() > 0);
(itm->childCount() > 0);
never executed: return (itm->childCount() > 0);
0
209 }-
210 return
never executed: return false;
false;
never executed: return false;
0
211}-
212QVariant QTreeModel::data(const QModelIndex &index, int role) const-
213{-
214 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
215 return
never executed: return QVariant();
QVariant();
never executed: return QVariant();
0
216 QTreeWidgetItem *itm = item(index);-
217 if (itm
itmDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
218 return
never executed: return itm->data(index.column(), role);
itm->data(index.column(), role);
never executed: return itm->data(index.column(), role);
0
219 return
never executed: return QVariant();
QVariant();
never executed: return QVariant();
0
220}-
221bool QTreeModel::setData(const QModelIndex &index, const QVariant &value, int role)-
222{-
223 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
224 return
never executed: return false;
false;
never executed: return false;
0
225 QTreeWidgetItem *itm = item(index);-
226 if (itm
itmDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
227 itm->setData(index.column(), role, value);-
228 return
never executed: return true;
true;
never executed: return true;
0
229 }-
230 return
never executed: return false;
false;
never executed: return false;
0
231}-
232-
233QMap<int, QVariant> QTreeModel::itemData(const QModelIndex &index) const-
234{-
235 QMap<int, QVariant> roles;-
236 QTreeWidgetItem *itm = item(index);-
237 if (itm
itmDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
238 int column = index.column();-
239 if (column < itm->values.count()
column < itm->values.count()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
240 for (int i = 0; i < itm->values.at(column).count()
i < itm->value...olumn).count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
241 roles.insert(itm->values.at(column).at(i).role,-
242 itm->values.at(column).at(i).value);-
243 }
never executed: end of block
0
244 }
never executed: end of block
0
245-
246-
247 QVariant displayValue = itm->data(column, Qt::DisplayRole);-
248 if (displayValue.isValid()
displayValue.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
249 roles.insert(Qt::DisplayRole, displayValue);
never executed: roles.insert(Qt::DisplayRole, displayValue);
0
250-
251 QVariant checkValue = itm->data(column, Qt::CheckStateRole);-
252 if (checkValue.isValid()
checkValue.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
253 roles.insert(Qt::CheckStateRole, checkValue);
never executed: roles.insert(Qt::CheckStateRole, checkValue);
0
254 }
never executed: end of block
0
255 return
never executed: return roles;
roles;
never executed: return roles;
0
256}-
257-
258-
259-
260-
261-
262bool QTreeModel::insertRows(int row, int count, const QModelIndex &parent)-
263{-
264 SkipSorting skipSorting(this);-
265 if (count < 1
count < 1Description
TRUEnever evaluated
FALSEnever evaluated
|| row < 0
row < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| row > rowCount(parent)
row > rowCount(parent)Description
TRUEnever evaluated
FALSEnever evaluated
|| parent.column() > 0
parent.column() > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
266 return
never executed: return false;
false;
never executed: return false;
0
267-
268 beginInsertRows(parent, row, row + count - 1);-
269 QTreeWidgetItem *par = item(parent);-
270 while (count > 0
count > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
271 QTreeWidgetItem *item = new QTreeWidgetItem();-
272 item->view = view();-
273 item->par = par;-
274 if (par
parDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
275 par->children.insert(row++, item);
never executed: par->children.insert(row++, item);
0
276 else-
277 rootItem->children.insert(row++, item);
never executed: rootItem->children.insert(row++, item);
0
278 --count;-
279 }
never executed: end of block
0
280 endInsertRows();-
281 return
never executed: return true;
true;
never executed: return true;
0
282}-
283-
284-
285-
286-
287-
288bool QTreeModel::insertColumns(int column, int count, const QModelIndex &parent)-
289{-
290 SkipSorting skipSorting(this);-
291 if (count < 1
count < 1Description
TRUEnever evaluated
FALSEnever evaluated
|| column < 0
column < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| column > columnCount(parent)
column > columnCount(parent)Description
TRUEnever evaluated
FALSEnever evaluated
|| parent.column() > 0
parent.column() > 0Description
TRUEnever evaluated
FALSEnever evaluated
|| !headerItem
!headerItemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
292 return
never executed: return false;
false;
never executed: return false;
0
293-
294 beginInsertColumns(parent, column, column + count - 1);-
295-
296 int oldCount = columnCount(parent);-
297 column = qBound(0, column, oldCount);-
298 headerItem->values.resize(oldCount + count);-
299 for (int i = oldCount; i < oldCount + count
i < oldCount + countDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
300 headerItem->values[i].append(QWidgetItemData(Qt::DisplayRole, QString::number(i + 1)));-
301 headerItem->d->display.append(QString::number(i + 1));-
302 }
never executed: end of block
0
303-
304 QStack<QTreeWidgetItem*> itemstack;-
305 itemstack.push(0);-
306 while (!itemstack.isEmpty()
!itemstack.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
307 QTreeWidgetItem *par = itemstack.pop();-
308 QList<QTreeWidgetItem*> children = par
parDescription
TRUEnever evaluated
FALSEnever evaluated
? par->children : rootItem->children;
0
309 for (int row = 0; row < children.count()
row < children.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++row) {
0
310 QTreeWidgetItem *child = children.at(row);-
311 if (child->children.count()
child->children.count()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
312 itemstack.push(child);
never executed: itemstack.push(child);
0
313 child->values.insert(column, count, QVector<QWidgetItemData>());-
314 }
never executed: end of block
0
315 }
never executed: end of block
0
316-
317 endInsertColumns();-
318 return
never executed: return true;
true;
never executed: return true;
0
319}-
320-
321-
322-
323-
324-
325bool QTreeModel::removeRows(int row, int count, const QModelIndex &parent) {-
326 if (count < 1
count < 1Description
TRUEnever evaluated
FALSEnever evaluated
|| row < 0
row < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(row + count) ...wCount(parent)Description
TRUEnever evaluated
FALSEnever evaluated
row + count) > rowCount(parent)
(row + count) ...wCount(parent)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
327 return
never executed: return false;
false;
never executed: return false;
0
328-
329 beginRemoveRows(parent, row, row + count - 1);-
330-
331 QSignalBlocker blocker(this);-
332-
333 QTreeWidgetItem *itm = item(parent);-
334 for (int i = row + count - 1; i >= row
i >= rowDescription
TRUEnever evaluated
FALSEnever evaluated
; --i) {
0
335 QTreeWidgetItem *child = itm
itmDescription
TRUEnever evaluated
FALSEnever evaluated
? itm->takeChild(i) : rootItem->children.takeAt(i);
0
336 ((!(child)) ? qt_assert("child",__FILE__,500) : qt_noop());-
337 child->view = 0;-
338 delete child;-
339 child = 0;-
340 }
never executed: end of block
0
341 blocker.unblock();-
342-
343 endRemoveRows();-
344 return
never executed: return true;
true;
never executed: return true;
0
345}-
346QVariant QTreeModel::headerData(int section, Qt::Orientation orientation, int role) const-
347{-
348 if (orientation != Qt::Horizontal
orientation != Qt::HorizontalDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
349 return
never executed: return QVariant();
QVariant();
never executed: return QVariant();
0
350-
351 if (headerItem
headerItemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
352 return
never executed: return headerItem->data(section, role);
headerItem->data(section, role);
never executed: return headerItem->data(section, role);
0
353 if (role == Qt::DisplayRole
role == Qt::DisplayRoleDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
354 return
never executed: return QString::number(section + 1);
QString::number(section + 1);
never executed: return QString::number(section + 1);
0
355 return
never executed: return QVariant();
QVariant();
never executed: return QVariant();
0
356}-
357bool QTreeModel::setHeaderData(int section, Qt::Orientation orientation,-
358 const QVariant &value, int role)-
359{-
360 if (section < 0
section < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| orientation != Qt::Horizontal
orientation != Qt::HorizontalDescription
TRUEnever evaluated
FALSEnever evaluated
|| !headerItem
!headerItemDescription
TRUEnever evaluated
FALSEnever evaluated
|| section >= columnCount()
section >= columnCount()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
361 return
never executed: return false;
false;
never executed: return false;
0
362-
363 headerItem->setData(section, role, value);-
364 return
never executed: return true;
true;
never executed: return true;
0
365}-
366Qt::ItemFlags QTreeModel::flags(const QModelIndex &index) const-
367{-
368 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
369 return
never executed: return rootItem->flags();
rootItem->flags();
never executed: return rootItem->flags();
0
370 QTreeWidgetItem *itm = item(index);-
371 ((!(itm)) ? qt_assert("itm",__FILE__,563) : qt_noop());-
372 return
never executed: return itm->flags();
itm->flags();
never executed: return itm->flags();
0
373}-
374void QTreeModel::sort(int column, Qt::SortOrder order)-
375{-
376 SkipSorting skipSorting(this);-
377 sortPendingTimer.stop();-
378-
379 if (column < 0
column < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| column >= columnCount()
column >= columnCount()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
380 return;
never executed: return;
0
381-
382-
383 rootItem->sortChildren(column, order, true);-
384}
never executed: end of block
0
385-
386-
387-
388-
389void QTreeModel::ensureSorted(int column, Qt::SortOrder order,-
390 int start, int end, const QModelIndex &parent)-
391{-
392 if (isChanging()
isChanging()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
393 return;
never executed: return;
0
394-
395 sortPendingTimer.stop();-
396-
397 if (column < 0
column < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| column >= columnCount()
column >= columnCount()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
398 return;
never executed: return;
0
399-
400 SkipSorting skipSorting(this);-
401-
402 QTreeWidgetItem *itm = item(parent);-
403 if (!itm
!itmDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
404 itm = rootItem;
never executed: itm = rootItem;
0
405 QList<QTreeWidgetItem*> lst = itm->children;-
406-
407 int count = end - start + 1;-
408 QVector < QPair<QTreeWidgetItem*,int> > sorting(count);-
409 for (int i = 0; i < count
i < countDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
410 sorting[i].first = lst.at(start + i);-
411 sorting[i].second = start + i;-
412 }
never executed: end of block
0
413-
414 LessThan compare = (order == Qt::AscendingOrder
order == Qt::AscendingOrderDescription
TRUEnever evaluated
FALSEnever evaluated
? &itemLessThan : &itemGreaterThan);
0
415 std::stable_sort(sorting.begin(), sorting.end(), compare);-
416-
417 QModelIndexList oldPersistentIndexes;-
418 QModelIndexList newPersistentIndexes;-
419 QList<QTreeWidgetItem*>::iterator lit = lst.begin();-
420 bool changed = false;-
421-
422 for (int i = 0; i < count
i < countDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
423 int oldRow = sorting.at(i).second;-
424-
425 int tmpitepos = lit - lst.begin();-
426 QTreeWidgetItem *item = lst.takeAt(oldRow);-
427 if (tmpitepos > lst.size()
tmpitepos > lst.size()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
428 --
never executed: --tmpitepos;
tmpitepos;
never executed: --tmpitepos;
0
429 lit = lst.begin() + tmpitepos;-
430-
431 lit = sortedInsertionIterator(lit, lst.end(), order, item);-
432 int newRow = qMax(lit - lst.begin(), 0);-
433-
434 if ((
(newRow < oldRow)Description
TRUEnever evaluated
FALSEnever evaluated
newRow < oldRow)
(newRow < oldRow)Description
TRUEnever evaluated
FALSEnever evaluated
&& !(*item < *lst.at(oldRow - 1))
!(*item < *lst.at(oldRow - 1))Description
TRUEnever evaluated
FALSEnever evaluated
&& !(*lst.at(oldRow - 1) < *item )
!(*lst.at(oldR...- 1) < *item )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
435 newRow = oldRow;
never executed: newRow = oldRow;
0
436-
437 lit = lst.insert(lit, item);-
438 if (newRow != oldRow
newRow != oldRowDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
439-
440 if (!changed
!changedDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
441 changed = true;-
442 layoutAboutToBeChanged();-
443 oldPersistentIndexes = persistentIndexList();-
444 newPersistentIndexes = oldPersistentIndexes;-
445 }
never executed: end of block
0
446 for (int j = i + 1; j < count
j < countDescription
TRUEnever evaluated
FALSEnever evaluated
; ++j) {
0
447 int otherRow = sorting.at(j).second;-
448 if (oldRow < otherRow
oldRow < otherRowDescription
TRUEnever evaluated
FALSEnever evaluated
&& newRow >= otherRow
newRow >= otherRowDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
449 --
never executed: --sorting[j].second;
sorting[j].second;
never executed: --sorting[j].second;
0
450 else if (oldRow > otherRow
oldRow > otherRowDescription
TRUEnever evaluated
FALSEnever evaluated
&& newRow <= otherRow
newRow <= otherRowDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
451 ++
never executed: ++sorting[j].second;
sorting[j].second;
never executed: ++sorting[j].second;
0
452 }
never executed: end of block
0
453 for (int k = 0; k < newPersistentIndexes.count()
k < newPersist...ndexes.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++k) {
0
454 QModelIndex pi = newPersistentIndexes.at(k);-
455 if (pi.parent() != parent
pi.parent() != parentDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
456 continue;
never executed: continue;
0
457 int oldPersistentRow = pi.row();-
458 int newPersistentRow = oldPersistentRow;-
459 if (oldPersistentRow == oldRow
oldPersistentRow == oldRowDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
460 newPersistentRow = newRow;
never executed: newPersistentRow = newRow;
0
461 else if (oldRow < oldPersistentRow
oldRow < oldPersistentRowDescription
TRUEnever evaluated
FALSEnever evaluated
&& newRow >= oldPersistentRow
newRow >= oldPersistentRowDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
462 newPersistentRow = oldPersistentRow - 1;
never executed: newPersistentRow = oldPersistentRow - 1;
0
463 else if (oldRow > oldPersistentRow
oldRow > oldPersistentRowDescription
TRUEnever evaluated
FALSEnever evaluated
&& newRow <= oldPersistentRow
newRow <= oldPersistentRowDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
464 newPersistentRow = oldPersistentRow + 1;
never executed: newPersistentRow = oldPersistentRow + 1;
0
465 if (newPersistentRow != oldPersistentRow
newPersistentR...dPersistentRowDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
466 newPersistentIndexes[k] = createIndex(newPersistentRow,
never executed: newPersistentIndexes[k] = createIndex(newPersistentRow, pi.column(), pi.internalPointer());
0
467 pi.column(), pi.internalPointer());
never executed: newPersistentIndexes[k] = createIndex(newPersistentRow, pi.column(), pi.internalPointer());
0
468 }
never executed: end of block
0
469 }
never executed: end of block
0
470 }
never executed: end of block
0
471-
472 if (changed
changedDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
473 itm->children = lst;-
474 changePersistentIndexList(oldPersistentIndexes, newPersistentIndexes);-
475 layoutChanged();-
476 }
never executed: end of block
0
477}
never executed: end of block
0
478bool QTreeModel::itemLessThan(const QPair<QTreeWidgetItem*,int> &left,-
479 const QPair<QTreeWidgetItem*,int> &right)-
480{-
481 return
never executed: return *(left.first) < *(right.first);
*(left.first) < *(right.first);
never executed: return *(left.first) < *(right.first);
0
482}-
483bool QTreeModel::itemGreaterThan(const QPair<QTreeWidgetItem*,int> &left,-
484 const QPair<QTreeWidgetItem*,int> &right)-
485{-
486 return
never executed: return *(right.first) < *(left.first);
*(right.first) < *(left.first);
never executed: return *(right.first) < *(left.first);
0
487}-
488-
489-
490-
491-
492QList<QTreeWidgetItem*>::iterator QTreeModel::sortedInsertionIterator(-
493 const QList<QTreeWidgetItem*>::iterator &begin,-
494 const QList<QTreeWidgetItem*>::iterator &end,-
495 Qt::SortOrder order, QTreeWidgetItem *item)-
496{-
497 if (order == Qt::AscendingOrder
order == Qt::AscendingOrderDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
498 return
never executed: return std::lower_bound(begin, end, item, QTreeModelLessThan());
std::lower_bound(begin, end, item, QTreeModelLessThan());
never executed: return std::lower_bound(begin, end, item, QTreeModelLessThan());
0
499 return
never executed: return std::lower_bound(begin, end, item, QTreeModelGreaterThan());
std::lower_bound(begin, end, item, QTreeModelGreaterThan());
never executed: return std::lower_bound(begin, end, item, QTreeModelGreaterThan());
0
500}-
501-
502QStringList QTreeModel::mimeTypes() const-
503{-
504 return
never executed: return view()->mimeTypes();
view()->mimeTypes();
never executed: return view()->mimeTypes();
0
505}-
506-
507QMimeData *QTreeModel::internalMimeData() const-
508{-
509 return
never executed: return QAbstractItemModel::mimeData(cachedIndexes);
QAbstractItemModel::mimeData(cachedIndexes);
never executed: return QAbstractItemModel::mimeData(cachedIndexes);
0
510}-
511-
512QMimeData *QTreeModel::mimeData(const QModelIndexList &indexes) const-
513{-
514 QList<QTreeWidgetItem*> items;-
515 for (const auto &index : indexes) {-
516 if (index.column() == 0
index.column() == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
517 items << item(index);
never executed: items << item(index);
0
518 }
never executed: end of block
0
519-
520-
521-
522 cachedIndexes = indexes;-
523 QMimeData *mimeData = view()->mimeData(items);-
524 cachedIndexes.clear();-
525 return
never executed: return mimeData;
mimeData;
never executed: return mimeData;
0
526}-
527-
528bool QTreeModel::dropMimeData(const QMimeData *data, Qt::DropAction action,-
529 int row, int column, const QModelIndex &parent)-
530{-
531 if (row == -1
row == -1Description
TRUEnever evaluated
FALSEnever evaluated
&& column == -1
column == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
532 row = rowCount(parent);
never executed: row = rowCount(parent);
0
533 return
never executed: return view()->dropMimeData(item(parent), row, data, action);
view()->dropMimeData(item(parent), row, data, action);
never executed: return view()->dropMimeData(item(parent), row, data, action);
0
534}-
535-
536Qt::DropActions QTreeModel::supportedDropActions() const-
537{-
538 return
never executed: return view()->supportedDropActions();
view()->supportedDropActions();
never executed: return view()->supportedDropActions();
0
539}-
540-
541void QTreeModel::itemChanged(QTreeWidgetItem *item)-
542{-
543 SkipSorting skipSorting(this);-
544 QModelIndex left = index(item, 0);-
545 QModelIndex right = index(item, item->columnCount() - 1);-
546 dataChanged(left, right);-
547}
never executed: end of block
0
548-
549bool QTreeModel::isChanging() const-
550{-
551 const QTreeModelPrivate * const d = d_func();-
552 return
never executed: return !d->changes.isEmpty();
!d->changes.isEmpty();
never executed: return !d->changes.isEmpty();
0
553}-
554-
555-
556-
557-
558-
559-
560-
561void QTreeModel::emitDataChanged(QTreeWidgetItem *item, int column)-
562{-
563 if (signalsBlocked()
signalsBlocked()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
564 return;
never executed: return;
0
565-
566 if (headerItem == item
headerItem == itemDescription
TRUEnever evaluated
FALSEnever evaluated
&& column < item->columnCount()
column < item->columnCount()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
567 if (column == -1
column == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
568 headerDataChanged(Qt::Horizontal, 0, columnCount() - 1);
never executed: headerDataChanged(Qt::Horizontal, 0, columnCount() - 1);
0
569 else-
570 headerDataChanged(Qt::Horizontal, column, column);
never executed: headerDataChanged(Qt::Horizontal, column, column);
0
571 return;
never executed: return;
0
572 }-
573-
574 SkipSorting skipSorting(this);-
575-
576 QModelIndex bottomRight, topLeft;-
577 if (column == -1
column == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
578 topLeft = index(item, 0);-
579 bottomRight = createIndex(topLeft.row(), columnCount() - 1, item);-
580 }
never executed: end of block
else {
0
581 topLeft = index(item, column);-
582 bottomRight = topLeft;-
583 }
never executed: end of block
0
584 dataChanged(topLeft, bottomRight);-
585}
never executed: end of block
0
586-
587void QTreeModel::beginInsertItems(QTreeWidgetItem *parent, int row, int count)-
588{-
589 QModelIndex par = index(parent, 0);-
590 beginInsertRows(par, row, row + count - 1);-
591}
never executed: end of block
0
592-
593void QTreeModel::endInsertItems()-
594{-
595 endInsertRows();-
596}
never executed: end of block
0
597-
598void QTreeModel::beginRemoveItems(QTreeWidgetItem *parent, int row, int count)-
599{-
600 ((!(row >= 0)) ? qt_assert("row >= 0",__FILE__,820) : qt_noop());-
601 ((!(count > 0)) ? qt_assert("count > 0",__FILE__,821) : qt_noop());-
602 beginRemoveRows(index(parent, 0), row, row + count - 1);-
603 if (!parent
!parentDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
604 parent = rootItem;
never executed: parent = rootItem;
0
605-
606 for (int i = 0; i < iterators.count()
i < iterators.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
607 for (int j = 0; j < count
j < countDescription
TRUEnever evaluated
FALSEnever evaluated
; j++) {
0
608 QTreeWidgetItem *c = parent->child(row + j);-
609 iterators[i]->d_func()->ensureValidIterator(c);-
610 }
never executed: end of block
0
611 }
never executed: end of block
0
612}
never executed: end of block
0
613-
614void QTreeModel::endRemoveItems()-
615{-
616 endRemoveRows();-
617}
never executed: end of block
0
618-
619void QTreeModel::sortItems(QList<QTreeWidgetItem*> *items, int column, Qt::SortOrder order)-
620{-
621-
622 (void)column;;-
623 if (isChanging()
isChanging()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
624 return;
never executed: return;
0
625-
626-
627 QVector< QPair<QTreeWidgetItem*,int> > sorting(items->count());-
628 for (int i = 0; i < sorting.count()
i < sorting.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
629 sorting[i].first = items->at(i);-
630 sorting[i].second = i;-
631 }
never executed: end of block
0
632-
633-
634 LessThan compare = (order == Qt::AscendingOrder
order == Qt::AscendingOrderDescription
TRUEnever evaluated
FALSEnever evaluated
? &itemLessThan : &itemGreaterThan);
0
635 std::stable_sort(sorting.begin(), sorting.end(), compare);-
636-
637 QModelIndexList fromList;-
638 QModelIndexList toList;-
639 int colCount = columnCount();-
640 for (int r = 0; r < sorting.count()
r < sorting.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++r) {
0
641 int oldRow = sorting.at(r).second;-
642 if (oldRow == r
oldRow == rDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
643 continue;
never executed: continue;
0
644 QTreeWidgetItem *item = sorting.at(r).first;-
645 items->replace(r, item);-
646 for (int c = 0; c < colCount
c < colCountDescription
TRUEnever evaluated
FALSEnever evaluated
; ++c) {
0
647 QModelIndex from = createIndex(oldRow, c, item);-
648 if (static_cast<
static_cast<QA...contains(from)Description
TRUEnever evaluated
FALSEnever evaluated
QAbstractItemModelPrivate *>(d_ptr.data())->persistent.indexes.contains(from)
static_cast<QA...contains(from)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
649 QModelIndex to = createIndex(r, c, item);-
650 fromList << from;-
651 toList << to;-
652 }
never executed: end of block
0
653 }
never executed: end of block
0
654 }
never executed: end of block
0
655 changePersistentIndexList(fromList, toList);-
656}
never executed: end of block
0
657-
658void QTreeModel::timerEvent(QTimerEvent *ev)-
659{-
660 if (ev->timerId() == sortPendingTimer.timerId()
ev->timerId() ...imer.timerId()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
661 executePendingSort();-
662 }
never executed: end of block
else {
0
663 QAbstractItemModel::timerEvent(ev);-
664 }
never executed: end of block
0
665}-
666QTreeWidgetItem::QTreeWidgetItem(int type)-
667 : rtti(type), view(0), d(new QTreeWidgetItemPrivate(this)), par(0),-
668 itemFlags(Qt::ItemIsSelectable-
669 |Qt::ItemIsUserCheckable-
670 |Qt::ItemIsEnabled-
671 |Qt::ItemIsDragEnabled-
672 |Qt::ItemIsDropEnabled)-
673{-
674}
never executed: end of block
0
675QTreeWidgetItem::QTreeWidgetItem(const QStringList &strings, int type)-
676 : rtti(type), view(0), d(new QTreeWidgetItemPrivate(this)), par(0),-
677 itemFlags(Qt::ItemIsSelectable-
678 |Qt::ItemIsUserCheckable-
679 |Qt::ItemIsEnabled-
680 |Qt::ItemIsDragEnabled-
681 |Qt::ItemIsDropEnabled)-
682{-
683 for (int i = 0; i < strings.count()
i < strings.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i)
0
684 setText(i, strings.at(i));
never executed: setText(i, strings.at(i));
0
685}
never executed: end of block
0
686QTreeWidgetItem::QTreeWidgetItem(QTreeWidget *view, int type)-
687 : rtti(type), view(0), d(new QTreeWidgetItemPrivate(this)), par(0),-
688 itemFlags(Qt::ItemIsSelectable-
689 |Qt::ItemIsUserCheckable-
690 |Qt::ItemIsEnabled-
691 |Qt::ItemIsDragEnabled-
692 |Qt::ItemIsDropEnabled)-
693{-
694 if (view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
&& view->model()
view->model()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
695 QTreeModel *model = qobject_cast<QTreeModel*>(view->model());-
696 model->rootItem->addChild(this);-
697 values.reserve(model->headerItem->columnCount());-
698 }
never executed: end of block
0
699}
never executed: end of block
0
700QTreeWidgetItem::QTreeWidgetItem(QTreeWidget *view, const QStringList &strings, int type)-
701 : rtti(type), view(0), d(new QTreeWidgetItemPrivate(this)), par(0),-
702 itemFlags(Qt::ItemIsSelectable-
703 |Qt::ItemIsUserCheckable-
704 |Qt::ItemIsEnabled-
705 |Qt::ItemIsDragEnabled-
706 |Qt::ItemIsDropEnabled)-
707{-
708 for (int i = 0; i < strings.count()
i < strings.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i)
0
709 setText(i, strings.at(i));
never executed: setText(i, strings.at(i));
0
710 if (view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
&& view->model()
view->model()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
711 QTreeModel *model = qobject_cast<QTreeModel*>(view->model());-
712 model->rootItem->addChild(this);-
713 values.reserve(model->headerItem->columnCount());-
714 }
never executed: end of block
0
715}
never executed: end of block
0
716QTreeWidgetItem::QTreeWidgetItem(QTreeWidget *view, QTreeWidgetItem *after, int type)-
717 : rtti(type), view(0), d(new QTreeWidgetItemPrivate(this)), par(0),-
718 itemFlags(Qt::ItemIsSelectable-
719 |Qt::ItemIsUserCheckable-
720 |Qt::ItemIsEnabled-
721 |Qt::ItemIsDragEnabled-
722 |Qt::ItemIsDropEnabled)-
723{-
724 if (view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
725 QTreeModel *model = qobject_cast<QTreeModel*>(view->model());-
726 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
727 int i = model->rootItem->children.indexOf(after) + 1;-
728 model->rootItem->insertChild(i, this);-
729 values.reserve(model->headerItem->columnCount());-
730 }
never executed: end of block
0
731 }
never executed: end of block
0
732}
never executed: end of block
0
733-
734-
735-
736-
737-
738-
739QTreeWidgetItem::QTreeWidgetItem(QTreeWidgetItem *parent, int type)-
740 : rtti(type), view(0), d(new QTreeWidgetItemPrivate(this)), par(0),-
741 itemFlags(Qt::ItemIsSelectable-
742 |Qt::ItemIsUserCheckable-
743 |Qt::ItemIsEnabled-
744 |Qt::ItemIsDragEnabled-
745 |Qt::ItemIsDropEnabled)-
746{-
747 if (parent
parentDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
748 parent->addChild(this);
never executed: parent->addChild(this);
0
749}
never executed: end of block
0
750-
751-
752-
753-
754-
755-
756-
757QTreeWidgetItem::QTreeWidgetItem(QTreeWidgetItem *parent, const QStringList &strings, int type)-
758 : rtti(type), view(0), d(new QTreeWidgetItemPrivate(this)), par(0),-
759 itemFlags(Qt::ItemIsSelectable-
760 |Qt::ItemIsUserCheckable-
761 |Qt::ItemIsEnabled-
762 |Qt::ItemIsDragEnabled-
763 |Qt::ItemIsDropEnabled)-
764{-
765 for (int i = 0; i < strings.count()
i < strings.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i)
0
766 setText(i, strings.at(i));
never executed: setText(i, strings.at(i));
0
767 if (parent
parentDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
768 parent->addChild(this);
never executed: parent->addChild(this);
0
769}
never executed: end of block
0
770QTreeWidgetItem::QTreeWidgetItem(QTreeWidgetItem *parent, QTreeWidgetItem *after, int type)-
771 : rtti(type), view(0), d(new QTreeWidgetItemPrivate(this)), par(0),-
772 itemFlags(Qt::ItemIsSelectable-
773 |Qt::ItemIsUserCheckable-
774 |Qt::ItemIsEnabled-
775 |Qt::ItemIsDragEnabled-
776 |Qt::ItemIsDropEnabled)-
777{-
778 if (parent
parentDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
779 int i = parent->children.indexOf(after) + 1;-
780 parent->insertChild(i, this);-
781 }
never executed: end of block
0
782}
never executed: end of block
0
783QTreeWidgetItem::~QTreeWidgetItem()-
784{-
785 QTreeModel *model = (view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
? qobject_cast<QTreeModel*>(view->model()) : 0);
0
786 bool wasSkipSort = false;-
787 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
788 wasSkipSort = model->skipPendingSort;-
789 model->skipPendingSort = true;-
790 }
never executed: end of block
0
791 if (par
parDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
792 int i = par->children.indexOf(this);-
793 if (i >= 0
i >= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
794 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) model->beginRemoveItems(par, i, 1);
never executed: model->beginRemoveItems(par, i, 1);
0
795-
796-
797 if (!par->children.isEmpty()
!par->children.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
&& par->children.at(i) == this
par->children.at(i) == thisDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
798 par->children.takeAt(i);
never executed: par->children.takeAt(i);
0
799 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) model->endRemoveItems();
never executed: model->endRemoveItems();
0
800 }
never executed: end of block
0
801 }
never executed: end of block
else if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
802 if (this == model->headerItem
this == model->headerItemDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
803 model->headerItem = 0;-
804 }
never executed: end of block
else {
0
805 int i = model->rootItem->children.indexOf(this);-
806 if (i >= 0
i >= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
807 model->beginRemoveItems(0, i, 1);-
808-
809-
810 if (!model->rootItem->children.isEmpty()
!model->rootIt...dren.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
&& model->rootItem->children.at(i) == this
model->rootIte....at(i) == thisDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
811 model->rootItem->children.takeAt(i);
never executed: model->rootItem->children.takeAt(i);
0
812 model->endRemoveItems();-
813 }
never executed: end of block
0
814 }
never executed: end of block
0
815 }-
816-
817-
818 for (int i = 0; i < children.count()
i < children.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
819 QTreeWidgetItem *child = children.at(i);-
820-
821 child->par = 0;-
822-
823 child->view = 0;-
824 delete child;-
825 }
never executed: end of block
0
826-
827 children.clear();-
828 delete d;-
829 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
830 model->skipPendingSort = wasSkipSort;-
831 }
never executed: end of block
0
832}
never executed: end of block
0
833-
834-
835-
836-
837QTreeWidgetItem *QTreeWidgetItem::clone() const-
838{-
839 QTreeWidgetItem *copy = 0;-
840-
841 QStack<const QTreeWidgetItem*> stack;-
842 QStack<QTreeWidgetItem*> parentStack;-
843 stack.push(this);-
844 parentStack.push(0);-
845-
846 QTreeWidgetItem *root = 0;-
847 const QTreeWidgetItem *item = 0;-
848 QTreeWidgetItem *parent = 0;-
849 while (!stack.isEmpty()
!stack.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
850-
851 item = stack.pop();-
852 parent = parentStack.pop();-
853-
854-
855 copy = new QTreeWidgetItem(*item);-
856 if (!root
!rootDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
857 root = copy;
never executed: root = copy;
0
858-
859-
860 if (parent
parentDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
861 copy->par = parent;-
862 parent->children.insert(0, copy);-
863 }
never executed: end of block
0
864-
865 for (int i = 0; i < item->childCount()
i < item->childCount()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
866 stack.push(item->child(i));-
867 parentStack.push(copy);-
868 }
never executed: end of block
0
869 }
never executed: end of block
0
870 return
never executed: return root;
root;
never executed: return root;
0
871}-
872void QTreeWidgetItem::setChildIndicatorPolicy(QTreeWidgetItem::ChildIndicatorPolicy policy)-
873{-
874 if (d->policy == policy
d->policy == policyDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
875 return;
never executed: return;
0
876 d->policy = policy;-
877-
878 if (!view
!viewDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
879 return;
never executed: return;
0
880-
881 view->scheduleDelayedItemsLayout();-
882}
never executed: end of block
0
883-
884-
885-
886-
887-
888-
889-
890QTreeWidgetItem::ChildIndicatorPolicy QTreeWidgetItem::childIndicatorPolicy() const-
891{-
892 return
never executed: return d->policy;
d->policy;
never executed: return d->policy;
0
893}-
894void QTreeWidgetItem::setFlags(Qt::ItemFlags flags)-
895{-
896 const bool enable = (flags & Qt::ItemIsEnabled);-
897 const bool changedState = bool(itemFlags & Qt::ItemIsEnabled) != enable;-
898 const bool changedExplicit = d->disabled != !enable;-
899-
900 d->disabled = !enable;-
901-
902 if (enable
enableDescription
TRUEnever evaluated
FALSEnever evaluated
&& par
parDescription
TRUEnever evaluated
FALSEnever evaluated
&& !(par->itemFlags & Qt::ItemIsEnabled)
!(par->itemFla...ItemIsEnabled)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
903 itemFlags = flags & ~Qt::ItemIsEnabled;
never executed: itemFlags = flags & ~Qt::ItemIsEnabled;
0
904 else-
905 itemFlags = flags;
never executed: itemFlags = flags;
0
906-
907 if (changedState
changedStateDescription
TRUEnever evaluated
FALSEnever evaluated
&& changedExplicit
changedExplicitDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
908 QStack<QTreeWidgetItem*> parents;-
909 parents.push(this);-
910 while (!parents.isEmpty()
!parents.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
911 QTreeWidgetItem *parent = parents.pop();-
912 for (int i = 0; i < parent->children.count()
i < parent->children.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
913 QTreeWidgetItem *child = parent->children.at(i);-
914 if (!child->d->disabled
!child->d->disabledDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
915 parents.push(child);-
916 if (enable
enableDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
917 child->itemFlags = child->itemFlags | Qt::ItemIsEnabled;
never executed: child->itemFlags = child->itemFlags | Qt::ItemIsEnabled;
0
918 else-
919 child->itemFlags = child->itemFlags & ~Qt::ItemIsEnabled;
never executed: child->itemFlags = child->itemFlags & ~Qt::ItemIsEnabled;
0
920 child->itemChanged();-
921 }
never executed: end of block
0
922 }
never executed: end of block
0
923 }
never executed: end of block
0
924 }
never executed: end of block
0
925 itemChanged();-
926}
never executed: end of block
0
927-
928void QTreeWidgetItemPrivate::propagateDisabled(QTreeWidgetItem *item)-
929{-
930 ((!(item)) ? qt_assert("item",__FILE__,1657) : qt_noop());-
931 const bool enable = item->par
item->parDescription
TRUEnever evaluated
FALSEnever evaluated
? (item->par->itemFlags.testFlag(Qt::ItemIsEnabled)) : true;
0
932-
933 QStack<QTreeWidgetItem*> parents;-
934 parents.push(item);-
935 while (!parents.isEmpty()
!parents.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
936 QTreeWidgetItem *parent = parents.pop();-
937 if (!parent->d->disabled
!parent->d->disabledDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
938 Qt::ItemFlags oldFlags = parent->itemFlags;-
939 if (enable
enableDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
940 parent->itemFlags = parent->itemFlags | Qt::ItemIsEnabled;
never executed: parent->itemFlags = parent->itemFlags | Qt::ItemIsEnabled;
0
941 else-
942 parent->itemFlags = parent->itemFlags & ~Qt::ItemIsEnabled;
never executed: parent->itemFlags = parent->itemFlags & ~Qt::ItemIsEnabled;
0
943 if (parent->itemFlags != oldFlags
parent->itemFlags != oldFlagsDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
944 parent->itemChanged();
never executed: parent->itemChanged();
0
945 }
never executed: end of block
0
946-
947 for (int i = 0; i < parent->children.count()
i < parent->children.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
948 QTreeWidgetItem *child = parent->children.at(i);-
949 parents.push(child);-
950 }
never executed: end of block
0
951 }
never executed: end of block
0
952}
never executed: end of block
0
953Qt::ItemFlags QTreeWidgetItem::flags() const-
954{-
955 return
never executed: return itemFlags;
itemFlags;
never executed: return itemFlags;
0
956}-
957void QTreeWidgetItem::setData(int column, int role, const QVariant &value)-
958{-
959 if (column < 0
column < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
960 return;
never executed: return;
0
961-
962 QTreeModel *model = (view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
? qobject_cast<QTreeModel*>(view->model()) : 0);
0
963 switch (role) {-
964 case
never executed: case Qt::EditRole:
Qt::EditRole:
never executed: case Qt::EditRole:
0
965 case
never executed: case Qt::DisplayRole:
Qt::DisplayRole:
never executed: case Qt::DisplayRole:
{
0
966 if (values.count() <= column
values.count() <= columnDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
967 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
&& this == model->headerItem
this == model->headerItemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
968 model->setColumnCount(column + 1);
never executed: model->setColumnCount(column + 1);
0
969 else-
970 values.resize(column + 1);
never executed: values.resize(column + 1);
0
971 }-
972 if (d->display.count() <= column
d->display.count() <= columnDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
973 for (int i = d->display.count() - 1; i < column - 1
i < column - 1Description
TRUEnever evaluated
FALSEnever evaluated
; ++i)
0
974 d->display.append(QVariant());
never executed: d->display.append(QVariant());
0
975 d->display.append(value);-
976 }
never executed: end of block
else if (d->display[column] != value
d->display[column] != valueDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
977 d->display[column] = value;-
978 }
never executed: end of block
else {
0
979 return;
never executed: return;
0
980 }-
981 } break;
never executed: break;
0
982 case
never executed: case Qt::CheckStateRole:
Qt::CheckStateRole:
never executed: case Qt::CheckStateRole:
0
983 if ((
(itemFlags & Q...sAutoTristate)Description
TRUEnever evaluated
FALSEnever evaluated
itemFlags & Qt::ItemIsAutoTristate)
(itemFlags & Q...sAutoTristate)Description
TRUEnever evaluated
FALSEnever evaluated
&& value != Qt::PartiallyChecked
value != Qt::PartiallyCheckedDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
984 for (int i = 0; i < children.count()
i < children.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
985 QTreeWidgetItem *child = children.at(i);-
986 if (child->data(column, role).isValid()
child->data(co...ole).isValid()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
987 Qt::ItemFlags f = itemFlags;-
988 itemFlags &= ~Qt::ItemIsAutoTristate;-
989 child->setData(column, role, value);-
990 itemFlags = f;-
991 }
never executed: end of block
0
992 }
never executed: end of block
0
993 }
never executed: end of block
0
994-
995 default
never executed: default:
:
never executed: default:
code before this statement never executed: default:
0
996 if (column < values.count()
column < values.count()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
997 bool found = false;-
998 const QVector<QWidgetItemData> column_values = values.at(column);-
999 for (int i = 0; i < column_values.count()
i < column_values.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1000 if (column_values.at(i).role == role
column_values....).role == roleDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1001 if (column_values.at(i).value == value
column_values....value == valueDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1002 return;
never executed: return;
0
1003 values[column][i].value = value;-
1004 found = true;-
1005 break;
never executed: break;
0
1006 }-
1007 }
never executed: end of block
0
1008 if (!found
!foundDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1009 values[column].append(QWidgetItemData(role, value));
never executed: values[column].append(QWidgetItemData(role, value));
0
1010 }
never executed: end of block
else {
0
1011 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
&& this == model->headerItem
this == model->headerItemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1012 model->setColumnCount(column + 1);
never executed: model->setColumnCount(column + 1);
0
1013 else-
1014 values.resize(column + 1);
never executed: values.resize(column + 1);
0
1015 values[column].append(QWidgetItemData(role, value));-
1016 }
never executed: end of block
0
1017 }-
1018-
1019 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1020 model->emitDataChanged(this, column);-
1021 if (role == Qt::CheckStateRole
role == Qt::CheckStateRoleDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1022 QTreeWidgetItem *p;-
1023 for (p = par; p
pDescription
TRUEnever evaluated
FALSEnever evaluated
&& (
(p->itemFlags ...sAutoTristate)Description
TRUEnever evaluated
FALSEnever evaluated
p->itemFlags & Qt::ItemIsAutoTristate)
(p->itemFlags ...sAutoTristate)Description
TRUEnever evaluated
FALSEnever evaluated
; p = p->par)
0
1024 model->emitDataChanged(p, column);
never executed: model->emitDataChanged(p, column);
0
1025 }
never executed: end of block
0
1026 }
never executed: end of block
0
1027}
never executed: end of block
0
1028-
1029-
1030-
1031-
1032QVariant QTreeWidgetItem::data(int column, int role) const-
1033{-
1034 switch (role) {-
1035 case
never executed: case Qt::EditRole:
Qt::EditRole:
never executed: case Qt::EditRole:
0
1036 case
never executed: case Qt::DisplayRole:
Qt::DisplayRole:
never executed: case Qt::DisplayRole:
0
1037 if (column >= 0
column >= 0Description
TRUEnever evaluated
FALSEnever evaluated
&& column < d->display.count()
column < d->display.count()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1038 return
never executed: return d->display.at(column);
d->display.at(column);
never executed: return d->display.at(column);
0
1039 break;
never executed: break;
0
1040 case
never executed: case Qt::CheckStateRole:
Qt::CheckStateRole:
never executed: case Qt::CheckStateRole:
0
1041-
1042 if (children.count()
children.count()Description
TRUEnever evaluated
FALSEnever evaluated
&& (
(itemFlags & Q...sAutoTristate)Description
TRUEnever evaluated
FALSEnever evaluated
itemFlags & Qt::ItemIsAutoTristate)
(itemFlags & Q...sAutoTristate)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1043 return
never executed: return childrenCheckState(column);
childrenCheckState(column);
never executed: return childrenCheckState(column);
0
1044-
1045 default
never executed: default:
:
never executed: default:
code before this statement never executed: default:
0
1046 if (column >= 0
column >= 0Description
TRUEnever evaluated
FALSEnever evaluated
&& column < values.size()
column < values.size()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1047 const QVector<QWidgetItemData> &column_values = values.at(column);-
1048 for (const auto &column_value : column_values) {-
1049 if (column_value.role == role
column_value.role == roleDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1050 return
never executed: return column_value.value;
column_value.value;
never executed: return column_value.value;
0
1051 }
never executed: end of block
0
1052 }
never executed: end of block
0
1053 }
never executed: end of block
0
1054 return
never executed: return QVariant();
QVariant();
never executed: return QVariant();
0
1055}-
1056-
1057-
1058-
1059-
1060-
1061-
1062bool QTreeWidgetItem::operator<(const QTreeWidgetItem &other) const-
1063{-
1064 int column = view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
? view->sortColumn() : 0;
0
1065 const QVariant v1 = data(column, Qt::DisplayRole);-
1066 const QVariant v2 = other.data(column, Qt::DisplayRole);-
1067 return
never executed: return QAbstractItemModelPrivate::variantLessThan(v1, v2);
QAbstractItemModelPrivate::variantLessThan(v1, v2);
never executed: return QAbstractItemModelPrivate::variantLessThan(v1, v2);
0
1068}-
1069void QTreeWidgetItem::read(QDataStream &in)-
1070{-
1071-
1072 if (in.version() < QDataStream::Qt_4_2
in.version() <...Stream::Qt_4_2Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1073 d->display.clear();-
1074 in >> values;-
1075-
1076 for (int column = 0; column < values.count()
column < values.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++column) {
0
1077 d->display << QVariant();-
1078 for (int i = 0; i < values.at(column).count()
i < values.at(column).count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1079 if (values.at(column).at(i).role == Qt::DisplayRole
values.at(colu...t::DisplayRoleDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1080 d->display[column] = values.at(column).at(i).value;-
1081 values[column].remove(i--);-
1082 }
never executed: end of block
0
1083 }
never executed: end of block
0
1084 }
never executed: end of block
0
1085 }
never executed: end of block
else {
0
1086 in >> values >> d->display;-
1087 }
never executed: end of block
0
1088}-
1089-
1090-
1091-
1092-
1093-
1094-
1095void QTreeWidgetItem::write(QDataStream &out) const-
1096{-
1097 out << values << d->display;-
1098}
never executed: end of block
0
1099QTreeWidgetItem::QTreeWidgetItem(const QTreeWidgetItem &other)-
1100 : rtti(Type), values(other.values), view(0),-
1101 d(new QTreeWidgetItemPrivate(this)), par(0),-
1102 itemFlags(other.itemFlags)-
1103{-
1104 d->display = other.d->display;-
1105}
never executed: end of block
0
1106QTreeWidgetItem &QTreeWidgetItem::operator=(const QTreeWidgetItem &other)-
1107{-
1108 values = other.values;-
1109 d->display = other.d->display;-
1110 d->policy = other.d->policy;-
1111 itemFlags = other.itemFlags;-
1112 return
never executed: return *this;
*this;
never executed: return *this;
0
1113}-
1114-
1115-
1116-
1117-
1118-
1119-
1120void QTreeWidgetItem::addChild(QTreeWidgetItem *child)-
1121{-
1122 if (child
childDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1123 insertChild(children.count(), child);-
1124 child->d->rowGuess = children.count() - 1;-
1125 }
never executed: end of block
0
1126}
never executed: end of block
0
1127-
1128-
1129-
1130-
1131-
1132-
1133void QTreeWidgetItem::insertChild(int index, QTreeWidgetItem *child)-
1134{-
1135 if (index < 0
index < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| index > children.count()
index > children.count()Description
TRUEnever evaluated
FALSEnever evaluated
|| child == 0
child == 0Description
TRUEnever evaluated
FALSEnever evaluated
|| child->view != 0
child->view != 0Description
TRUEnever evaluated
FALSEnever evaluated
|| child->par != 0
child->par != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1136 return;
never executed: return;
0
1137-
1138 if (QTreeModel *model = (view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
? qobject_cast<QTreeModel*>(view->model()) : 0)
QTreeModel *mo...>model()) : 0)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1139 const bool wasSkipSort = model->skipPendingSort;-
1140 model->skipPendingSort = true;-
1141 if (model->rootItem == this
model->rootItem == thisDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1142 child->par = 0;
never executed: child->par = 0;
0
1143 else-
1144 child->par = this;
never executed: child->par = this;
0
1145 if (view->isSortingEnabled()
view->isSortingEnabled()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1146-
1147 if (!model->sortPendingTimer.isActive()
!model->sortPe...mer.isActive()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1148 model->sortPendingTimer.start(0, model);
never executed: model->sortPendingTimer.start(0, model);
0
1149 }
never executed: end of block
0
1150 model->beginInsertItems(this, index, 1);-
1151 int cols = model->columnCount();-
1152 QStack<QTreeWidgetItem*> stack;-
1153 stack.push(child);-
1154 while (!stack.isEmpty()
!stack.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1155 QTreeWidgetItem *i = stack.pop();-
1156 i->view = view;-
1157 i->values.reserve(cols);-
1158 for (int c = 0; c < i->children.count()
c < i->children.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++c)
0
1159 stack.push(i->children.at(c));
never executed: stack.push(i->children.at(c));
0
1160 }
never executed: end of block
0
1161 children.insert(index, child);-
1162 model->endInsertItems();-
1163 model->skipPendingSort = wasSkipSort;-
1164 }
never executed: end of block
else {
0
1165 child->par = this;-
1166 children.insert(index, child);-
1167 }
never executed: end of block
0
1168 if (child->par
child->parDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1169 d->propagateDisabled(child);
never executed: d->propagateDisabled(child);
0
1170}
never executed: end of block
0
1171-
1172-
1173-
1174-
1175-
1176void QTreeWidgetItem::removeChild(QTreeWidgetItem *child)-
1177{-
1178 (void)takeChild(children.indexOf(child));-
1179}
never executed: end of block
0
1180-
1181-
1182-
1183-
1184QTreeWidgetItem *QTreeWidgetItem::takeChild(int index)-
1185{-
1186-
1187-
1188 QTreeModel *model = (view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
? qobject_cast<QTreeModel*>(view->model()) : 0);
0
1189 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1190-
1191-
1192-
1193-
1194 model->skipPendingSort = false;-
1195 model->executePendingSort();-
1196 }
never executed: end of block
0
1197 if (index >= 0
index >= 0Description
TRUEnever evaluated
FALSEnever evaluated
&& index < children.count()
index < children.count()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1198 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) model->beginRemoveItems(this, index, 1);
never executed: model->beginRemoveItems(this, index, 1);
0
1199 QTreeWidgetItem *item = children.takeAt(index);-
1200 item->par = 0;-
1201 QStack<QTreeWidgetItem*> stack;-
1202 stack.push(item);-
1203 while (!stack.isEmpty()
!stack.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1204 QTreeWidgetItem *i = stack.pop();-
1205 i->view = 0;-
1206 for (int c = 0; c < i->children.count()
c < i->children.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++c)
0
1207 stack.push(i->children.at(c));
never executed: stack.push(i->children.at(c));
0
1208 }
never executed: end of block
0
1209 d->propagateDisabled(item);-
1210 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) model->endRemoveRows();
never executed: model->endRemoveRows();
0
1211 return
never executed: return item;
item;
never executed: return item;
0
1212 }-
1213 return
never executed: return 0;
0;
never executed: return 0;
0
1214}-
1215void QTreeWidgetItem::addChildren(const QList<QTreeWidgetItem*> &children)-
1216{-
1217 insertChildren(this->children.count(), children);-
1218}
never executed: end of block
0
1219void QTreeWidgetItem::insertChildren(int index, const QList<QTreeWidgetItem*> &children)-
1220{-
1221 if (view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
&& view->isSortingEnabled()
view->isSortingEnabled()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1222 for (int n = 0; n < children.count()
n < children.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++n)
0
1223 insertChild(index, children.at(n));
never executed: insertChild(index, children.at(n));
0
1224 return;
never executed: return;
0
1225 }-
1226 QTreeModel *model = (view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
? qobject_cast<QTreeModel*>(view->model()) : 0);
0
1227 QStack<QTreeWidgetItem*> stack;-
1228 QList<QTreeWidgetItem*> itemsToInsert;-
1229 for (int n = 0; n < children.count()
n < children.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++n) {
0
1230 QTreeWidgetItem *child = children.at(n);-
1231 if (child->view
child->viewDescription
TRUEnever evaluated
FALSEnever evaluated
|| child->par
child->parDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1232 continue;
never executed: continue;
0
1233 itemsToInsert.append(child);-
1234 if (view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
&& model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1235 if (child->childCount() == 0
child->childCount() == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1236 child->view = view;
never executed: child->view = view;
0
1237 else-
1238 stack.push(child);
never executed: stack.push(child);
0
1239 }-
1240 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
&& (
(model->rootItem == this)Description
TRUEnever evaluated
FALSEnever evaluated
model->rootItem == this)
(model->rootItem == this)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1241 child->par = 0;
never executed: child->par = 0;
0
1242 else-
1243 child->par = this;
never executed: child->par = this;
0
1244 }-
1245 if (!itemsToInsert.isEmpty()
!itemsToInsert.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1246 while (!stack.isEmpty()
!stack.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1247 QTreeWidgetItem *i = stack.pop();-
1248 i->view = view;-
1249 for (int c = 0; c < i->children.count()
c < i->children.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++c)
0
1250 stack.push(i->children.at(c));
never executed: stack.push(i->children.at(c));
0
1251 }
never executed: end of block
0
1252 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) model->beginInsertItems(this, index, itemsToInsert.count());
never executed: model->beginInsertItems(this, index, itemsToInsert.count());
0
1253 for (int n = 0; n < itemsToInsert.count()
n < itemsToInsert.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++n) {
0
1254 QTreeWidgetItem *child = itemsToInsert.at(n);-
1255 this->children.insert(index + n, child);-
1256 if (child->par
child->parDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1257 d->propagateDisabled(child);
never executed: d->propagateDisabled(child);
0
1258 }
never executed: end of block
0
1259 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) model->endInsertItems();
never executed: model->endInsertItems();
0
1260 }
never executed: end of block
0
1261}
never executed: end of block
0
1262-
1263-
1264-
1265-
1266-
1267-
1268QList<QTreeWidgetItem*> QTreeWidgetItem::takeChildren()-
1269{-
1270 QList<QTreeWidgetItem*> removed;-
1271 if (children.count() > 0
children.count() > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1272 QTreeModel *model = (view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
? qobject_cast<QTreeModel*>(view->model()) : 0);
0
1273 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1274-
1275-
1276-
1277-
1278 model->executePendingSort();-
1279 }
never executed: end of block
0
1280 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) model->beginRemoveItems(this, 0, children.count());
never executed: model->beginRemoveItems(this, 0, children.count());
0
1281 for (int n = 0; n < children.count()
n < children.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++n) {
0
1282 QTreeWidgetItem *item = children.at(n);-
1283 item->par = 0;-
1284 QStack<QTreeWidgetItem*> stack;-
1285 stack.push(item);-
1286 while (!stack.isEmpty()
!stack.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1287 QTreeWidgetItem *i = stack.pop();-
1288 i->view = 0;-
1289 for (int c = 0; c < i->children.count()
c < i->children.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++c)
0
1290 stack.push(i->children.at(c));
never executed: stack.push(i->children.at(c));
0
1291 }
never executed: end of block
0
1292 d->propagateDisabled(item);-
1293 }
never executed: end of block
0
1294 removed = children;-
1295 children.clear();-
1296 if (model
modelDescription
TRUEnever evaluated
FALSEnever evaluated
) model->endRemoveItems();
never executed: model->endRemoveItems();
0
1297 }
never executed: end of block
0
1298 return
never executed: return removed;
removed;
never executed: return removed;
0
1299}-
1300-
1301-
1302void QTreeWidgetItemPrivate::sortChildren(int column, Qt::SortOrder order, bool climb)-
1303{-
1304 QTreeModel *model = (q->view
q->viewDescription
TRUEnever evaluated
FALSEnever evaluated
? qobject_cast<QTreeModel*>(q->view->model()) : 0);
0
1305 if (!model
!modelDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1306 return;
never executed: return;
0
1307 model->sortItems(&q->children, column, order);-
1308 if (climb
climbDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1309 QList<QTreeWidgetItem*>::iterator it = q->children.begin();-
1310 for (; it != q->children.end()
it != q->children.end()Description
TRUEnever evaluated
FALSEnever evaluated
; ++it) {
0
1311-
1312-
1313 (*it)->d->sortChildren(column, order, climb);-
1314 }
never executed: end of block
0
1315 }
never executed: end of block
0
1316}
never executed: end of block
0
1317void QTreeWidgetItem::sortChildren(int column, Qt::SortOrder order, bool climb)-
1318{-
1319 QTreeModel *model = (view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
? qobject_cast<QTreeModel*>(view->model()) : 0);
0
1320 if (!model
!modelDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1321 return;
never executed: return;
0
1322 if (model->isChanging()
model->isChanging()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1323 return;
never executed: return;
0
1324 QTreeModel::SkipSorting skipSorting(model);-
1325 int oldSortColumn = view->d_func()->explicitSortColumn;-
1326 view->d_func()->explicitSortColumn = column;-
1327 model->layoutAboutToBeChanged();-
1328 d->sortChildren(column, order, climb);-
1329 model->layoutChanged();-
1330 view->d_func()->explicitSortColumn = oldSortColumn;-
1331}
never executed: end of block
0
1332QVariant QTreeWidgetItem::childrenCheckState(int column) const-
1333{-
1334 if (column < 0
column < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1335 return
never executed: return QVariant();
QVariant();
never executed: return QVariant();
0
1336 bool checkedChildren = false;-
1337 bool uncheckedChildren = false;-
1338 for (const auto *child : children) {-
1339 QVariant value = child->data(column, Qt::CheckStateRole);-
1340 if (!value.isValid()
!value.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1341 return
never executed: return QVariant();
QVariant();
never executed: return QVariant();
0
1342-
1343 switch (static_cast<Qt::CheckState>(value.toInt()))-
1344 {-
1345 case
never executed: case Qt::Unchecked:
Qt::Unchecked:
never executed: case Qt::Unchecked:
0
1346 uncheckedChildren = true;-
1347 break;
never executed: break;
0
1348 case
never executed: case Qt::Checked:
Qt::Checked:
never executed: case Qt::Checked:
0
1349 checkedChildren = true;-
1350 break;
never executed: break;
0
1351 case
never executed: case Qt::PartiallyChecked:
Qt::PartiallyChecked:
never executed: case Qt::PartiallyChecked:
0
1352 default
never executed: default:
:
never executed: default:
0
1353 return
never executed: return Qt::PartiallyChecked;
Qt::PartiallyChecked;
never executed: return Qt::PartiallyChecked;
0
1354 }-
1355-
1356 if (uncheckedChildren
uncheckedChildrenDescription
TRUEnever evaluated
FALSEnever evaluated
&& checkedChildren
checkedChildrenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1357 return
never executed: return Qt::PartiallyChecked;
Qt::PartiallyChecked;
never executed: return Qt::PartiallyChecked;
0
1358 }
never executed: end of block
0
1359-
1360 if (uncheckedChildren
uncheckedChildrenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1361 return
never executed: return Qt::Unchecked;
Qt::Unchecked;
never executed: return Qt::Unchecked;
0
1362 else if (checkedChildren
checkedChildrenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1363 return
never executed: return Qt::Checked;
Qt::Checked;
never executed: return Qt::Checked;
0
1364 else-
1365 return
never executed: return QVariant();
QVariant();
never executed: return QVariant();
0
1366}-
1367void QTreeWidgetItem::emitDataChanged()-
1368{-
1369 itemChanged();-
1370}
never executed: end of block
0
1371-
1372-
1373-
1374-
1375void QTreeWidgetItem::itemChanged()-
1376{-
1377 if (QTreeModel *model = (view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
? qobject_cast<QTreeModel*>(view->model()) : 0)
QTreeModel *mo...>model()) : 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1378 model->itemChanged(this);
never executed: model->itemChanged(this);
0
1379}
never executed: end of block
0
1380-
1381-
1382-
1383-
1384void QTreeWidgetItem::executePendingSort() const-
1385{-
1386 if (QTreeModel *model = (view
viewDescription
TRUEnever evaluated
FALSEnever evaluated
? qobject_cast<QTreeModel*>(view->model()) : 0)
QTreeModel *mo...>model()) : 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1387 model->executePendingSort();
never executed: model->executePendingSort();
0
1388}
never executed: end of block
0
1389QDataStream &operator<<(QDataStream &out, const QTreeWidgetItem &item)-
1390{-
1391 item.write(out);-
1392 return
never executed: return out;
out;
never executed: return out;
0
1393}-
1394QDataStream &operator>>(QDataStream &in, QTreeWidgetItem &item)-
1395{-
1396 item.read(in);-
1397 return
never executed: return in;
in;
never executed: return in;
0
1398}-
1399-
1400-
1401-
1402void QTreeWidgetPrivate::_q_emitItemPressed(const QModelIndex &index)-
1403{-
1404 QTreeWidget * const q = q_func();-
1405 q->itemPressed(item(index), index.column());-
1406}
never executed: end of block
0
1407-
1408void QTreeWidgetPrivate::_q_emitItemClicked(const QModelIndex &index)-
1409{-
1410 QTreeWidget * const q = q_func();-
1411 q->itemClicked(item(index), index.column());-
1412}
never executed: end of block
0
1413-
1414void QTreeWidgetPrivate::_q_emitItemDoubleClicked(const QModelIndex &index)-
1415{-
1416 QTreeWidget * const q = q_func();-
1417 q->itemDoubleClicked(item(index), index.column());-
1418}
never executed: end of block
0
1419-
1420void QTreeWidgetPrivate::_q_emitItemActivated(const QModelIndex &index)-
1421{-
1422 QTreeWidget * const q = q_func();-
1423 q->itemActivated(item(index), index.column());-
1424}
never executed: end of block
0
1425-
1426void QTreeWidgetPrivate::_q_emitItemEntered(const QModelIndex &index)-
1427{-
1428 QTreeWidget * const q = q_func();-
1429 q->itemEntered(item(index), index.column());-
1430}
never executed: end of block
0
1431-
1432void QTreeWidgetPrivate::_q_emitItemChanged(const QModelIndex &index)-
1433{-
1434 QTreeWidget * const q = q_func();-
1435 QTreeWidgetItem *indexItem = item(index);-
1436 if (indexItem
indexItemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1437 q->itemChanged(indexItem, index.column());
never executed: q->itemChanged(indexItem, index.column());
0
1438}
never executed: end of block
0
1439-
1440void QTreeWidgetPrivate::_q_emitItemExpanded(const QModelIndex &index)-
1441{-
1442 QTreeWidget * const q = q_func();-
1443 q->itemExpanded(item(index));-
1444}
never executed: end of block
0
1445-
1446void QTreeWidgetPrivate::_q_emitItemCollapsed(const QModelIndex &index)-
1447{-
1448 QTreeWidget * const q = q_func();-
1449 q->itemCollapsed(item(index));-
1450}
never executed: end of block
0
1451-
1452void QTreeWidgetPrivate::_q_emitCurrentItemChanged(const QModelIndex &current,-
1453 const QModelIndex &previous)-
1454{-
1455 QTreeWidget * const q = q_func();-
1456 QTreeWidgetItem *currentItem = item(current);-
1457 QTreeWidgetItem *previousItem = item(previous);-
1458 q->currentItemChanged(currentItem, previousItem);-
1459}
never executed: end of block
0
1460-
1461void QTreeWidgetPrivate::_q_sort()-
1462{-
1463 if (sortingEnabled
sortingEnabledDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1464 int column = header->sortIndicatorSection();-
1465 Qt::SortOrder order = header->sortIndicatorOrder();-
1466 treeModel()->sort(column, order);-
1467 }
never executed: end of block
0
1468}
never executed: end of block
0
1469-
1470void QTreeWidgetPrivate::_q_selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)-
1471{-
1472 QTreeWidget * const q = q_func();-
1473 QModelIndexList indices = selected.indexes();-
1474 int i;-
1475 QTreeModel *m = treeModel();-
1476 for (i = 0; i < indices.count()
i < indices.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1477 QTreeWidgetItem *item = m->item(indices.at(i));-
1478 item->d->selected = true;-
1479 }
never executed: end of block
0
1480-
1481 indices = deselected.indexes();-
1482 for (i = 0; i < indices.count()
i < indices.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1483 QTreeWidgetItem *item = m->item(indices.at(i));-
1484 item->d->selected = false;-
1485 }
never executed: end of block
0
1486-
1487 q->itemSelectionChanged();-
1488}
never executed: end of block
0
1489-
1490void QTreeWidgetPrivate::_q_dataChanged(const QModelIndex &topLeft,-
1491 const QModelIndex &bottomRight)-
1492{-
1493 if (sortingEnabled
sortingEnabledDescription
TRUEnever evaluated
FALSEnever evaluated
&& topLeft.isValid()
topLeft.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
&& bottomRight.isValid()
bottomRight.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
0
1494 && !treeModel()->sortPendingTimer.isActive()
!treeModel()->...mer.isActive()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1495 int column = header->sortIndicatorSection();-
1496 if (column >= topLeft.column()
column >= topLeft.column()Description
TRUEnever evaluated
FALSEnever evaluated
&& column <= bottomRight.column()
column <= bottomRight.column()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1497 Qt::SortOrder order = header->sortIndicatorOrder();-
1498 treeModel()->ensureSorted(column, order, topLeft.row(),-
1499 bottomRight.row(), topLeft.parent());-
1500 }
never executed: end of block
0
1501 }
never executed: end of block
0
1502}
never executed: end of block
0
1503QTreeWidget::QTreeWidget(QWidget *parent)-
1504 : QTreeView(*new QTreeWidgetPrivate(), parent)-
1505{-
1506 QTreeView::setModel(new QTreeModel(1, this));-
1507 connect(this, qFlagLocation("2""pressed(QModelIndex)" "\0" __FILE__ ":" "2526"),-
1508 qFlagLocation("1""_q_emitItemPressed(QModelIndex)" "\0" __FILE__ ":" "2527"));-
1509 connect(this, qFlagLocation("2""clicked(QModelIndex)" "\0" __FILE__ ":" "2528"),-
1510 qFlagLocation("1""_q_emitItemClicked(QModelIndex)" "\0" __FILE__ ":" "2529"));-
1511 connect(this, qFlagLocation("2""doubleClicked(QModelIndex)" "\0" __FILE__ ":" "2530"),-
1512 qFlagLocation("1""_q_emitItemDoubleClicked(QModelIndex)" "\0" __FILE__ ":" "2531"));-
1513 connect(this, qFlagLocation("2""activated(QModelIndex)" "\0" __FILE__ ":" "2532"),-
1514 qFlagLocation("1""_q_emitItemActivated(QModelIndex)" "\0" __FILE__ ":" "2533"));-
1515 connect(this, qFlagLocation("2""entered(QModelIndex)" "\0" __FILE__ ":" "2534"),-
1516 qFlagLocation("1""_q_emitItemEntered(QModelIndex)" "\0" __FILE__ ":" "2535"));-
1517 connect(this, qFlagLocation("2""expanded(QModelIndex)" "\0" __FILE__ ":" "2536"),-
1518 qFlagLocation("1""_q_emitItemExpanded(QModelIndex)" "\0" __FILE__ ":" "2537"));-
1519 connect(this, qFlagLocation("2""collapsed(QModelIndex)" "\0" __FILE__ ":" "2538"),-
1520 qFlagLocation("1""_q_emitItemCollapsed(QModelIndex)" "\0" __FILE__ ":" "2539"));-
1521 connect(selectionModel(), qFlagLocation("2""currentChanged(QModelIndex,QModelIndex)" "\0" __FILE__ ":" "2540"),-
1522 this, qFlagLocation("1""_q_emitCurrentItemChanged(QModelIndex,QModelIndex)" "\0" __FILE__ ":" "2541"));-
1523 connect(model(), qFlagLocation("2""dataChanged(QModelIndex,QModelIndex)" "\0" __FILE__ ":" "2542"),-
1524 this, qFlagLocation("1""_q_emitItemChanged(QModelIndex)" "\0" __FILE__ ":" "2543"));-
1525 connect(model(), qFlagLocation("2""dataChanged(QModelIndex,QModelIndex)" "\0" __FILE__ ":" "2544"),-
1526 this, qFlagLocation("1""_q_dataChanged(QModelIndex,QModelIndex)" "\0" __FILE__ ":" "2545"));-
1527 connect(model(), qFlagLocation("2""columnsRemoved(QModelIndex,int,int)" "\0" __FILE__ ":" "2546"),-
1528 this, qFlagLocation("1""_q_sort()" "\0" __FILE__ ":" "2547"));-
1529 connect(selectionModel(), qFlagLocation("2""selectionChanged(QItemSelection,QItemSelection)" "\0" __FILE__ ":" "2548"),-
1530 this, qFlagLocation("1""_q_selectionChanged(QItemSelection,QItemSelection)" "\0" __FILE__ ":" "2549"));-
1531 header()->setSectionsClickable(false);-
1532}
never executed: end of block
0
1533-
1534-
1535-
1536-
1537-
1538QTreeWidget::~QTreeWidget()-
1539{-
1540}-
1541-
1542-
1543-
1544-
1545-
1546-
1547-
1548int QTreeWidget::columnCount() const-
1549{-
1550 const QTreeWidgetPrivate * const d = d_func();-
1551 return
never executed: return d->model->columnCount();
d->model->columnCount();
never executed: return d->model->columnCount();
0
1552}-
1553-
1554-
1555-
1556-
1557-
1558void QTreeWidget::setColumnCount(int columns)-
1559{-
1560 QTreeWidgetPrivate * const d = d_func();-
1561 if (columns < 0
columns < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1562 return;
never executed: return;
0
1563 d->treeModel()->setColumnCount(columns);-
1564}
never executed: end of block
0
1565QTreeWidgetItem *QTreeWidget::invisibleRootItem() const-
1566{-
1567 const QTreeWidgetPrivate * const d = d_func();-
1568 return
never executed: return d->treeModel()->rootItem;
d->treeModel()->rootItem;
never executed: return d->treeModel()->rootItem;
0
1569}-
1570QTreeWidgetItem *QTreeWidget::topLevelItem(int index) const-
1571{-
1572 const QTreeWidgetPrivate * const d = d_func();-
1573 return
never executed: return d->treeModel()->rootItem->child(index);
d->treeModel()->rootItem->child(index);
never executed: return d->treeModel()->rootItem->child(index);
0
1574}-
1575int QTreeWidget::topLevelItemCount() const-
1576{-
1577 const QTreeWidgetPrivate * const d = d_func();-
1578 return
never executed: return d->treeModel()->rootItem->childCount();
d->treeModel()->rootItem->childCount();
never executed: return d->treeModel()->rootItem->childCount();
0
1579}-
1580void QTreeWidget::insertTopLevelItem(int index, QTreeWidgetItem *item)-
1581{-
1582 QTreeWidgetPrivate * const d = d_func();-
1583 d->treeModel()->rootItem->insertChild(index, item);-
1584}
never executed: end of block
0
1585void QTreeWidget::addTopLevelItem(QTreeWidgetItem *item)-
1586{-
1587 insertTopLevelItem(topLevelItemCount(), item);-
1588}
never executed: end of block
0
1589QTreeWidgetItem *QTreeWidget::takeTopLevelItem(int index)-
1590{-
1591 QTreeWidgetPrivate * const d = d_func();-
1592 return
never executed: return d->treeModel()->rootItem->takeChild(index);
d->treeModel()->rootItem->takeChild(index);
never executed: return d->treeModel()->rootItem->takeChild(index);
0
1593}-
1594-
1595-
1596-
1597-
1598-
1599-
1600-
1601int QTreeWidget::indexOfTopLevelItem(QTreeWidgetItem *item) const-
1602{-
1603 const QTreeWidgetPrivate * const d = d_func();-
1604 d->treeModel()->executePendingSort();-
1605 return
never executed: return d->treeModel()->rootItem->children.indexOf(item);
d->treeModel()->rootItem->children.indexOf(item);
never executed: return d->treeModel()->rootItem->children.indexOf(item);
0
1606}-
1607void QTreeWidget::insertTopLevelItems(int index, const QList<QTreeWidgetItem*> &items)-
1608{-
1609 QTreeWidgetPrivate * const d = d_func();-
1610 d->treeModel()->rootItem->insertChildren(index, items);-
1611}
never executed: end of block
0
1612-
1613-
1614-
1615-
1616-
1617-
1618void QTreeWidget::addTopLevelItems(const QList<QTreeWidgetItem*> &items)-
1619{-
1620 insertTopLevelItems(topLevelItemCount(), items);-
1621}
never executed: end of block
0
1622-
1623-
1624-
1625-
1626-
1627-
1628-
1629QTreeWidgetItem *QTreeWidget::headerItem() const-
1630{-
1631 const QTreeWidgetPrivate * const d = d_func();-
1632 return
never executed: return d->treeModel()->headerItem;
d->treeModel()->headerItem;
never executed: return d->treeModel()->headerItem;
0
1633}-
1634void QTreeWidget::setHeaderItem(QTreeWidgetItem *item)-
1635{-
1636 QTreeWidgetPrivate * const d = d_func();-
1637 if (!item
!itemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1638 return;
never executed: return;
0
1639 item->view = this;-
1640-
1641 int oldCount = columnCount();-
1642 if (oldCount < item->columnCount()
oldCount < item->columnCount()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1643 d->treeModel()->beginInsertColumns(QModelIndex(), oldCount, item->columnCount());
never executed: d->treeModel()->beginInsertColumns(QModelIndex(), oldCount, item->columnCount());
0
1644 else-
1645 d->treeModel()->beginRemoveColumns(QModelIndex(), item->columnCount(), oldCount);
never executed: d->treeModel()->beginRemoveColumns(QModelIndex(), item->columnCount(), oldCount);
0
1646 delete d->treeModel()->headerItem;-
1647 d->treeModel()->headerItem = item;-
1648 if (oldCount < item->columnCount()
oldCount < item->columnCount()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1649 d->treeModel()->endInsertColumns();
never executed: d->treeModel()->endInsertColumns();
0
1650 else-
1651 d->treeModel()->endRemoveColumns();
never executed: d->treeModel()->endRemoveColumns();
0
1652 d->treeModel()->headerDataChanged(Qt::Horizontal, 0, oldCount);-
1653}
never executed: end of block
0
1654void QTreeWidget::setHeaderLabels(const QStringList &labels)-
1655{-
1656 QTreeWidgetPrivate * const d = d_func();-
1657 if (columnCount() < labels.count()
columnCount() < labels.count()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1658 setColumnCount(labels.count());
never executed: setColumnCount(labels.count());
0
1659 QTreeWidgetItem *item = d->treeModel()->headerItem;-
1660 for (int i = 0; i < labels.count()
i < labels.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i)
0
1661 item->setText(i, labels.at(i));
never executed: item->setText(i, labels.at(i));
0
1662}
never executed: end of block
0
1663QTreeWidgetItem *QTreeWidget::currentItem() const-
1664{-
1665 const QTreeWidgetPrivate * const d = d_func();-
1666 return
never executed: return d->item(currentIndex());
d->item(currentIndex());
never executed: return d->item(currentIndex());
0
1667}-
1668-
1669-
1670-
1671-
1672-
1673-
1674-
1675int QTreeWidget::currentColumn() const-
1676{-
1677 return
never executed: return currentIndex().column();
currentIndex().column();
never executed: return currentIndex().column();
0
1678}-
1679void QTreeWidget::setCurrentItem(QTreeWidgetItem *item)-
1680{-
1681 setCurrentItem(item, 0);-
1682}
never executed: end of block
0
1683-
1684-
1685-
1686-
1687-
1688-
1689-
1690void QTreeWidget::setCurrentItem(QTreeWidgetItem *item, int column)-
1691{-
1692 QTreeWidgetPrivate * const d = d_func();-
1693 setCurrentIndex(d->index(item, column));-
1694}
never executed: end of block
0
1695void QTreeWidget::setCurrentItem(QTreeWidgetItem *item, int column,-
1696 QItemSelectionModel::SelectionFlags command)-
1697{-
1698 QTreeWidgetPrivate * const d = d_func();-
1699 d->selectionModel->setCurrentIndex(d->index(item, column), command);-
1700}
never executed: end of block
0
1701QTreeWidgetItem *QTreeWidget::itemAt(const QPoint &p) const-
1702{-
1703 const QTreeWidgetPrivate * const d = d_func();-
1704 return
never executed: return d->item(indexAt(p));
d->item(indexAt(p));
never executed: return d->item(indexAt(p));
0
1705}-
1706QRect QTreeWidget::visualItemRect(const QTreeWidgetItem *item) const-
1707{-
1708 const QTreeWidgetPrivate * const d = d_func();-
1709-
1710-
1711 QModelIndex base = d->index(item);-
1712 const int firstVisiblesection = header()->logicalIndexAt(- header()->offset());-
1713 const int lastVisibleSection = header()->logicalIndexAt(header()->length() - header()->offset() - 1);-
1714 QModelIndex first = base.sibling(base.row(), header()->logicalIndex(firstVisiblesection));-
1715 QModelIndex last = base.sibling(base.row(), header()->logicalIndex(lastVisibleSection));-
1716 return
never executed: return visualRect(first) | visualRect(last);
visualRect(first) | visualRect(last);
never executed: return visualRect(first) | visualRect(last);
0
1717}-
1718int QTreeWidget::sortColumn() const-
1719{-
1720 const QTreeWidgetPrivate * const d = d_func();-
1721 return
never executed: return (d->explicitSortColumn != -1 ? d->explicitSortColumn : header()->sortIndicatorSection());
(d->explicitSortColumn != -1
never executed: return (d->explicitSortColumn != -1 ? d->explicitSortColumn : header()->sortIndicatorSection());
0
1722 ? d->explicitSortColumn
never executed: return (d->explicitSortColumn != -1 ? d->explicitSortColumn : header()->sortIndicatorSection());
0
1723 : header()->sortIndicatorSection());
never executed: return (d->explicitSortColumn != -1 ? d->explicitSortColumn : header()->sortIndicatorSection());
0
1724}-
1725void QTreeWidget::sortItems(int column, Qt::SortOrder order)-
1726{-
1727 QTreeWidgetPrivate * const d = d_func();-
1728 header()->setSortIndicator(column, order);-
1729 d->model->sort(column, order);-
1730}
never executed: end of block
0
1731-
1732-
1733-
1734-
1735-
1736void QTreeWidget::editItem(QTreeWidgetItem *item, int column)-
1737{-
1738 QTreeWidgetPrivate * const d = d_func();-
1739 edit(d->index(item, column));-
1740}
never executed: end of block
0
1741-
1742-
1743-
1744-
1745-
1746-
1747-
1748void QTreeWidget::openPersistentEditor(QTreeWidgetItem *item, int column)-
1749{-
1750 QTreeWidgetPrivate * const d = d_func();-
1751 QAbstractItemView::openPersistentEditor(d->index(item, column));-
1752}
never executed: end of block
0
1753void QTreeWidget::closePersistentEditor(QTreeWidgetItem *item, int column)-
1754{-
1755 QTreeWidgetPrivate * const d = d_func();-
1756 QAbstractItemView::closePersistentEditor(d->index(item, column));-
1757}
never executed: end of block
0
1758-
1759-
1760-
1761-
1762-
1763-
1764-
1765QWidget *QTreeWidget::itemWidget(QTreeWidgetItem *item, int column) const-
1766{-
1767 const QTreeWidgetPrivate * const d = d_func();-
1768 return
never executed: return QAbstractItemView::indexWidget(d->index(item, column));
QAbstractItemView::indexWidget(d->index(item, column));
never executed: return QAbstractItemView::indexWidget(d->index(item, column));
0
1769}-
1770void QTreeWidget::setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget)-
1771{-
1772 QTreeWidgetPrivate * const d = d_func();-
1773 QAbstractItemView::setIndexWidget(d->index(item, column), widget);-
1774}
never executed: end of block
0
1775bool QTreeWidget::isItemSelected(const QTreeWidgetItem *item) const-
1776{-
1777 if (!item
!itemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1778 return
never executed: return false;
false;
never executed: return false;
0
1779 return
never executed: return item->d->selected;
item->d->selected;
never executed: return item->d->selected;
0
1780}-
1781void QTreeWidget::setItemSelected(const QTreeWidgetItem *item, bool select)-
1782{-
1783 QTreeWidgetPrivate * const d = d_func();-
1784-
1785 if (!item
!itemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1786 return;
never executed: return;
0
1787-
1788 selectionModel()->select(d->index(item), (select ? QItemSelectionModel::Select-
1789 : QItemSelectionModel::Deselect)-
1790 |QItemSelectionModel::Rows);-
1791 item->d->selected = select;-
1792}
never executed: end of block
0
1793-
1794-
1795-
1796-
1797-
1798-
1799QList<QTreeWidgetItem*> QTreeWidget::selectedItems() const-
1800{-
1801 const QTreeWidgetPrivate * const d = d_func();-
1802 const QModelIndexList indexes = selectionModel()->selectedIndexes();-
1803 QList<QTreeWidgetItem*> items;-
1804 items.reserve(indexes.count());-
1805 QSet<QTreeWidgetItem *> seen;-
1806 seen.reserve(indexes.count());-
1807 for (const auto &index : indexes) {-
1808 QTreeWidgetItem *item = d->item(index);-
1809 if (isItemHidden(item)
isItemHidden(item)Description
TRUEnever evaluated
FALSEnever evaluated
|| seen.contains(item)
seen.contains(item)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1810 continue;
never executed: continue;
0
1811 seen.insert(item);-
1812 items.append(item);-
1813 }
never executed: end of block
0
1814 return
never executed: return items;
items;
never executed: return items;
0
1815}-
1816-
1817-
1818-
1819-
1820QList<QTreeWidgetItem*> QTreeWidget::findItems(const QString &text, Qt::MatchFlags flags, int column) const-
1821{-
1822 const QTreeWidgetPrivate * const d = d_func();-
1823 QModelIndexList indexes = d->model->match(model()->index(0, column, QModelIndex()),-
1824 Qt::DisplayRole, text, -1, flags);-
1825 QList<QTreeWidgetItem*> items;-
1826 const int indexesSize = indexes.size();-
1827 items.reserve(indexesSize);-
1828 for (int i = 0; i < indexesSize
i < indexesSizeDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i)
0
1829 items.append(d->item(indexes.at(i)));
never executed: items.append(d->item(indexes.at(i)));
0
1830 return
never executed: return items;
items;
never executed: return items;
0
1831}-
1832bool QTreeWidget::isItemHidden(const QTreeWidgetItem *item) const-
1833{-
1834 const QTreeWidgetPrivate * const d = d_func();-
1835 if (item == d->treeModel()->headerItem
item == d->tre...()->headerItemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1836 return
never executed: return header()->isHidden();
header()->isHidden();
never executed: return header()->isHidden();
0
1837 if (d->hiddenIndexes.isEmpty()
d->hiddenIndexes.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1838 return
never executed: return false;
false;
never executed: return false;
0
1839 QTreeModel::SkipSorting skipSorting(d->treeModel());-
1840 return
never executed: return d->isRowHidden(d->index(item));
d->isRowHidden(d->index(item));
never executed: return d->isRowHidden(d->index(item));
0
1841}-
1842void QTreeWidget::setItemHidden(const QTreeWidgetItem *item, bool hide)-
1843{-
1844 QTreeWidgetPrivate * const d = d_func();-
1845 if (item == d->treeModel()->headerItem
item == d->tre...()->headerItemDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1846 header()->setHidden(hide);-
1847 }
never executed: end of block
else {
0
1848 const QModelIndex index = d->index(item);-
1849 setRowHidden(index.row(), index.parent(), hide);-
1850 }
never executed: end of block
0
1851}-
1852bool QTreeWidget::isItemExpanded(const QTreeWidgetItem *item) const-
1853{-
1854 const QTreeWidgetPrivate * const d = d_func();-
1855 QTreeModel::SkipSorting skipSorting(d->treeModel());-
1856 return
never executed: return isExpanded(d->index(item));
isExpanded(d->index(item));
never executed: return isExpanded(d->index(item));
0
1857}-
1858void QTreeWidget::setItemExpanded(const QTreeWidgetItem *item, bool expand)-
1859{-
1860 QTreeWidgetPrivate * const d = d_func();-
1861 QTreeModel::SkipSorting skipSorting(d->treeModel());-
1862 setExpanded(d->index(item), expand);-
1863}
never executed: end of block
0
1864bool QTreeWidget::isFirstItemColumnSpanned(const QTreeWidgetItem *item) const-
1865{-
1866 const QTreeWidgetPrivate * const d = d_func();-
1867 if (item == d->treeModel()->headerItem
item == d->tre...()->headerItemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1868 return
never executed: return false;
false;
never executed: return false;
0
1869 const QModelIndex index = d->index(item);-
1870 return
never executed: return isFirstColumnSpanned(index.row(), index.parent());
isFirstColumnSpanned(index.row(), index.parent());
never executed: return isFirstColumnSpanned(index.row(), index.parent());
0
1871}-
1872void QTreeWidget::setFirstItemColumnSpanned(const QTreeWidgetItem *item, bool span)-
1873{-
1874 QTreeWidgetPrivate * const d = d_func();-
1875 if (item == d->treeModel()->headerItem
item == d->tre...()->headerItemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1876 return;
never executed: return;
0
1877 const QModelIndex index = d->index(item);-
1878 setFirstColumnSpanned(index.row(), index.parent(), span);-
1879}
never executed: end of block
0
1880-
1881-
1882-
1883-
1884-
1885-
1886QTreeWidgetItem *QTreeWidget::itemAbove(const QTreeWidgetItem *item) const-
1887{-
1888 const QTreeWidgetPrivate * const d = d_func();-
1889 if (item == d->treeModel()->headerItem
item == d->tre...()->headerItemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1890 return
never executed: return 0;
0;
never executed: return 0;
0
1891 const QModelIndex index = d->index(item);-
1892 const QModelIndex above = indexAbove(index);-
1893 return
never executed: return d->item(above);
d->item(above);
never executed: return d->item(above);
0
1894}-
1895-
1896-
1897-
1898-
1899-
1900-
1901QTreeWidgetItem *QTreeWidget::itemBelow(const QTreeWidgetItem *item) const-
1902{-
1903 const QTreeWidgetPrivate * const d = d_func();-
1904 if (item == d->treeModel()->headerItem
item == d->tre...()->headerItemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1905 return
never executed: return 0;
0;
never executed: return 0;
0
1906 const QModelIndex index = d->index(item);-
1907 const QModelIndex below = indexBelow(index);-
1908 return
never executed: return d->item(below);
d->item(below);
never executed: return d->item(below);
0
1909}-
1910-
1911-
1912-
1913-
1914void QTreeWidget::setSelectionModel(QItemSelectionModel *selectionModel)-
1915{-
1916 QTreeWidgetPrivate * const d = d_func();-
1917 QTreeView::setSelectionModel(selectionModel);-
1918 QItemSelection newSelection = selectionModel->selection();-
1919 if (!newSelection.isEmpty()
!newSelection.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1920 d->_q_selectionChanged(newSelection, QItemSelection());
never executed: d->_q_selectionChanged(newSelection, QItemSelection());
0
1921}
never executed: end of block
0
1922-
1923-
1924-
1925-
1926-
1927-
1928-
1929void QTreeWidget::scrollToItem(const QTreeWidgetItem *item, QAbstractItemView::ScrollHint hint)-
1930{-
1931 QTreeWidgetPrivate * const d = d_func();-
1932 QTreeView::scrollTo(d->index(item), hint);-
1933}
never executed: end of block
0
1934-
1935-
1936-
1937-
1938-
1939-
1940-
1941void QTreeWidget::expandItem(const QTreeWidgetItem *item)-
1942{-
1943 QTreeWidgetPrivate * const d = d_func();-
1944 QTreeModel::SkipSorting skipSorting(d->treeModel());-
1945 expand(d->index(item));-
1946}
never executed: end of block
0
1947-
1948-
1949-
1950-
1951-
1952-
1953-
1954void QTreeWidget::collapseItem(const QTreeWidgetItem *item)-
1955{-
1956 QTreeWidgetPrivate * const d = d_func();-
1957 QTreeModel::SkipSorting skipSorting(d->treeModel());-
1958 collapse(d->index(item));-
1959}
never executed: end of block
0
1960void QTreeWidget::clear()-
1961{-
1962 QTreeWidgetPrivate * const d = d_func();-
1963 selectionModel()->clear();-
1964 d->treeModel()->clear();-
1965}
never executed: end of block
0
1966-
1967-
1968-
1969-
1970-
1971-
1972-
1973QStringList QTreeWidget::mimeTypes() const-
1974{-
1975 return
never executed: return model()->QAbstractItemModel::mimeTypes();
model()->QAbstractItemModel::mimeTypes();
never executed: return model()->QAbstractItemModel::mimeTypes();
0
1976}-
1977QMimeData *QTreeWidget::mimeData(const QList<QTreeWidgetItem*> items) const-
1978-
1979{-
1980 const QTreeWidgetPrivate * const d = d_func();-
1981 if (d->treeModel()->cachedIndexes.isEmpty()
d->treeModel()...exes.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1982 QList<QModelIndex> indexes;-
1983 for (const auto *item : items) {-
1984 if (__builtin_expect(!!(!item), false)
__builtin_expe...!item), false)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1985 QMessageLogger(__FILE__, 3291, __PRETTY_FUNCTION__).warning("QTreeWidget::mimeData: Null-item passed");-
1986 return
never executed: return 0;
0;
never executed: return 0;
0
1987 }-
1988-
1989 for (int c = 0; c < item->values.count()
c < item->values.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++c) {
0
1990 const QModelIndex index = indexFromItem(item, c);-
1991 if (__builtin_expect(!!(!index.isValid()), false)
__builtin_expe...lid()), false)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1992 QMessageLogger(__FILE__, 3298, __PRETTY_FUNCTION__).warning() << "QTreeWidget::mimeData: No index associated with item :" << item;-
1993 return
never executed: return 0;
0;
never executed: return 0;
0
1994 }-
1995 indexes << index;-
1996 }
never executed: end of block
0
1997 }
never executed: end of block
0
1998 return
never executed: return d->model->QAbstractItemModel::mimeData(indexes);
d->model->QAbstractItemModel::mimeData(indexes);
never executed: return d->model->QAbstractItemModel::mimeData(indexes);
0
1999 }-
2000 return
never executed: return d->treeModel()->internalMimeData();
d->treeModel()->internalMimeData();
never executed: return d->treeModel()->internalMimeData();
0
2001}-
2002bool QTreeWidget::dropMimeData(QTreeWidgetItem *parent, int index,-
2003 const QMimeData *data, Qt::DropAction action)-
2004{-
2005 QModelIndex idx;-
2006 if (parent
parentDescription
TRUEnever evaluated
FALSEnever evaluated
) idx = indexFromItem(parent);
never executed: idx = indexFromItem(parent);
0
2007 return
never executed: return model()->QAbstractItemModel::dropMimeData(data, action , index, 0, idx);
model()->QAbstractItemModel::dropMimeData(data, action , index, 0, idx);
never executed: return model()->QAbstractItemModel::dropMimeData(data, action , index, 0, idx);
0
2008}-
2009-
2010-
2011-
2012-
2013-
2014-
2015Qt::DropActions QTreeWidget::supportedDropActions() const-
2016{-
2017 return
never executed: return model()->QAbstractItemModel::supportedDropActions() | Qt::MoveAction;
model()->QAbstractItemModel::supportedDropActions() | Qt::MoveAction;
never executed: return model()->QAbstractItemModel::supportedDropActions() | Qt::MoveAction;
0
2018}-
2019-
2020-
2021-
2022-
2023-
2024-
2025-
2026QList<QTreeWidgetItem*> QTreeWidget::items(const QMimeData *data) const-
2027{-
2028 (void)data;;-
2029 return
never executed: return QList<QTreeWidgetItem*>();
QList<QTreeWidgetItem*>();
never executed: return QList<QTreeWidgetItem*>();
0
2030}-
2031QModelIndex QTreeWidget::indexFromItem(const QTreeWidgetItem *item, int column) const-
2032{-
2033 const QTreeWidgetPrivate * const d = d_func();-
2034 return
never executed: return d->index(item, column);
d->index(item, column);
never executed: return d->index(item, column);
0
2035}-
2036-
2037-
2038-
2039-
2040-
2041QModelIndex QTreeWidget::indexFromItem(QTreeWidgetItem *item, int column) const-
2042{-
2043 return
never executed: return indexFromItem(const_cast<const QTreeWidgetItem *>(item), column);
indexFromItem(const_cast<const QTreeWidgetItem *>(item), column);
never executed: return indexFromItem(const_cast<const QTreeWidgetItem *>(item), column);
0
2044}-
2045-
2046-
2047-
2048-
2049-
2050-
2051QTreeWidgetItem *QTreeWidget::itemFromIndex(const QModelIndex &index) const-
2052{-
2053 const QTreeWidgetPrivate * const d = d_func();-
2054 return
never executed: return d->item(index);
d->item(index);
never executed: return d->item(index);
0
2055}-
2056-
2057-
2058-
2059void QTreeWidget::dropEvent(QDropEvent *event) {-
2060 QTreeWidgetPrivate * const d = d_func();-
2061 if (event->source() == this
event->source() == thisDescription
TRUEnever evaluated
FALSEnever evaluated
&& (event->dropAction() == Qt::MoveAction
event->dropAct...Qt::MoveActionDescription
TRUEnever evaluated
FALSEnever evaluated
||
0
2062 dragDropMode() == QAbstractItemView::InternalMove
dragDropMode()...::InternalMoveDescription
TRUEnever evaluated
FALSEnever evaluated
)) {
0
2063 QModelIndex topIndex;-
2064 int col = -1;-
2065 int row = -1;-
2066 if (d->dropOn(event, &row, &col, &topIndex)
d->dropOn(even...ol, &topIndex)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2067 const QList<QModelIndex> idxs = selectedIndexes();-
2068 QList<QPersistentModelIndex> indexes;-
2069 const int indexesCount = idxs.count();-
2070 indexes.reserve(indexesCount);-
2071 for (const auto &idx : idxs)-
2072 indexes.append(idx);
never executed: indexes.append(idx);
0
2073-
2074 if (indexes.contains(topIndex)
indexes.contains(topIndex)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2075 return;
never executed: return;
0
2076-
2077-
2078 QPersistentModelIndex dropRow = model()->index(row, col, topIndex);-
2079-
2080-
2081 QList<QTreeWidgetItem *> taken;-
2082 for (const auto &index : indexes) {-
2083 QTreeWidgetItem *parent = itemFromIndex(index);-
2084 if (!parent
!parentDescription
TRUEnever evaluated
FALSEnever evaluated
|| !parent->parent()
!parent->parent()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2085 taken.append(takeTopLevelItem(index.row()));-
2086 }
never executed: end of block
else {
0
2087 taken.append(parent->parent()->takeChild(index.row()));-
2088 }
never executed: end of block
0
2089 }-
2090-
2091-
2092 for (int i = 0; i < indexes.count()
i < indexes.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
2093-
2094 if (row == -1
row == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2095 if (topIndex.isValid()
topIndex.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2096 QTreeWidgetItem *parent = itemFromIndex(topIndex);-
2097 parent->insertChild(parent->childCount(), taken.takeFirst());-
2098 }
never executed: end of block
else {
0
2099 insertTopLevelItem(topLevelItemCount(), taken.takeFirst());-
2100 }
never executed: end of block
0
2101 } else {-
2102 int r = dropRow.row() >= 0
dropRow.row() >= 0Description
TRUEnever evaluated
FALSEnever evaluated
? dropRow.row() : row;
0
2103 if (topIndex.isValid()
topIndex.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2104 QTreeWidgetItem *parent = itemFromIndex(topIndex);-
2105 parent->insertChild(qMin(r, parent->childCount()), taken.takeFirst());-
2106 }
never executed: end of block
else {
0
2107 insertTopLevelItem(qMin(r, topLevelItemCount()), taken.takeFirst());-
2108 }
never executed: end of block
0
2109 }-
2110 }-
2111-
2112 event->accept();-
2113-
2114 event->setDropAction(Qt::CopyAction);-
2115 }
never executed: end of block
0
2116 }
never executed: end of block
0
2117-
2118 QTreeView::dropEvent(event);-
2119}
never executed: end of block
0
2120-
2121-
2122-
2123-
2124-
2125-
2126void QTreeWidget::setModel(QAbstractItemModel * )-
2127{-
2128 ((!(!"QTreeWidget::setModel() - Changing the model of the QTreeWidget is not allowed.")) ? qt_assert("!\"QTreeWidget::setModel() - Changing the model of the QTreeWidget is not allowed.\"",__FILE__,3453) : qt_noop());-
2129}
never executed: end of block
0
2130-
2131-
2132-
2133-
2134bool QTreeWidget::event(QEvent *e)-
2135{-
2136 QTreeWidgetPrivate * const d = d_func();-
2137 if (e->type() == QEvent::Polish
e->type() == QEvent::PolishDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2138 d->treeModel()->executePendingSort();
never executed: d->treeModel()->executePendingSort();
0
2139 return
never executed: return QTreeView::event(e);
QTreeView::event(e);
never executed: return QTreeView::event(e);
0
2140}-
2141-
2142-
2143-
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9