Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-29 08:21:02

0001 // Copyright (C) 2016 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0003 // Qt-Security score:significant reason:default
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 // The first flag that can be used by the user.
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 // QTREEWIDGETITEMITERATOR_H