1// qlistwidget.sip generated by MetaSIP
2//
3// This file is part of the QtWidgets Python extension module.
4//
5// Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
6//
7// This file is part of PyQt5.
8//
9// This file may be used under the terms of the GNU General Public License
10// version 3.0 as published by the Free Software Foundation and appearing in
11// the file LICENSE included in the packaging of this file.  Please review the
12// following information to ensure the GNU General Public License version 3.0
13// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
14//
15// If you do not wish to use this file under the terms of the GPL version 3.0
16// then you may purchase a commercial license.  For more information contact
17// info@riverbankcomputing.com.
18//
19// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
22
23class QListWidgetItem /Supertype=sip.wrapper/
24{
25%TypeHeaderCode
26#include <qlistwidget.h>
27%End
28
29public:
30    enum ItemType
31    {
32        Type,
33        UserType,
34    };
35
36    QListWidgetItem(QListWidget *parent /TransferThis/ = 0, int type = Type);
37    QListWidgetItem(const QString &text, QListWidget *parent /TransferThis/ = 0, int type = Type);
38    QListWidgetItem(const QIcon &icon, const QString &text, QListWidget *parent /TransferThis/ = 0, int type = Type);
39    QListWidgetItem(const QListWidgetItem &other);
40    virtual ~QListWidgetItem();
41    virtual QListWidgetItem *clone() const /Factory/;
42    QListWidget *listWidget() const;
43    Qt::ItemFlags flags() const;
44    QString text() const;
45    QIcon icon() const;
46    QString statusTip() const;
47    QString toolTip() const;
48    QString whatsThis() const;
49    QFont font() const;
50    int textAlignment() const;
51    void setTextAlignment(int alignment);
52    Qt::CheckState checkState() const;
53    void setCheckState(Qt::CheckState state);
54    QSize sizeHint() const;
55    void setSizeHint(const QSize &size);
56    virtual QVariant data(int role) const;
57    virtual void setData(int role, const QVariant &value);
58    virtual bool operator<(const QListWidgetItem &other /NoCopy/) const;
59    virtual void read(QDataStream &in) /ReleaseGIL/;
60    virtual void write(QDataStream &out) const /ReleaseGIL/;
61    int type() const;
62    void setFlags(Qt::ItemFlags aflags);
63    void setText(const QString &atext);
64    void setIcon(const QIcon &aicon);
65    void setStatusTip(const QString &astatusTip);
66    void setToolTip(const QString &atoolTip);
67    void setWhatsThis(const QString &awhatsThis);
68    void setFont(const QFont &afont);
69    QBrush background() const;
70    void setBackground(const QBrush &brush);
71    QBrush foreground() const;
72    void setForeground(const QBrush &brush);
73    void setSelected(bool aselect);
74    bool isSelected() const;
75    void setHidden(bool ahide);
76    bool isHidden() const;
77
78private:
79    QListWidgetItem &operator=(const QListWidgetItem &);
80};
81
82QDataStream &operator<<(QDataStream &out, const QListWidgetItem &item /Constrained/) /ReleaseGIL/;
83QDataStream &operator>>(QDataStream &in, QListWidgetItem &item /Constrained/) /ReleaseGIL/;
84
85class QListWidget : QListView
86{
87%TypeHeaderCode
88#include <qlistwidget.h>
89%End
90
91public:
92    explicit QListWidget(QWidget *parent /TransferThis/ = 0);
93    virtual ~QListWidget();
94    QListWidgetItem *item(int row) const;
95    int row(const QListWidgetItem *item) const;
96    void insertItem(int row, QListWidgetItem *item /Transfer/);
97    void insertItem(int row, const QString &label);
98    void insertItems(int row, const QStringList &labels);
99    void addItem(QListWidgetItem *aitem /Transfer/);
100    void addItem(const QString &label);
101    void addItems(const QStringList &labels);
102    QListWidgetItem *takeItem(int row) /TransferBack/;
103    int count() const /__len__/;
104    QListWidgetItem *currentItem() const;
105    void setCurrentItem(QListWidgetItem *item);
106    void setCurrentItem(QListWidgetItem *item, QItemSelectionModel::SelectionFlags command);
107    int currentRow() const;
108    void setCurrentRow(int row);
109    void setCurrentRow(int row, QItemSelectionModel::SelectionFlags command);
110    QListWidgetItem *itemAt(const QPoint &p) const;
111    QListWidgetItem *itemAt(int ax, int ay) const;
112    QWidget *itemWidget(QListWidgetItem *item) const;
113    void setItemWidget(QListWidgetItem *item, QWidget *widget /Transfer/);
114%MethodCode
115        // We have to break the association with any existing widget.
116        QWidget *w = sipCpp->itemWidget(a0);
117
118        if (w)
119        {
120            PyObject *wo = sipGetPyObject(w, sipType_QWidget);
121
122            if (wo)
123                sipTransferTo(wo, 0);
124        }
125
126        Py_BEGIN_ALLOW_THREADS
127        sipCpp->setItemWidget(a0, a1);
128        Py_END_ALLOW_THREADS
129%End
130
131    QRect visualItemRect(const QListWidgetItem *item) const;
132    void sortItems(Qt::SortOrder order = Qt::AscendingOrder);
133    void editItem(QListWidgetItem *item);
134    void openPersistentEditor(QListWidgetItem *item);
135    void closePersistentEditor(QListWidgetItem *item);
136    QList<QListWidgetItem *> selectedItems() const;
137    QList<QListWidgetItem *> findItems(const QString &text, Qt::MatchFlags flags) const;
138
139public slots:
140    void clear();
141    void scrollToItem(const QListWidgetItem *item, QAbstractItemView::ScrollHint hint = QAbstractItemView::EnsureVisible);
142
143signals:
144    void itemPressed(QListWidgetItem *item);
145    void itemClicked(QListWidgetItem *item);
146    void itemDoubleClicked(QListWidgetItem *item);
147    void itemActivated(QListWidgetItem *item);
148    void itemEntered(QListWidgetItem *item);
149    void itemChanged(QListWidgetItem *item);
150    void currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
151    void currentTextChanged(const QString &currentText);
152    void currentRowChanged(int currentRow);
153    void itemSelectionChanged();
154
155protected:
156    virtual QStringList mimeTypes() const;
157    virtual QMimeData *mimeData(const QList<QListWidgetItem *> items) const /TransferBack/;
158    virtual bool dropMimeData(int index, const QMimeData *data, Qt::DropAction action);
159    virtual Qt::DropActions supportedDropActions() const;
160    QList<QListWidgetItem *> items(const QMimeData *data) const;
161    QModelIndex indexFromItem(QListWidgetItem *item) const;
162    QListWidgetItem *itemFromIndex(const QModelIndex &index) const;
163    virtual bool event(QEvent *e);
164
165public:
166    void setSortingEnabled(bool enable);
167    bool isSortingEnabled() const;
168    virtual void dropEvent(QDropEvent *event);
169    void removeItemWidget(QListWidgetItem *aItem);
170%MethodCode
171        // We have to break the association with any existing widget.
172        QWidget *w = sipCpp->itemWidget(a0);
173
174        if (w)
175        {
176            PyObject *wo = sipGetPyObject(w, sipType_QWidget);
177
178            if (wo)
179                sipTransferTo(wo, 0);
180        }
181
182        Py_BEGIN_ALLOW_THREADS
183        sipCpp->removeItemWidget(a0);
184        Py_END_ALLOW_THREADS
185%End
186
187%If (Qt_5_7_0 -)
188    virtual void setSelectionModel(QItemSelectionModel *selectionModel);
189%End
190%If (Qt_5_10_0 -)
191    bool isPersistentEditorOpen(QListWidgetItem *item) const;
192%End
193
194private:
195    virtual void setModel(QAbstractItemModel *model /KeepReference/);
196};
197