File indexing completed on 2026-06-29 08:21:02
0001
0002
0003
0004
0005 #ifndef QTREEWIDGETITEMITERATOR_H
0006 #define QTREEWIDGETITEMITERATOR_H
0007
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtCore/qscopedpointer.h>
0010
0011 QT_REQUIRE_CONFIG(treewidget);
0012
0013 QT_BEGIN_NAMESPACE
0014
0015 class QTreeWidget;
0016 class QTreeWidgetItem;
0017 class QTreeModel;
0018
0019 class QTreeWidgetItemIteratorPrivate;
0020 class Q_WIDGETS_EXPORT QTreeWidgetItemIterator
0021 {
0022 friend class QTreeModel;
0023
0024 public:
0025 enum IteratorFlag {
0026 All = 0x00000000,
0027 Hidden = 0x00000001,
0028 NotHidden = 0x00000002,
0029 Selected = 0x00000004,
0030 Unselected = 0x00000008,
0031 Selectable = 0x00000010,
0032 NotSelectable = 0x00000020,
0033 DragEnabled = 0x00000040,
0034 DragDisabled = 0x00000080,
0035 DropEnabled = 0x00000100,
0036 DropDisabled = 0x00000200,
0037 HasChildren = 0x00000400,
0038 NoChildren = 0x00000800,
0039 Checked = 0x00001000,
0040 NotChecked = 0x00002000,
0041 Enabled = 0x00004000,
0042 Disabled = 0x00008000,
0043 Editable = 0x00010000,
0044 NotEditable = 0x00020000,
0045 UserFlag = 0x01000000
0046 };
0047 Q_DECLARE_FLAGS(IteratorFlags, IteratorFlag)
0048
0049 QTreeWidgetItemIterator(const QTreeWidgetItemIterator &it);
0050 explicit QTreeWidgetItemIterator(QTreeWidget *widget, IteratorFlags flags = All);
0051 explicit QTreeWidgetItemIterator(QTreeWidgetItem *item, IteratorFlags flags = All);
0052 ~QTreeWidgetItemIterator();
0053
0054 QTreeWidgetItemIterator &operator=(const QTreeWidgetItemIterator &it);
0055
0056 QTreeWidgetItemIterator &operator++();
0057 inline const QTreeWidgetItemIterator operator++(int);
0058 inline QTreeWidgetItemIterator &operator+=(int n);
0059
0060 QTreeWidgetItemIterator &operator--();
0061 inline const QTreeWidgetItemIterator operator--(int);
0062 inline QTreeWidgetItemIterator &operator-=(int n);
0063
0064 inline QTreeWidgetItem *operator*() const;
0065
0066 private:
0067 bool matchesFlags(const QTreeWidgetItem *item) const;
0068 QScopedPointer<QTreeWidgetItemIteratorPrivate> d_ptr;
0069 QTreeWidgetItem *current;
0070 IteratorFlags flags;
0071 Q_DECLARE_PRIVATE(QTreeWidgetItemIterator)
0072 };
0073
0074 inline const QTreeWidgetItemIterator QTreeWidgetItemIterator::operator++(int)
0075 {
0076 QTreeWidgetItemIterator it = *this;
0077 ++(*this);
0078 return it;
0079 }
0080
0081 inline const QTreeWidgetItemIterator QTreeWidgetItemIterator::operator--(int)
0082 {
0083 QTreeWidgetItemIterator it = *this;
0084 --(*this);
0085 return it;
0086 }
0087
0088 inline QTreeWidgetItemIterator &QTreeWidgetItemIterator::operator+=(int n)
0089 {
0090 if (n < 0)
0091 return (*this) -= (-n);
0092 while (current && n--)
0093 ++(*this);
0094 return *this;
0095 }
0096
0097 inline QTreeWidgetItemIterator &QTreeWidgetItemIterator::operator-=(int n)
0098 {
0099 if (n < 0)
0100 return (*this) += (-n);
0101 while (current && n--)
0102 --(*this);
0103 return *this;
0104 }
0105
0106 inline QTreeWidgetItem *QTreeWidgetItemIterator::operator*() const
0107 {
0108 return current;
0109 }
0110
0111 Q_DECLARE_OPERATORS_FOR_FLAGS(QTreeWidgetItemIterator::IteratorFlags)
0112
0113 QT_END_NAMESPACE
0114 #endif