5#ifndef QSTANDARDITEMMODEL_P_H
6#define QSTANDARDITEMMODEL_P_H
19#include <QtGui/qstandarditemmodel.h>
21#include <QtGui/private/qtguiglobal_p.h>
22#include "private/qabstractitemmodel_p.h"
24#include <QtCore/qlist.h>
25#include <QtCore/qstack.h>
26#include <QtCore/qvariant.h>
27#include <QtCore/qdebug.h>
33class QStandardItemData
36 inline QStandardItemData() : role(-1) {}
37 inline QStandardItemData(
int r,
const QVariant &v) :
38 role(r == Qt::EditRole ? Qt::DisplayRole : r), value(v) {}
39 inline QStandardItemData(
const std::pair<
const int&,
const QVariant&> &p) :
40 role(p.first == Qt::EditRole ? Qt::DisplayRole : p.first), value(p.second) {}
43 inline bool operator==(
const QStandardItemData &other)
const {
return role == other.role && value == other.value; }
47#ifndef QT_NO_DATASTREAM
65 QDebugStateSaver saver(debug);
66 debug.nospace() << data.role
76 Q_DECLARE_PUBLIC(QStandardItem)
130 void setChild(
int row,
int column, QStandardItem *item,
131 bool emitChanged =
false);
140 void setModel(QStandardItemModel *mod);
144 QStandardItemModel *mod) {
150 void setItemData(
const QMap<
int, QVariant> &roles);
153 bool insertRows(
int row,
int count,
const QList<QStandardItem*> &items);
154 bool insertRows(
int row,
const QList<QStandardItem*> &items);
155 bool insertColumns(
int column,
int count,
const QList<QStandardItem*> &items);
173 Q_DECLARE_PUBLIC(QStandardItemModel)
182 return itemPrototype ? itemPrototype->clone() :
new QStandardItem;
186 Q_Q(
const QStandardItemModel);
187 if (!index.isValid())
189 if (index.model() != q)
191 QStandardItem *parent =
static_cast<QStandardItem*>(index.internalPointer());
192 if (parent ==
nullptr)
194 return parent->child(index.row(), index.column());
197 void sort(QStandardItem *parent,
int column, Qt::SortOrder order);
198 void itemChanged(QStandardItem *item,
const QList<
int> &roles = QList<
int>());
203 void rowsInserted(QStandardItem *parent,
int row,
int count);
205 void rowsRemoved(QStandardItem *parent,
int row,
int count);
206 void columnsRemoved(QStandardItem *parent,
int column,
int count);
209 const QModelIndex &bottomRight);
void sort(QStandardItem *parent, int column, Qt::SortOrder order)
QList< QStandardItem * > rowHeaderItems
void rowsAboutToBeRemoved(QStandardItem *parent, int start, int end)
QStandardItem * createItem() const
void columnsAboutToBeRemoved(QStandardItem *parent, int start, int end)
void columnsRemoved(QStandardItem *parent, int column, int count)
const QStandardItem * itemPrototype
~QStandardItemModelPrivate()
QStandardItem * itemFromIndex(const QModelIndex &index) const
void columnsInserted(QStandardItem *parent, int column, int count)
void columnsAboutToBeInserted(QStandardItem *parent, int start, int end)
void itemChanged(QStandardItem *item, const QList< int > &roles=QList< int >())
void decodeDataRecursive(QDataStream &stream, QStandardItem *item)
QHash< int, QByteArray > roleNames
void rowsAboutToBeInserted(QStandardItem *parent, int start, int end)
void _q_emitItemChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
void rowsRemoved(QStandardItem *parent, int row, int count)
QScopedPointer< QStandardItem > root
QList< QStandardItem * > columnHeaderItems
void rowsInserted(QStandardItem *parent, int row, int count)
bool insertRows(int row, const QList< QStandardItem * > &items)
void setModel(QStandardItemModel *mod)
bool insertColumns(int column, int count, const QList< QStandardItem * > &items)
QList< QStandardItemData > values
void setItemData(const QMap< int, QVariant > &roles)
void setChild(int row, int column, QStandardItem *item, bool emitChanged=false)
QMap< int, QVariant > itemData() const
void childDeleted(QStandardItem *child)
void setParentAndModel(QStandardItem *par, QStandardItemModel *mod)
bool insertRows(int row, int count, const QList< QStandardItem * > &items)
QStandardItemModel * model
void sortChildren(int column, Qt::SortOrder order)
QList< QStandardItem * > children
void changeFlags(bool enable, Qt::ItemFlags f)
QT_REQUIRE_CONFIG(standarditemmodel)
QDataStream & operator>>(QDataStream &in, QStandardItemData &data)
QDataStream & operator<<(QDataStream &out, const QStandardItemData &data)
Q_DECLARE_TYPEINFO(QStandardItemData, Q_RELOCATABLE_TYPE)