Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qtreewidgetitemiterator.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QTREEWIDGETITEMITERATOR_H
6#define QTREEWIDGETITEMITERATOR_H
7
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtCore/qscopedpointer.h>
10
12
13QT_BEGIN_NAMESPACE
14
15class QTreeWidget;
16class QTreeWidgetItem;
17class QTreeModel;
18
19class QTreeWidgetItemIteratorPrivate;
20class Q_WIDGETS_EXPORT QTreeWidgetItemIterator
21{
22 friend class QTreeModel;
23
24public:
25 enum IteratorFlag {
26 All = 0x00000000,
27 Hidden = 0x00000001,
28 NotHidden = 0x00000002,
29 Selected = 0x00000004,
30 Unselected = 0x00000008,
31 Selectable = 0x00000010,
32 NotSelectable = 0x00000020,
33 DragEnabled = 0x00000040,
34 DragDisabled = 0x00000080,
35 DropEnabled = 0x00000100,
36 DropDisabled = 0x00000200,
37 HasChildren = 0x00000400,
38 NoChildren = 0x00000800,
39 Checked = 0x00001000,
40 NotChecked = 0x00002000,
41 Enabled = 0x00004000,
42 Disabled = 0x00008000,
43 Editable = 0x00010000,
44 NotEditable = 0x00020000,
45 UserFlag = 0x01000000 // The first flag that can be used by the user.
46 };
47 Q_DECLARE_FLAGS(IteratorFlags, IteratorFlag)
48
49 QTreeWidgetItemIterator(const QTreeWidgetItemIterator &it);
50 explicit QTreeWidgetItemIterator(QTreeWidget *widget, IteratorFlags flags = All);
51 explicit QTreeWidgetItemIterator(QTreeWidgetItem *item, IteratorFlags flags = All);
52 ~QTreeWidgetItemIterator();
53
54 QTreeWidgetItemIterator &operator=(const QTreeWidgetItemIterator &it);
55
56 QTreeWidgetItemIterator &operator++();
57 inline const QTreeWidgetItemIterator operator++(int);
58 inline QTreeWidgetItemIterator &operator+=(int n);
59
60 QTreeWidgetItemIterator &operator--();
61 inline const QTreeWidgetItemIterator operator--(int);
62 inline QTreeWidgetItemIterator &operator-=(int n);
63
64 inline QTreeWidgetItem *operator*() const;
65
66private:
67 bool matchesFlags(const QTreeWidgetItem *item) const;
68 QScopedPointer<QTreeWidgetItemIteratorPrivate> d_ptr;
69 QTreeWidgetItem *current;
70 IteratorFlags flags;
71 Q_DECLARE_PRIVATE(QTreeWidgetItemIterator)
72};
73
74inline const QTreeWidgetItemIterator QTreeWidgetItemIterator::operator++(int)
75{
76 QTreeWidgetItemIterator it = *this;
77 ++(*this);
78 return it;
79}
80
81inline const QTreeWidgetItemIterator QTreeWidgetItemIterator::operator--(int)
82{
83 QTreeWidgetItemIterator it = *this;
84 --(*this);
85 return it;
86}
87
88inline QTreeWidgetItemIterator &QTreeWidgetItemIterator::operator+=(int n)
89{
90 if (n < 0)
91 return (*this) -= (-n);
92 while (current && n--)
93 ++(*this);
94 return *this;
95}
96
97inline QTreeWidgetItemIterator &QTreeWidgetItemIterator::operator-=(int n)
98{
99 if (n < 0)
100 return (*this) += (-n);
101 while (current && n--)
102 --(*this);
103 return *this;
104}
105
106inline QTreeWidgetItem *QTreeWidgetItemIterator::operator*() const
107{
108 return current;
109}
110
111Q_DECLARE_OPERATORS_FOR_FLAGS(QTreeWidgetItemIterator::IteratorFlags)
112
113QT_END_NAMESPACE
114#endif // QTREEWIDGETITEMITERATOR_H
QT_REQUIRE_CONFIG(treewidget)