qtreewidgetitemiterator.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/widgets/itemviews/qtreewidgetitemiterator.cpp
Source codeSwitch to Preprocessed file
LineSourceCount
1/****************************************************************************-
2**-
3** Copyright (C) 2015 The Qt Company Ltd.-
4** Contact: http://www.qt.io/licensing/-
5**-
6** This file is part of the QtWidgets module of the Qt Toolkit.-
7**-
8** $QT_BEGIN_LICENSE:LGPL21$-
9** Commercial License Usage-
10** Licensees holding valid commercial Qt licenses may use this file in-
11** accordance with the commercial license agreement provided with the-
12** Software or, alternatively, in accordance with the terms contained in-
13** a written agreement between you and The Qt Company. For licensing terms-
14** and conditions see http://www.qt.io/terms-conditions. For further-
15** information use the contact form at http://www.qt.io/contact-us.-
16**-
17** GNU Lesser General Public License Usage-
18** Alternatively, this file may be used under the terms of the GNU Lesser-
19** General Public License version 2.1 or version 3 as published by the Free-
20** Software Foundation and appearing in the file LICENSE.LGPLv21 and-
21** LICENSE.LGPLv3 included in the packaging of this file. Please review the-
22** following information to ensure the GNU Lesser General Public License-
23** requirements will be met: https://www.gnu.org/licenses/lgpl.html and-
24** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.-
25**-
26** As a special exception, The Qt Company gives you certain additional-
27** rights. These rights are described in The Qt Company LGPL Exception-
28** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.-
29**-
30** $QT_END_LICENSE$-
31**-
32****************************************************************************/-
33-
34#include <private/qtreewidgetitemiterator_p.h>-
35#include "qtreewidget.h"-
36#include "qtreewidget_p.h"-
37#include "qwidgetitemdata_p.h"-
38-
39#ifndef QT_NO_TREEWIDGET-
40-
41QT_BEGIN_NAMESPACE-
42-
43/*!-
44 \class QTreeWidgetItemIterator-
45 \ingroup model-view-
46 \inmodule QtWidgets-
47-
48 \brief The QTreeWidgetItemIterator class provides a way to iterate over the-
49 items in a QTreeWidget instance.-
50-
51 The iterator will walk the items in a pre-order traversal order, thus visiting the-
52 parent node \e before it continues to the child nodes.-
53-
54 For example, the following code examples each item in a tree, checking the-
55 text in the first column against a user-specified search string:-
56-
57 \snippet qtreewidgetitemiterator-using/mainwindow.cpp 0-
58-
59 It is also possible to filter out certain types of node by passing certain-
60 \l{IteratorFlag}{flags} to the constructor of QTreeWidgetItemIterator.-
61-
62 \sa QTreeWidget, {Model/View Programming}, QTreeWidgetItem-
63*/-
64-
65/*!-
66 Constructs an iterator for the same QTreeWidget as \a it. The-
67 current iterator item is set to point on the current item of \a it.-
68*/-
69-
70QTreeWidgetItemIterator::QTreeWidgetItemIterator(const QTreeWidgetItemIterator &it)-
71 : d_ptr(new QTreeWidgetItemIteratorPrivate(*(it.d_ptr))),-
72 current(it.current), flags(it.flags)-
73{-
74 Q_D(QTreeWidgetItemIterator);-
75 Q_ASSERT(d->m_model);-
76 d->m_model->iterators.append(this);-
77}
never executed: end of block
0
78-
79/*!-
80 Constructs an iterator for the given \a widget that uses the specified \a flags-
81 to determine which items are found during iteration.-
82 The iterator is set to point to the first top-level item contained in the widget,-
83 or the next matching item if the top-level item doesn't match the flags.-
84-
85 \sa QTreeWidgetItemIterator::IteratorFlag-
86*/-
87-
88QTreeWidgetItemIterator::QTreeWidgetItemIterator(QTreeWidget *widget, IteratorFlags flags)-
89: current(0), flags(flags)-
90{-
91 Q_ASSERT(widget);-
92 QTreeModel *model = qobject_cast<QTreeModel*>(widget->model());-
93 Q_ASSERT(model);-
94 d_ptr.reset(new QTreeWidgetItemIteratorPrivate(this, model));-
95 model->iterators.append(this);-
96 if (!model->rootItem->children.isEmpty()) current = model->rootItem->child(0);
never executed: current = model->rootItem->child(0);
!model->rootIt...dren.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
0
97 if (current && !matchesFlags(current))
currentDescription
TRUEnever evaluated
FALSEnever evaluated
!matchesFlags(current)Description
TRUEnever evaluated
FALSEnever evaluated
0
98 ++(*this);
never executed: ++(*this);
0
99}
never executed: end of block
0
100-
101/*!-
102 Constructs an iterator for the given \a item that uses the specified \a flags-
103 to determine which items are found during iteration.-
104 The iterator is set to point to \a item, or the next matching item if \a item-
105 doesn't match the flags.-
106-
107 \sa QTreeWidgetItemIterator::IteratorFlag-
108*/-
109-
110QTreeWidgetItemIterator::QTreeWidgetItemIterator(QTreeWidgetItem *item, IteratorFlags flags)-
111 : d_ptr(new QTreeWidgetItemIteratorPrivate(-
112 this, qobject_cast<QTreeModel*>(item->view->model()))),-
113 current(item), flags(flags)-
114{-
115 Q_D(QTreeWidgetItemIterator);-
116 Q_ASSERT(item);-
117 QTreeModel *model = qobject_cast<QTreeModel*>(item->view->model());-
118 Q_ASSERT(model);-
119 model->iterators.append(this);-
120-
121 // Initialize m_currentIndex and m_parentIndex as it would be if we had traversed from-
122 // the beginning.-
123 QTreeWidgetItem *parent = item;-
124 parent = parent->parent();-
125 QTreeWidgetItem *root = d->m_model->rootItem;-
126 d->m_currentIndex = (parent ? parent : root)->indexOfChild(item);
parentDescription
TRUEnever evaluated
FALSEnever evaluated
0
127-
128 while (parent) {
parentDescription
TRUEnever evaluated
FALSEnever evaluated
0
129 QTreeWidgetItem *itm = parent;-
130 parent = parent->parent();-
131 const int index = (parent ? parent : root)->indexOfChild(itm);
parentDescription
TRUEnever evaluated
FALSEnever evaluated
0
132 d->m_parentIndex.prepend(index);-
133 }
never executed: end of block
0
134-
135 if (current && !matchesFlags(current))
currentDescription
TRUEnever evaluated
FALSEnever evaluated
!matchesFlags(current)Description
TRUEnever evaluated
FALSEnever evaluated
0
136 ++(*this);
never executed: ++(*this);
0
137}
never executed: end of block
0
138-
139/*!-
140 Destroys the iterator.-
141*/-
142-
143QTreeWidgetItemIterator::~QTreeWidgetItemIterator()-
144{-
145 d_func()->m_model->iterators.removeAll(this);-
146}
never executed: end of block
0
147-
148/*!-
149 Assignment. Makes a copy of \a it and returns a reference to its-
150 iterator.-
151*/-
152-
153QTreeWidgetItemIterator &QTreeWidgetItemIterator::operator=(const QTreeWidgetItemIterator &it)-
154{-
155 Q_D(QTreeWidgetItemIterator);-
156 if (d_func()->m_model != it.d_func()->m_model) {
d_func()->m_mo...unc()->m_modelDescription
TRUEnever evaluated
FALSEnever evaluated
0
157 d_func()->m_model->iterators.removeAll(this);-
158 it.d_func()->m_model->iterators.append(this);-
159 }
never executed: end of block
0
160 current = it.current;-
161 flags = it.flags;-
162 d->operator=(*it.d_func());-
163 return *this;
never executed: return *this;
0
164}-
165-
166/*!-
167 The prefix ++ operator (++it) advances the iterator to the next matching item-
168 and returns a reference to the resulting iterator.-
169 Sets the current pointer to 0 if the current item is the last matching item.-
170*/-
171-
172QTreeWidgetItemIterator &QTreeWidgetItemIterator::operator++()-
173{-
174 if (current)
currentDescription
TRUEnever evaluated
FALSEnever evaluated
0
175 do {-
176 current = d_func()->next(current);-
177 } while (current && !matchesFlags(current));
never executed: end of block
currentDescription
TRUEnever evaluated
FALSEnever evaluated
!matchesFlags(current)Description
TRUEnever evaluated
FALSEnever evaluated
0
178 return *this;
never executed: return *this;
0
179}-
180-
181/*!-
182 The prefix -- operator (--it) advances the iterator to the previous matching item-
183 and returns a reference to the resulting iterator.-
184 Sets the current pointer to 0 if the current item is the first matching item.-
185*/-
186-
187QTreeWidgetItemIterator &QTreeWidgetItemIterator::operator--()-
188{-
189 if (current)
currentDescription
TRUEnever evaluated
FALSEnever evaluated
0
190 do {-
191 current = d_func()->previous(current);-
192 } while (current && !matchesFlags(current));
never executed: end of block
currentDescription
TRUEnever evaluated
FALSEnever evaluated
!matchesFlags(current)Description
TRUEnever evaluated
FALSEnever evaluated
0
193 return *this;
never executed: return *this;
0
194}-
195-
196/*!-
197 \internal-
198*/-
199bool QTreeWidgetItemIterator::matchesFlags(const QTreeWidgetItem *item) const-
200{-
201 if (!item)
!itemDescription
TRUEnever evaluated
FALSEnever evaluated
0
202 return false;
never executed: return false;
0
203-
204 if (flags == All)
flags == AllDescription
TRUEnever evaluated
FALSEnever evaluated
0
205 return true;
never executed: return true;
0
206-
207 {-
208 Qt::ItemFlags itemFlags = item->flags();-
209 if ((flags & Selectable) && !(itemFlags & Qt::ItemIsSelectable))
(flags & Selectable)Description
TRUEnever evaluated
FALSEnever evaluated
!(itemFlags & ...mIsSelectable)Description
TRUEnever evaluated
FALSEnever evaluated
0
210 return false;
never executed: return false;
0
211 if ((flags & NotSelectable) && (itemFlags & Qt::ItemIsSelectable))
(flags & NotSelectable)Description
TRUEnever evaluated
FALSEnever evaluated
(itemFlags & Q...mIsSelectable)Description
TRUEnever evaluated
FALSEnever evaluated
0
212 return false;
never executed: return false;
0
213 if ((flags & DragEnabled) && !(itemFlags & Qt::ItemIsDragEnabled))
(flags & DragEnabled)Description
TRUEnever evaluated
FALSEnever evaluated
!(itemFlags & ...IsDragEnabled)Description
TRUEnever evaluated
FALSEnever evaluated
0
214 return false;
never executed: return false;
0
215 if ((flags & DragDisabled) && (itemFlags & Qt::ItemIsDragEnabled))
(flags & DragDisabled)Description
TRUEnever evaluated
FALSEnever evaluated
(itemFlags & Q...IsDragEnabled)Description
TRUEnever evaluated
FALSEnever evaluated
0
216 return false;
never executed: return false;
0
217 if ((flags & DropEnabled) && !(itemFlags & Qt::ItemIsDropEnabled))
(flags & DropEnabled)Description
TRUEnever evaluated
FALSEnever evaluated
!(itemFlags & ...IsDropEnabled)Description
TRUEnever evaluated
FALSEnever evaluated
0
218 return false;
never executed: return false;
0
219 if ((flags & DropDisabled) && (itemFlags & Qt::ItemIsDropEnabled))
(flags & DropDisabled)Description
TRUEnever evaluated
FALSEnever evaluated
(itemFlags & Q...IsDropEnabled)Description
TRUEnever evaluated
FALSEnever evaluated
0
220 return false;
never executed: return false;
0
221 if ((flags & Enabled) && !(itemFlags & Qt::ItemIsEnabled))
(flags & Enabled)Description
TRUEnever evaluated
FALSEnever evaluated
!(itemFlags & ...ItemIsEnabled)Description
TRUEnever evaluated
FALSEnever evaluated
0
222 return false;
never executed: return false;
0
223 if ((flags & Disabled) && (itemFlags & Qt::ItemIsEnabled))
(flags & Disabled)Description
TRUEnever evaluated
FALSEnever evaluated
(itemFlags & Q...ItemIsEnabled)Description
TRUEnever evaluated
FALSEnever evaluated
0
224 return false;
never executed: return false;
0
225 if ((flags & Editable) && !(itemFlags & Qt::ItemIsEditable))
(flags & Editable)Description
TRUEnever evaluated
FALSEnever evaluated
!(itemFlags & ...temIsEditable)Description
TRUEnever evaluated
FALSEnever evaluated
0
226 return false;
never executed: return false;
0
227 if ((flags & NotEditable) && (itemFlags & Qt::ItemIsEditable))
(flags & NotEditable)Description
TRUEnever evaluated
FALSEnever evaluated
(itemFlags & Q...temIsEditable)Description
TRUEnever evaluated
FALSEnever evaluated
0
228 return false;
never executed: return false;
0
229 }-
230-
231 if (flags & (Checked|NotChecked)) {
flags & (Checked|NotChecked)Description
TRUEnever evaluated
FALSEnever evaluated
0
232 // ### We only test the check state for column 0-
233 Qt::CheckState check = item->checkState(0);-
234 // PartiallyChecked matches as Checked.-
235 if ((flags & Checked) && (check == Qt::Unchecked))
(flags & Checked)Description
TRUEnever evaluated
FALSEnever evaluated
(check == Qt::Unchecked)Description
TRUEnever evaluated
FALSEnever evaluated
0
236 return false;
never executed: return false;
0
237 if ((flags & NotChecked) && (check != Qt::Unchecked))
(flags & NotChecked)Description
TRUEnever evaluated
FALSEnever evaluated
(check != Qt::Unchecked)Description
TRUEnever evaluated
FALSEnever evaluated
0
238 return false;
never executed: return false;
0
239 }
never executed: end of block
0
240-
241 if ((flags & HasChildren) && !item->childCount())
(flags & HasChildren)Description
TRUEnever evaluated
FALSEnever evaluated
!item->childCount()Description
TRUEnever evaluated
FALSEnever evaluated
0
242 return false;
never executed: return false;
0
243 if ((flags & NoChildren) && item->childCount())
(flags & NoChildren)Description
TRUEnever evaluated
FALSEnever evaluated
item->childCount()Description
TRUEnever evaluated
FALSEnever evaluated
0
244 return false;
never executed: return false;
0
245-
246 if ((flags & Hidden) && !item->isHidden())
(flags & Hidden)Description
TRUEnever evaluated
FALSEnever evaluated
!item->isHidden()Description
TRUEnever evaluated
FALSEnever evaluated
0
247 return false;
never executed: return false;
0
248 if ((flags & NotHidden) && item->isHidden())
(flags & NotHidden)Description
TRUEnever evaluated
FALSEnever evaluated
item->isHidden()Description
TRUEnever evaluated
FALSEnever evaluated
0
249 return false;
never executed: return false;
0
250-
251 if ((flags & Selected) && !item->isSelected())
(flags & Selected)Description
TRUEnever evaluated
FALSEnever evaluated
!item->isSelected()Description
TRUEnever evaluated
FALSEnever evaluated
0
252 return false;
never executed: return false;
0
253 if ((flags & Unselected) && item->isSelected())
(flags & Unselected)Description
TRUEnever evaluated
FALSEnever evaluated
item->isSelected()Description
TRUEnever evaluated
FALSEnever evaluated
0
254 return false;
never executed: return false;
0
255-
256 return true;
never executed: return true;
0
257}-
258-
259/*-
260 * Implementation of QTreeWidgetItemIteratorPrivate-
261 */-
262QTreeWidgetItem* QTreeWidgetItemIteratorPrivate::nextSibling(const QTreeWidgetItem* item) const-
263{-
264 Q_ASSERT(item);-
265 QTreeWidgetItem *next = 0;-
266 if (QTreeWidgetItem *par = item->parent()) {
QTreeWidgetIte...item->parent()Description
TRUEnever evaluated
FALSEnever evaluated
0
267 int i = par->indexOfChild(const_cast<QTreeWidgetItem*>(item));-
268 next = par->child(i + 1);-
269 } else {
never executed: end of block
0
270 QTreeWidget *tw = item->treeWidget();-
271 int i = tw->indexOfTopLevelItem(const_cast<QTreeWidgetItem*>(item));-
272 next = tw->topLevelItem(i + 1);-
273 }
never executed: end of block
0
274 return next;
never executed: return next;
0
275}-
276-
277QTreeWidgetItem *QTreeWidgetItemIteratorPrivate::next(const QTreeWidgetItem *current)-
278{-
279 if (!current) return 0;
never executed: return 0;
!currentDescription
TRUEnever evaluated
FALSEnever evaluated
0
280-
281 QTreeWidgetItem *next = 0;-
282 if (current->childCount()) {
current->childCount()Description
TRUEnever evaluated
FALSEnever evaluated
0
283 // walk the child-
284 m_parentIndex.push(m_currentIndex);-
285 m_currentIndex = 0;-
286 next = current->child(0);-
287 } else {
never executed: end of block
0
288 // walk the sibling-
289 QTreeWidgetItem *parent = current->parent();-
290 next = parent ? parent->child(m_currentIndex + 1)
parentDescription
TRUEnever evaluated
FALSEnever evaluated
0
291 : m_model->rootItem->child(m_currentIndex + 1);-
292 while (!next && parent) {
!nextDescription
TRUEnever evaluated
FALSEnever evaluated
parentDescription
TRUEnever evaluated
FALSEnever evaluated
0
293 // if we had no sibling walk up the parent and try the sibling of that-
294 parent = parent->parent();-
295 m_currentIndex = m_parentIndex.pop();-
296 next = parent ? parent->child(m_currentIndex + 1)
parentDescription
TRUEnever evaluated
FALSEnever evaluated
0
297 : m_model->rootItem->child(m_currentIndex + 1);-
298 }
never executed: end of block
0
299 if (next) ++(m_currentIndex);
never executed: ++(m_currentIndex);
nextDescription
TRUEnever evaluated
FALSEnever evaluated
0
300 }
never executed: end of block
0
301 return next;
never executed: return next;
0
302}-
303-
304QTreeWidgetItem *QTreeWidgetItemIteratorPrivate::previous(const QTreeWidgetItem *current)-
305{-
306 if (!current) return 0;
never executed: return 0;
!currentDescription
TRUEnever evaluated
FALSEnever evaluated
0
307-
308 QTreeWidgetItem *prev = 0;-
309 // walk the previous sibling-
310 QTreeWidgetItem *parent = current->parent();-
311 prev = parent ? parent->child(m_currentIndex - 1)
parentDescription
TRUEnever evaluated
FALSEnever evaluated
0
312 : m_model->rootItem->child(m_currentIndex - 1);-
313 if (prev) {
prevDescription
TRUEnever evaluated
FALSEnever evaluated
0
314 // Yes, we had a previous sibling but we need go down to the last leafnode.-
315 --m_currentIndex;-
316 while (prev && prev->childCount()) {
prevDescription
TRUEnever evaluated
FALSEnever evaluated
prev->childCount()Description
TRUEnever evaluated
FALSEnever evaluated
0
317 m_parentIndex.push(m_currentIndex);-
318 m_currentIndex = prev->childCount() - 1;-
319 prev = prev->child(m_currentIndex);-
320 }
never executed: end of block
0
321 } else if (parent) {
never executed: end of block
parentDescription
TRUEnever evaluated
FALSEnever evaluated
0
322 m_currentIndex = m_parentIndex.pop();-
323 prev = parent;-
324 }
never executed: end of block
0
325 return prev;
never executed: return prev;
0
326}-
327-
328void QTreeWidgetItemIteratorPrivate::ensureValidIterator(const QTreeWidgetItem *itemToBeRemoved)-
329{-
330 Q_Q(QTreeWidgetItemIterator);-
331 Q_ASSERT(itemToBeRemoved);-
332-
333 if (!q->current) return;
never executed: return;
!q->currentDescription
TRUEnever evaluated
FALSEnever evaluated
0
334 QTreeWidgetItem *nextItem = q->current;-
335-
336 // Do not walk to the ancestor to find the other item if they have the same parent.-
337 if (nextItem->parent() != itemToBeRemoved->parent()) {
nextItem->pare...oved->parent()Description
TRUEnever evaluated
FALSEnever evaluated
0
338 while (nextItem->parent() && nextItem != itemToBeRemoved) {
nextItem->parent()Description
TRUEnever evaluated
FALSEnever evaluated
nextItem != itemToBeRemovedDescription
TRUEnever evaluated
FALSEnever evaluated
0
339 nextItem = nextItem->parent();-
340 }
never executed: end of block
0
341 }
never executed: end of block
0
342 // If the item to be removed is an ancestor of the current iterator item,-
343 // we need to adjust the iterator.-
344 if (nextItem == itemToBeRemoved) {
nextItem == itemToBeRemovedDescription
TRUEnever evaluated
FALSEnever evaluated
0
345 QTreeWidgetItem *parent = nextItem;-
346 nextItem = 0;-
347 while (parent && !nextItem) {
parentDescription
TRUEnever evaluated
FALSEnever evaluated
!nextItemDescription
TRUEnever evaluated
FALSEnever evaluated
0
348 nextItem = nextSibling(parent);-
349 parent = parent->parent();-
350 }
never executed: end of block
0
351 if (nextItem) {
nextItemDescription
TRUEnever evaluated
FALSEnever evaluated
0
352 // Ooooh... Set the iterator to the next valid item-
353 *q = QTreeWidgetItemIterator(nextItem, q->flags);-
354 if (!(q->matchesFlags(nextItem))) ++(*q);
never executed: ++(*q);
!(q->matchesFlags(nextItem))Description
TRUEnever evaluated
FALSEnever evaluated
0
355 } else {
never executed: end of block
0
356 // set it to null.-
357 q->current = 0;-
358 m_parentIndex.clear();-
359 return;
never executed: return;
0
360 }-
361 }-
362 if (nextItem->parent() == itemToBeRemoved->parent()) {
nextItem->pare...oved->parent()Description
TRUEnever evaluated
FALSEnever evaluated
0
363 // They have the same parent, i.e. we have to adjust the m_currentIndex member of the iterator-
364 // if the deleted item is to the left of the nextItem.-
365-
366 QTreeWidgetItem *par = itemToBeRemoved->parent(); // We know they both have the same parent.-
367 QTreeWidget *tw = itemToBeRemoved->treeWidget(); // ..and widget-
368 int indexOfItemToBeRemoved = par ? par->indexOfChild(const_cast<QTreeWidgetItem *>(itemToBeRemoved))
parDescription
TRUEnever evaluated
FALSEnever evaluated
0
369 : tw->indexOfTopLevelItem(const_cast<QTreeWidgetItem *>(itemToBeRemoved));-
370 int indexOfNextItem = par ? par->indexOfChild(nextItem) : tw->indexOfTopLevelItem(nextItem);
parDescription
TRUEnever evaluated
FALSEnever evaluated
0
371-
372 if (indexOfItemToBeRemoved <= indexOfNextItem) {
indexOfItemToB...ndexOfNextItemDescription
TRUEnever evaluated
FALSEnever evaluated
0
373 // A sibling to the left of us was deleted, adjust the m_currentIndex member of the iterator.-
374 // Note that the m_currentIndex will be wrong until the item is actually removed!-
375 m_currentIndex--;-
376 }
never executed: end of block
0
377 }
never executed: end of block
0
378}
never executed: end of block
0
379-
380/*!-
381 \fn const QTreeWidgetItemIterator QTreeWidgetItemIterator::operator++(int)-
382-
383 The postfix ++ operator (it++) advances the iterator to the next matching item-
384 and returns an iterator to the previously current item.-
385*/-
386-
387/*!-
388 \fn QTreeWidgetItemIterator &QTreeWidgetItemIterator::operator+=(int n)-
389-
390 Makes the iterator go forward by \a n matching items. (If n is negative, the-
391 iterator goes backward.)-
392-
393 If the current item is beyond the last item, the current item pointer is-
394 set to 0. Returns the resulting iterator.-
395*/-
396-
397/*!-
398 \fn const QTreeWidgetItemIterator QTreeWidgetItemIterator::operator--(int)-
399-
400 The postfix -- operator (it--) makes the preceding matching item current and returns an iterator to the previously current item.-
401*/-
402-
403/*!-
404 \fn QTreeWidgetItemIterator &QTreeWidgetItemIterator::operator-=(int n)-
405-
406 Makes the iterator go backward by \a n matching items. (If n is negative, the-
407 iterator goes forward.)-
408-
409 If the current item is ahead of the last item, the current item pointer is-
410 set to 0. Returns the resulting iterator.-
411*/-
412-
413/*!-
414 \fn QTreeWidgetItem *QTreeWidgetItemIterator::operator*() const-
415-
416 Dereference operator. Returns a pointer to the current item.-
417*/-
418-
419-
420/*!-
421 \enum QTreeWidgetItemIterator::IteratorFlag-
422-
423 These flags can be passed to a QTreeWidgetItemIterator constructor-
424 (OR-ed together if more than one is used), so that the iterator-
425 will only iterate over items that match the given flags.-
426-
427 \value All-
428 \value Hidden-
429 \value NotHidden-
430 \value Selected-
431 \value Unselected-
432 \value Selectable-
433 \value NotSelectable-
434 \value DragEnabled-
435 \value DragDisabled-
436 \value DropEnabled-
437 \value DropDisabled-
438 \value HasChildren-
439 \value NoChildren-
440 \value Checked-
441 \value NotChecked-
442 \value Enabled-
443 \value Disabled-
444 \value Editable-
445 \value NotEditable-
446 \value UserFlag-
447*/-
448-
449QT_END_NAMESPACE-
450-
451#endif // QT_NO_TREEWIDGET-
Source codeSwitch to Preprocessed file

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