Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qlistwidget_p.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
4#ifndef QLISTWIDGET_P_H
5#define QLISTWIDGET_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. This header file may change
12// from version to version without notice, or even be removed.
13//
14// We mean it.
15//
16
17#include <QtWidgets/private/qtwidgetsglobal_p.h>
18#include <QtCore/qabstractitemmodel.h>
19#include <QtWidgets/qabstractitemview.h>
20#include <QtWidgets/qlistwidget.h>
21#include <private/qlistview_p.h>
22#include <private/qwidgetitemdata_p.h>
23
24#include <array>
25
27
29
31{
32public:
33 inline bool operator()(QListWidgetItem *i1, QListWidgetItem *i2) const
34 { return *i1 < *i2; }
35};
36
38{
39public:
40 inline bool operator()(QListWidgetItem *i1, QListWidgetItem *i2) const
41 { return *i2 < *i1; }
42};
43
45{
47 friend class QListWidget;
48
49public:
50 QListModel(QListWidget *parent);
52
53 void clear();
54 QListWidgetItem *at(int row) const;
55 void insert(int row, QListWidgetItem *item);
56 void insert(int row, const QStringList &items);
58 QListWidgetItem *take(int row);
59 void move(int srcRow, int dstRow);
60
61 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
62
64 QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const override;
65
66 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
67 bool setData(const QModelIndex &index, const QVariant &value, int role) override;
68 bool clearItemData(const QModelIndex &index) override;
69
70 QMap<int, QVariant> itemData(const QModelIndex &index) const override;
71
72 bool insertRows(int row, int count = 1, const QModelIndex &parent = QModelIndex()) override;
73 bool removeRows(int row, int count = 1, const QModelIndex &parent = QModelIndex()) override;
74 bool moveRows(const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild) override;
75
76 Qt::ItemFlags flags(const QModelIndex &index) const override;
77
78 void sort(int column, Qt::SortOrder order) override;
79 void ensureSorted(int column, Qt::SortOrder order, int start, int end);
80 static bool itemLessThan(const QPair<QListWidgetItem*,int> &left,
81 const QPair<QListWidgetItem*,int> &right);
82 static bool itemGreaterThan(const QPair<QListWidgetItem*,int> &left,
83 const QPair<QListWidgetItem*,int> &right);
84 static QList<QListWidgetItem*>::iterator sortedInsertionIterator(
88
89 void itemChanged(QListWidgetItem *item, const QList<int> &roles = QList<int>());
90
91 // dnd
92 QStringList mimeTypes() const override;
93 QMimeData *mimeData(const QModelIndexList &indexes) const override;
94#if QT_CONFIG(draganddrop)
95 bool dropMimeData(const QMimeData *data, Qt::DropAction action,
96 int row, int column, const QModelIndex &parent) override;
97 Qt::DropActions supportedDropActions() const override;
98#endif
99
100 QMimeData *internalMimeData() const;
101private:
102 QList<QListWidgetItem*> items;
103
104 // A cache must be mutable if get-functions should have const modifiers
105 mutable QModelIndexList cachedIndexes;
106};
107
108
109
111{
112 Q_DECLARE_PUBLIC(QListWidget)
113public:
115 inline QListModel *listModel() const { return qobject_cast<QListModel*>(model); }
116 void setup();
117 void clearConnections();
118 void emitItemPressed(const QModelIndex &index);
119 void emitItemClicked(const QModelIndex &index);
122 void emitItemEntered(const QModelIndex &index);
123 void emitItemChanged(const QModelIndex &index);
124 void emitCurrentItemChanged(const QModelIndex &current, const QModelIndex &previous);
125 void sort();
126 void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);
129
130 std::array<QMetaObject::Connection, 8> connections;
131 std::array<QMetaObject::Connection, 2> selectionModelConnections;
132};
133
135{
136public:
139 QList<QWidgetItemData> values;
140 int theid;
141};
142
144
145#endif // QLISTWIDGET_P_H
virtual Qt::DropActions supportedDropActions() const
virtual Q_INVOKABLE int rowCount(const QModelIndex &parent=QModelIndex()) const =0
Returns the number of rows under the given parent.
virtual bool clearItemData(const QModelIndex &index)
virtual Q_INVOKABLE bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
Sets the role data for the item at index to value.
virtual QMap< int, QVariant > itemData(const QModelIndex &index) const
Returns a map with values for all predefined roles in the model for the item at the given index.
virtual QStringList mimeTypes() const
Returns the list of allowed MIME types.
bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
\reimp
bool operator()(QListWidgetItem *i1, QListWidgetItem *i2) const
bool operator()(QListWidgetItem *i1, QListWidgetItem *i2) const
QListWidgetItem * q
QListWidgetItemPrivate(QListWidgetItem *item)
QList< QWidgetItemData > values
The QListWidgetItem class provides an item for use with the QListWidget item view class.
Definition qlistwidget.h:23
void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
void emitItemChanged(const QModelIndex &index)
void emitCurrentItemChanged(const QModelIndex &current, const QModelIndex &previous)
QListModel * listModel() const
std::array< QMetaObject::Connection, 8 > connections
void emitItemEntered(const QModelIndex &index)
std::array< QMetaObject::Connection, 2 > selectionModelConnections
void emitItemClicked(const QModelIndex &index)
void emitItemActivated(const QModelIndex &index)
void emitItemDoubleClicked(const QModelIndex &index)
void emitItemPressed(const QModelIndex &index)
Qt::SortOrder sortOrder
The QListWidget class provides an item-based list widget.
\inmodule QtCore
Definition qmimedata.h:16
\inmodule QtCore
\inmodule QtCore
\inmodule QtCore
Definition qvariant.h:65
b clear()
cache insert(employee->id(), employee)
Combined button and popup list for selecting options.
Definition qcompare.h:63
@ DisplayRole
SortOrder
Definition qnamespace.h:121
DropAction
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLuint index
[2]
GLuint GLuint end
GLenum GLenum GLsizei count
GLdouble GLdouble right
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLint left
GLbitfield flags
GLuint start
GLenum GLenum GLsizei void GLsizei void * column
GLdouble GLdouble GLdouble GLdouble q
Definition qopenglext.h:259
GLenum GLenum GLsizei void * row
GLfixed GLfixed GLint GLint order
QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator begin(const QRegularExpressionMatchIterator &iterator)
#define Q_AUTOTEST_EXPORT
#define QT_REQUIRE_CONFIG(feature)
#define Q_OBJECT
settings remove("monkey")
QMimeData * mimeData
QGraphicsItem * item
QList< QTreeWidgetItem * > items
QAction * at