45class Q_AUTOTEST_EXPORT
QListModel :
public QAbstractListModel
48 friend class QListWidget;
51 QListModel(QListWidget *parent);
54 inline QListWidget *view()
const {
return qobject_cast<QListWidget *>(QObject::parent()); }
57 QListWidgetItem *at(
int row)
const;
58 void insert(
int row, QListWidgetItem *item);
59 void insert(
int row,
const QStringList &items);
60 void remove(QListWidgetItem *item);
61 QListWidgetItem *take(
int row);
62 void move(
int srcRow,
int dstRow);
64 int rowCount(
const QModelIndex &parent = QModelIndex())
const override;
66 QModelIndex index(
const QListWidgetItem *item)
const;
67 QModelIndex index(
int row,
int column = 0,
const QModelIndex &parent = QModelIndex())
const override;
69 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const override;
70 bool setData(
const QModelIndex &index,
const QVariant &value,
int role) override;
71 bool clearItemData(
const QModelIndex &index) override;
73 QMap<
int, QVariant> itemData(
const QModelIndex &index)
const override;
75 bool insertRows(
int row,
int count = 1,
const QModelIndex &parent = QModelIndex()) override;
76 bool removeRows(
int row,
int count = 1,
const QModelIndex &parent = QModelIndex()) override;
77 bool moveRows(
const QModelIndex &sourceParent,
int sourceRow,
int count,
const QModelIndex &destinationParent,
int destinationChild) override;
79 Qt::ItemFlags flags(
const QModelIndex &index)
const override;
81 void sort(
int column, Qt::SortOrder order) override;
82 void ensureSorted(
int column, Qt::SortOrder order,
int start,
int end);
83 static bool itemLessThan(
const std::pair<QListWidgetItem*,
int> &left,
84 const std::pair<QListWidgetItem*,
int> &right);
85 static bool itemGreaterThan(
const std::pair<QListWidgetItem*,
int> &left,
86 const std::pair<QListWidgetItem*,
int> &right);
87 static QList<QListWidgetItem*>::iterator sortedInsertionIterator(
88 const QList<QListWidgetItem*>::iterator &begin,
89 const QList<QListWidgetItem*>::iterator &end,
90 Qt::SortOrder order, QListWidgetItem *item);
92 void itemChanged(QListWidgetItem *item,
const QList<
int> &roles = QList<
int>());
95 QStringList mimeTypes()
const override;
96 QMimeData *mimeData(
const QModelIndexList &indexes)
const override;
97#if QT_CONFIG(draganddrop)
98 bool dropMimeData(
const QMimeData *data, Qt::DropAction action,
99 int row,
int column,
const QModelIndex &parent) override;
100 Qt::DropActions supportedDropActions()
const override;
101 Qt::DropActions supportedDragActions()
const override;
103 QMimeData *internalMimeData()
const;
105 QList<QListWidgetItem*> items;
108 mutable QModelIndexList cachedIndexes;