summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Bugge Monsen <mmonsen@trolltech.com>2009-09-29 15:56:09 +0200
committerMarius Bugge Monsen <mmonsen@trolltech.com>2009-09-29 15:56:09 +0200
commit35f07e0ad9ddcf9660f36d4b30d5627170951f71 (patch)
tree1e05feb5ab78dd6056a1e258a37411b3a2230688
parent12c7dcebf2d50a90a718bcdd05b8ad5cdbde31da (diff)
Change to use string based role names.
-rw-r--r--examples/chat/chatmodel.cpp6
-rw-r--r--examples/chat/chatview.cpp1
-rw-r--r--examples/chat/main.cpp6
-rw-r--r--src/experimental/qkineticlistcontroller.cpp4
-rw-r--r--src/qdataroles_p.h16
-rw-r--r--src/qgraphicsheader.cpp22
-rw-r--r--src/qgraphicsheader.h2
-rw-r--r--src/qgraphicsheader_p.h4
-rw-r--r--src/qgraphicslistview.cpp58
-rw-r--r--src/qgraphicslistview.h27
-rw-r--r--src/qgraphicslistview_p.h6
-rw-r--r--src/qgraphicstableview.cpp52
-rw-r--r--src/qgraphicstableview.h10
-rw-r--r--src/qgraphicstableview_p.h6
-rw-r--r--src/qgraphicstreeview.cpp40
-rw-r--r--src/qgraphicstreeview.h24
-rw-r--r--src/qgraphicstreeview_p.h6
-rw-r--r--src/qlistdefaultmodel.cpp22
-rw-r--r--src/qlistdefaultmodel.h60
-rw-r--r--src/qlistfromtreeadaptor.cpp11
-rw-r--r--src/qlistfromtreeadaptor.h6
-rw-r--r--src/qlistfromtreeadaptor_p.h2
-rw-r--r--src/qlistmodeladaptor.cpp20
-rw-r--r--src/qlistmodeladaptor.h4
-rw-r--r--src/qlistmodelinterface.cpp12
-rw-r--r--src/qlistmodelinterface.h7
-rw-r--r--src/qtablecontroller.cpp8
-rw-r--r--src/qtabledefaultmodel.cpp28
-rw-r--r--src/qtabledefaultmodel.h60
-rw-r--r--src/qtablemodeladaptor.cpp23
-rw-r--r--src/qtablemodeladaptor.h4
-rw-r--r--src/qtablemodelinterface.cpp10
-rw-r--r--src/qtablemodelinterface.h7
-rw-r--r--src/qtreecontroller.cpp8
-rw-r--r--src/qtreedefaultmodel.cpp26
-rw-r--r--src/qtreedefaultmodel.h56
-rw-r--r--src/qtreemodeladaptor.cpp23
-rw-r--r--src/qtreemodeladaptor.h4
-rw-r--r--src/qtreemodelbase.h16
-rw-r--r--src/qtreemodelinterface.h12
40 files changed, 373 insertions, 346 deletions
diff --git a/examples/chat/chatmodel.cpp b/examples/chat/chatmodel.cpp
index 0fd6bef..5d259f6 100644
--- a/examples/chat/chatmodel.cpp
+++ b/examples/chat/chatmodel.cpp
@@ -199,9 +199,9 @@ qMakePair<int, QString>(0, "nah, I dont really care that much. you already have
ChatModel::ChatModel(QObject *parent)
: QtListModelInterface(parent), timerId(0)
{
- timerId = startTimer(2000);
- //for (int i = 0; i < 153; ++i)
- // appendMessage(conversation[i].second, conversation[i].first);
+ //timerId = startTimer(2000);
+ for (int i = 0; i < 153; ++i)
+ appendMessage(conversation[i].second, conversation[i].first);
}
ChatModel::~ChatModel()
diff --git a/examples/chat/chatview.cpp b/examples/chat/chatview.cpp
index 1a59a92..2a43f7d 100644
--- a/examples/chat/chatview.cpp
+++ b/examples/chat/chatview.cpp
@@ -77,6 +77,7 @@ QSizeF ChatViewItem::sizeHint(Qt::SizeHint which, const QSizeF &constraint) cons
switch (which) {
case Qt::MinimumSize:
case Qt::PreferredSize: {
+ return QSizeF(geometry().width(), 30); // ####
const ChatView *chatView = qobject_cast<ChatView*>(view());
static const QSizeF padding(chatView->borders().sourceLeftBorder + chatView->borders().sourceRightBorder,
chatView->borders().sourceTopBorder + chatView->borders().sourceBottomBorder);
diff --git a/examples/chat/main.cpp b/examples/chat/main.cpp
index 8b59736..6083b3e 100644
--- a/examples/chat/main.cpp
+++ b/examples/chat/main.cpp
@@ -38,10 +38,12 @@ int main(int argc, char *argv[])
widget.resize(QSize(320, 480));
widget.scene()->setSceneRect(0, 0, 320, 480);
+ //QtListController *controller = new QtListController(&widget);
QtKineticListController *controller = new QtKineticListController(&widget);
- controller->setView(new ChatView);
+ //controller->setView(new ChatView);
+ controller->setView(new QtGraphicsListView);
controller->setModel(new ChatModel(controller));
- controller->setOvershootEnabled(true);
+ //controller->setOvershootEnabled(true);
controller->view()->setGeometry(0, 0, 320, 480);
controller->view()->setFlag(QGraphicsItem::ItemClipsChildrenToShape, true);
widget.scene()->addItem(controller->view());
diff --git a/src/experimental/qkineticlistcontroller.cpp b/src/experimental/qkineticlistcontroller.cpp
index 5fca8b5..312c991 100644
--- a/src/experimental/qkineticlistcontroller.cpp
+++ b/src/experimental/qkineticlistcontroller.cpp
@@ -49,7 +49,9 @@ bool QtKineticListControllerPrivate::updateOffset()
qreal offset = view->offset();
qreal max = view->maximumOffset();
bool cont = kineticUpdateOffset(&offset, max);
- view->setOffset(overshoot ? offset : qBound<qreal>(0, offset, max));
+ qreal value = overshoot ? offset : qBound<qreal>(0, offset, max);
+ view->setOffset(value);
+ qDebug() << "value" << value;
return cont;
}
diff --git a/src/qdataroles_p.h b/src/qdataroles_p.h
index 6eb8f5a..7c37584 100644
--- a/src/qdataroles_p.h
+++ b/src/qdataroles_p.h
@@ -75,16 +75,22 @@ public:
UserRole = 32
};
- static QHash<int, QByteArray> roles() {
- QHash<int,QByteArray> roles;
+ static QByteArray key(int value) {
const QMetaObject &metaObject = QtDataRoles().staticMetaObject;//static_cast<QtDataRoles*>(0)->staticQtMetaObject;
const int index = metaObject.indexOfEnumerator("ItemDataRole");
if (index == -1)
qWarning() << "QtDataRoles: could not find ItemDataRoles enumerator";
const QMetaEnum metaEnum = metaObject.enumerator(index);
- for (int i = 0; i < metaEnum.keyCount(); ++i)
- roles.insert(metaEnum.value(i), metaEnum.key(i));
- return roles;
+ return metaEnum.key(value);
+ }
+
+ static int value(const QByteArray &name) {
+ const QMetaObject &metaObject = QtDataRoles().staticMetaObject;//static_cast<QtDataRoles*>(0)->staticQtMetaObject;
+ const int index = metaObject.indexOfEnumerator("ItemDataRole");
+ if (index == -1)
+ qWarning() << "QtDataRoles: could not find ItemDataRoles enumerator";
+ const QMetaEnum metaEnum = metaObject.enumerator(index);
+ return metaEnum.keyToValue(name);
}
};
diff --git a/src/qgraphicsheader.cpp b/src/qgraphicsheader.cpp
index 75bb858..2e0fa5c 100644
--- a/src/qgraphicsheader.cpp
+++ b/src/qgraphicsheader.cpp
@@ -610,18 +610,18 @@ void QtGraphicsHeaderPrivate::setSectionMode(int visualIndex, uint mode) // ####
sectionModeSpans.setValue(visualIndex, mode);
}
-QVariant QtGraphicsHeaderPrivate::data(int logicalIndex, int role) const
+QVariant QtGraphicsHeaderPrivate::data(int logicalIndex, const QByteArray &role) const
{
// ### structure this list so the most used items are added first
- static const QList<int> roles = (QList<int>()
- //<< Qt::FontRole
- //<< Qt::TextAlignmentRole
- //<< Qt::ForegroundRole
- //<< Qt::CheckStateRole
- << Qt::DecorationRole
- << Qt::DisplayRole);
+ static const QList<QByteArray> roles = (QList<QByteArray>()
+ //<< "FontRole"
+ //<< "TextAlignmentRole"
+ //<< "ForegroundRole"
+ //<< "CheckStateRole"
+ << "DecorationRole"
+ << "DisplayRole");
if (!dataProvider)
- return (role == Qt::DisplayRole ? logicalIndex : QVariant());
+ return (role == "DisplayRole" ? logicalIndex : QVariant());
if (logicalIndex != cachedDataIndex) {
cachedDataHash = dataProvider->data(logicalIndex, roles);
cachedDataIndex = logicalIndex;
@@ -1494,8 +1494,8 @@ void QtGraphicsHeader::initStyleOption(QStyleOptionHeader *option, int logicalIn
// section data
- option->icon = qvariant_cast<QIcon>(d->data(logicalIndex, Qt::DecorationRole));
- option->text = qvariant_cast<QString>(d->data(logicalIndex, Qt::DisplayRole));
+ option->icon = qvariant_cast<QIcon>(d->data(logicalIndex, "DecorationRole"));
+ option->text = qvariant_cast<QString>(d->data(logicalIndex, "DisplayRole"));
}
/*!
diff --git a/src/qgraphicsheader.h b/src/qgraphicsheader.h
index 777f06e..e47b31d 100644
--- a/src/qgraphicsheader.h
+++ b/src/qgraphicsheader.h
@@ -47,7 +47,7 @@ class Q_ITEMVIEWSNG_EXPORT QtGraphicsHeaderDataProvider
{
public:
virtual ~QtGraphicsHeaderDataProvider();
- virtual QHash<int,QVariant> data(int logicalIndex, const QList<int> &roles) const = 0;
+ virtual QHash<QByteArray,QVariant> data(int logicalIndex, const QList<QByteArray> &roles) const = 0;
};
class Q_ITEMVIEWSNG_EXPORT QtGraphicsHeader : public QGraphicsWidget
diff --git a/src/qgraphicsheader_p.h b/src/qgraphicsheader_p.h
index 52c6200..64e476b 100644
--- a/src/qgraphicsheader_p.h
+++ b/src/qgraphicsheader_p.h
@@ -158,10 +158,10 @@ public:
//void resizeSectionsStretch();
//void resizeSections();
- QVariant data(int logicalIndex, int role) const;
+ QVariant data(int logicalIndex, const QByteArray &role) const;
QtGraphicsHeaderDataProvider *dataProvider;
- mutable QHash<int,QVariant> cachedDataHash;
+ mutable QHash<QByteArray,QVariant> cachedDataHash;
mutable int cachedDataIndex;
Qt::Orientation orientation;
diff --git a/src/qgraphicslistview.cpp b/src/qgraphicslistview.cpp
index 5f10627..480f47f 100644
--- a/src/qgraphicslistview.cpp
+++ b/src/qgraphicslistview.cpp
@@ -70,7 +70,7 @@ QtGraphicsListViewItem::QtGraphicsListViewItem(int index, QtGraphicsListView *vi
: QGraphicsWidget(view, 0), d_ptr(new QtGraphicsListViewItemPrivate)
{
Q_D(QtGraphicsListViewItem);
- setCacheMode(QGraphicsObject::ItemCoordinateCache);
+ //setCacheMode(QGraphicsObject::ItemCoordinateCache);
setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred));
d->q_ptr = this;
d->view = view;
@@ -104,7 +104,7 @@ void QtGraphicsListViewItem::setIndex(int index)
Q_D(QtGraphicsListViewItem);
if (d->index != index) {
d->index = index;
- itemChanged(QList<int>());
+ itemChanged(QList<QByteArray>());
}
}
@@ -131,7 +131,7 @@ QSizeF QtGraphicsListViewItem::sizeHint(Qt::SizeHint which, const QSizeF &constr
case Qt::MinimumSize:
return QSizeF(0, 0);
case Qt::PreferredSize: {
- const QVariant value = d->view->d_func()->cachedData(d->index, Qt::SizeHintRole);
+ const QVariant value = d->view->d_func()->cachedData(d->index, "SizeHintRole");
if (value.isValid())
return qvariant_cast<QSizeF>(value);
else
@@ -171,7 +171,7 @@ void QtGraphicsListViewItem::paint(QPainter *painter, const QStyleOptionGraphics
\sa QtListModelInterface::itemsChanged()
*/
-void QtGraphicsListViewItem::itemChanged(const QList<int> &roles)
+void QtGraphicsListViewItem::itemChanged(const QList<QByteArray> &roles)
{
Q_UNUSED(roles);
update();
@@ -181,12 +181,12 @@ void QtGraphicsListViewItem::itemChanged(const QList<int> &roles)
Returns the data for the given \a roles, for the list model
item this view item represents.
*/
-QHash<int, QVariant> QtGraphicsListViewItem::data(const QList<int> &roles) const
+QHash<QByteArray, QVariant> QtGraphicsListViewItem::data(const QList<QByteArray> &roles) const
{
Q_D(const QtGraphicsListViewItem);
if (d->view && d->view->model())
return d->view->model()->data(d->index, roles);
- return QHash<int, QVariant>();
+ return QHash<QByteArray, QVariant>();
}
/*!
@@ -218,36 +218,36 @@ void QtGraphicsListViewItem::initStyleOption(QStyleOptionViewItemV4 *option) con
QVariant value;
// FontRole
- value = d->view->d_func()->cachedData(d->index, Qt::FontRole);
+ value = d->view->d_func()->cachedData(d->index, "FontRole");
if (value.isValid() && !value.isNull()) {
option->font = qvariant_cast<QFont>(value).resolve(option->font);
option->fontMetrics = QFontMetrics(option->font);
}
// TextAlignmentRole
- value = d->view->d_func()->cachedData(d->index, Qt::TextAlignmentRole);
+ value = d->view->d_func()->cachedData(d->index, "TextAlignmentRole");
if (value.isValid() && !value.isNull())
option->displayAlignment = (Qt::Alignment)value.toInt();
// ForegroundRole
- value = d->view->d_func()->cachedData(d->index, Qt::ForegroundRole);
+ value = d->view->d_func()->cachedData(d->index, "ForegroundRole");
if (qVariantCanConvert<QBrush>(value))
option->palette.setBrush(QPalette::Text, qvariant_cast<QBrush>(value));
// BackgroundRole
- value = d->view->d_func()->cachedData(d->index, Qt::BackgroundRole);
+ value = d->view->d_func()->cachedData(d->index, "BackgroundRole");
if (qVariantCanConvert<QBrush>(value))
option->palette.setBrush(QPalette::Background, qvariant_cast<QBrush>(value));
// CheckStateRole
- value = d->view->d_func()->cachedData(d->index, Qt::CheckStateRole);
+ value = d->view->d_func()->cachedData(d->index, "CheckStateRole");
if (value.isValid()) {
option->features |= QStyleOptionViewItemV2::HasCheckIndicator;
option->checkState = static_cast<Qt::CheckState>(value.toInt());
}
// DecorationRole
- value = d->view->d_func()->cachedData(d->index, Qt::DecorationRole);
+ value = d->view->d_func()->cachedData(d->index, "DecorationRole");
if (value.isValid()) {
option->features |= QStyleOptionViewItemV2::HasDecoration;
switch (value.type()) {
@@ -264,7 +264,7 @@ void QtGraphicsListViewItem::initStyleOption(QStyleOptionViewItemV4 *option) con
}
// DisplayRole
- value = d->view->d_func()->cachedData(d->index, Qt::DisplayRole);
+ value = d->view->d_func()->cachedData(d->index, "DisplayRole");
if (value.isValid()) {
option->features |= QStyleOptionViewItemV2::HasDisplay;
switch (value.type()) {
@@ -339,7 +339,7 @@ QtGraphicsListViewItemCreatorBase::~QtGraphicsListViewItemCreatorBase()
/*!
Updates the given \a item, with the given \a index, using the given \a roles.
*/
-void QtGraphicsListViewItemCreatorBase::update(int index, QGraphicsObject *item, const QList<int> &roles)
+void QtGraphicsListViewItemCreatorBase::update(int index, QGraphicsObject *item, const QList<QByteArray> &roles)
{
Q_UNUSED(index);
Q_UNUSED(roles);
@@ -415,7 +415,7 @@ void QtGraphicsListViewPrivate::_q_selectionsDestroyed()
/*!
\internal
*/
-void QtGraphicsListViewPrivate::_q_itemsChanged(int index, int count, const QList<int> &roles)
+void QtGraphicsListViewPrivate::_q_itemsChanged(int index, int count, const QList<QByteArray> &roles)
{
//Q_Q(QtGraphicsListView);
checkCache(index, count);
@@ -523,17 +523,17 @@ void QtGraphicsListViewPrivate::checkCache(int index, int count)
/*!
\internal
*/
-QVariant QtGraphicsListViewPrivate::cachedData(int index, int role) const
+QVariant QtGraphicsListViewPrivate::cachedData(int index, const QByteArray &role) const
{
// ### structure this list so the most used items are added first
- static const QList<int> roles = (QList<int>()
- << Qt::FontRole
- << Qt::TextAlignmentRole
- << Qt::ForegroundRole
- << Qt::CheckStateRole
- << Qt::DecorationRole
- << Qt::DisplayRole
- << Qt::SizeHintRole);
+ static const QList<QByteArray> roles = (QList<QByteArray>()
+ << "FontRole"
+ << "TextAlignmentRole"
+ << "ForegroundRole"
+ << "CheckStateRole"
+ << "DecorationRole"
+ << "DisplayRole"
+ << "SizeHintRole");
if (index != cachedDataIndex && model) {
cachedDataHash = model->data(index, roles);
cachedDataIndex = index;
@@ -672,14 +672,14 @@ void QtGraphicsListView::setModel(QtListModelInterface *model)
return;
if (d->model) {
disconnect(d->model, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed()));
- disconnect(d->model, SIGNAL(itemsChanged(int,int,const QList<int>&)), this, SLOT(_q_itemsChanged(int,int,const QList<int>&)));
+ disconnect(d->model, SIGNAL(itemsChanged(int,int,const QList<QByteArray>&)), this, SLOT(_q_itemsChanged(int,int,const QList<QByteArray>&)));
disconnect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(_q_itemsInserted(int,int)));
disconnect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(_q_itemsRemoved(int,int)));
}
d->model = model;
if (d->model) {
connect(d->model, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed()));
- connect(d->model, SIGNAL(itemsChanged(int,int,const QList<int>&)), this, SLOT(_q_itemsChanged(int,int,const QList<int>&)));
+ connect(d->model, SIGNAL(itemsChanged(int,int,const QList<QByteArray>&)), this, SLOT(_q_itemsChanged(int,int,const QList<QByteArray>&)));
connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(_q_itemsInserted(int,int)));
connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(_q_itemsRemoved(int,int)));
}
@@ -917,7 +917,8 @@ void QtGraphicsListView::doLayout()
// the visible area starts at coordinate == 0
if (coordinate < 0) { // the cached offset was above or to the left of the visible area
while (index < count) {
- const QSizeF hint = d->itemSize(index);
+ /*const*/ QSizeF hint = d->itemSize(index);
+ hint.setHeight(30); // ###
const qreal size = vertical ? hint.height() : hint.width();
if (coordinate + size > areaStart)
break;
@@ -926,7 +927,8 @@ void QtGraphicsListView::doLayout()
}
} else if (coordinate > 0) { // the cached offset was below or to the right
while (index >= 0 && coordinate > 0) {
- const QSizeF hint = d->itemSize(index);
+ /*const*/ QSizeF hint = d->itemSize(index);
+ hint.setHeight(30); // ###
const qreal size = vertical ? hint.height() : hint.width();
coordinate -= size;
--index;
diff --git a/src/qgraphicslistview.h b/src/qgraphicslistview.h
index bf3aa17..1fa2602 100644
--- a/src/qgraphicslistview.h
+++ b/src/qgraphicslistview.h
@@ -60,10 +60,10 @@ public:
virtual QSizeF sizeHint(Qt::SizeHint which = Qt::PreferredSize, const QSizeF &constraint = QSizeF()) const;
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
- virtual void itemChanged(const QList<int> &roles = QList<int>());
+ virtual void itemChanged(const QList<QByteArray> &roles = QList<QByteArray>());
virtual void initStyleOption(QStyleOptionViewItemV4 *option) const;
- QHash<int, QVariant> data(const QList<int> &roles = QList<int>()) const;
+ QHash<QByteArray, QVariant> data(const QList<QByteArray> &roles = QList<QByteArray>()) const;
QtGraphicsListView *view() const;
protected:
@@ -80,7 +80,7 @@ public:
virtual ~QtGraphicsListViewItemCreatorBase();
virtual QGraphicsObject *create(int index, QtGraphicsListView *view) = 0;
virtual QGraphicsObject *reassign(int index, QGraphicsObject *item, QtGraphicsListView *view) = 0;
- virtual void update(int index, QGraphicsObject *item, const QList<int> &roles);
+ virtual void update(int index, QGraphicsObject *item, const QList<QByteArray> &roles);
virtual void recycle(QGraphicsObject *item);
};
@@ -88,10 +88,21 @@ template <class T>
class QtGraphicsListViewItemCreator : public QtGraphicsListViewItemCreatorBase
{
public:
- ~QtGraphicsListViewItemCreator();
- QGraphicsObject *create(int index, QtGraphicsListView *view);
- QGraphicsObject *reassign(int index, QGraphicsObject *item, QtGraphicsListView *view);
- void update(int index, QGraphicsObject *item, const QList<int> &roles);
+ inline QGraphicsObject *create(int index, QtGraphicsListView *view)
+ {
+ return new T(index, view);
+ }
+ inline QGraphicsObject *reassign(int index, QGraphicsObject *item, QtGraphicsListView *view)
+ {
+ Q_UNUSED(view);
+ static_cast<T*>(item)->setIndex(index);
+ return item;
+ }
+ inline void update(int index, QGraphicsObject *item, const QList<QByteArray> &roles)
+ {
+ Q_UNUSED(index);
+ static_cast<T*>(item)->itemChanged(roles);
+ }
};
template <class T>
@@ -195,7 +206,7 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_controllerDestroyed())
Q_PRIVATE_SLOT(d_func(), void _q_modelDestroyed())
Q_PRIVATE_SLOT(d_func(), void _q_selectionsDestroyed())
- Q_PRIVATE_SLOT(d_func(), void _q_itemsChanged(int index, int count, const QList<int> &roles))
+ Q_PRIVATE_SLOT(d_func(), void _q_itemsChanged(int index, int count, const QList<QByteArray> &roles))
Q_PRIVATE_SLOT(d_func(), void _q_itemsInserted(int index, int count))
Q_PRIVATE_SLOT(d_func(), void _q_itemsRemoved(int index, int count))
Q_PRIVATE_SLOT(d_func(), void _q_selectionsChanged(const QtListSelectionChange &change))
diff --git a/src/qgraphicslistview_p.h b/src/qgraphicslistview_p.h
index 2c94f32..fe87578 100644
--- a/src/qgraphicslistview_p.h
+++ b/src/qgraphicslistview_p.h
@@ -67,7 +67,7 @@ public:
void _q_modelDestroyed();
void _q_selectionsDestroyed();
- void _q_itemsChanged(int index, int count, const QList<int> &roles);
+ void _q_itemsChanged(int index, int count, const QList<QByteArray> &roles);
void _q_itemsInserted(int index, int count);
void _q_itemsRemoved(int index, int count);
void _q_reset();
@@ -77,7 +77,7 @@ public:
void checkCache(int index, int count);
- QVariant cachedData(int index, int role) const;
+ QVariant cachedData(int index, const QByteArray &role) const;
bool isSelected(int index) const;
int currentItem() const;
@@ -102,7 +102,7 @@ public:
mutable qreal cachedCoordinateOffset;
#endif
- mutable QHash<int, QVariant> cachedDataHash;
+ mutable QHash<QByteArray, QVariant> cachedDataHash;
mutable int cachedDataIndex;
QList<QPair<int, QGraphicsObject*> > items;
diff --git a/src/qgraphicstableview.cpp b/src/qgraphicstableview.cpp
index 3e1b15a..2d45081 100644
--- a/src/qgraphicstableview.cpp
+++ b/src/qgraphicstableview.cpp
@@ -66,7 +66,7 @@ void QtGraphicsTableViewItem::setCell(int row, int column)
if (d->row != row || d->column != column) {
d->row = row;
d->column = column;
- itemChanged(QList<int>());
+ itemChanged(QList<QByteArray>());
}
}
@@ -97,7 +97,7 @@ QSizeF QtGraphicsTableViewItem::sizeHint(int row, int column, const QStyleOption
case Qt::MinimumSize:
return QSizeF(1, 1);
case Qt::PreferredSize: {
- const QVariant value = d->view->d_func()->cachedData(row, column, Qt::SizeHintRole);
+ const QVariant value = d->view->d_func()->cachedData(row, column, "SizeHintRole");
if (value.isValid())
return qvariant_cast<QSizeF>(value);
return d->view->style()->sizeFromContents(QStyle::CT_ItemViewItem, option, QSize(), option->widget);
@@ -110,7 +110,7 @@ QSizeF QtGraphicsTableViewItem::sizeHint(int row, int column, const QStyleOption
return QGraphicsWidget::sizeHint(which, constraint);
}
-void QtGraphicsTableViewItem::itemChanged(const QList<int> &roles)
+void QtGraphicsTableViewItem::itemChanged(const QList<QByteArray> &roles)
{
Q_UNUSED(roles);
// ### if the size changed, we need to let the layout know
@@ -118,12 +118,12 @@ void QtGraphicsTableViewItem::itemChanged(const QList<int> &roles)
//update();
}
-QHash<int, QVariant> QtGraphicsTableViewItem::data(const QList<int> &roles) const
+QHash<QByteArray, QVariant> QtGraphicsTableViewItem::data(const QList<QByteArray> &roles) const
{
Q_D(const QtGraphicsTableViewItem);
if (d->view && d->view->model())
return d->view->model()->data(d->row, d->column, roles);
- return QHash<int, QVariant>();
+ return QHash<QByteArray, QVariant>();
}
QtGraphicsTableView *QtGraphicsTableViewItem::view() const
@@ -189,7 +189,7 @@ void QtGraphicsTableViewItem::initStyleOption(QStyleOptionViewItemV4 *option) co
QVariant value;
// FontRole
- value = d->view->d_func()->cachedData(d->row, d->column, Qt::FontRole);
+ value = d->view->d_func()->cachedData(d->row, d->column, "FontRole");
if (value.isValid()) {
option->font = qvariant_cast<QFont>(value).resolve(option->font);
option->fontMetrics = QFontMetrics(option->font);
@@ -198,21 +198,21 @@ void QtGraphicsTableViewItem::initStyleOption(QStyleOptionViewItemV4 *option) co
}
// TextAlignmentRole
- value = d->view->d_func()->cachedData(d->row, d->column, Qt::TextAlignmentRole);
+ value = d->view->d_func()->cachedData(d->row, d->column, "TextAlignmentRole");
if (value.isValid())
option->displayAlignment = static_cast<Qt::Alignment>(value.toInt());
else
option->displayAlignment = Qt::AlignLeft|Qt::AlignVCenter;
// ForegroundRole
- value = d->view->d_func()->cachedData(d->row, d->column, Qt::ForegroundRole);
+ value = d->view->d_func()->cachedData(d->row, d->column, "ForegroundRole");
if (qVariantCanConvert<QBrush>(value))
option->palette.setBrush(QPalette::Text, qvariant_cast<QBrush>(value));
else
option->palette = QPalette();
// CheckStateRole
- value = d->view->d_func()->cachedData(d->row, d->column, Qt::CheckStateRole);
+ value = d->view->d_func()->cachedData(d->row, d->column, "CheckStateRole");
if (value.isValid()) {
option->features |= QStyleOptionViewItemV2::HasCheckIndicator;
option->checkState = static_cast<Qt::CheckState>(value.toInt());
@@ -221,7 +221,7 @@ void QtGraphicsTableViewItem::initStyleOption(QStyleOptionViewItemV4 *option) co
}
// DecorationRole
- value = d->view->d_func()->cachedData(d->row, d->column, Qt::DecorationRole);
+ value = d->view->d_func()->cachedData(d->row, d->column, "DecorationRole");
if (value.isValid()) {
option->features |= QStyleOptionViewItemV2::HasDecoration;
switch (value.type()) {
@@ -240,7 +240,7 @@ void QtGraphicsTableViewItem::initStyleOption(QStyleOptionViewItemV4 *option) co
}
// DisplayRole
- value = d->view->d_func()->cachedData(d->row, d->column, Qt::DisplayRole);
+ value = d->view->d_func()->cachedData(d->row, d->column, "DisplayRole");
if (value.isValid()) {
option->features |= QStyleOptionViewItemV2::HasDisplay;
switch (value.type()) {
@@ -306,7 +306,7 @@ QtGraphicsTableViewItemCreatorBase::~QtGraphicsTableViewItemCreatorBase()
{
}
-void QtGraphicsTableViewItemCreatorBase::update(int row, int column, QGraphicsObject *item, const QList<int> &roles)
+void QtGraphicsTableViewItemCreatorBase::update(int row, int column, QGraphicsObject *item, const QList<QByteArray> &roles)
{
Q_UNUSED(row);
Q_UNUSED(column);
@@ -376,7 +376,7 @@ void QtGraphicsTableViewPrivate::_q_horizontalHeaderDestroyed()
horizontalHeader = 0;
}
-void QtGraphicsTableViewPrivate::_q_cellsChanged(int firstRow, int firstColumn, int rowCount, int columnCount, const QList<int> &roles)
+void QtGraphicsTableViewPrivate::_q_cellsChanged(int firstRow, int firstColumn, int rowCount, int columnCount, const QList<QByteArray> &roles)
{
Q_UNUSED(roles);
// ### check if the headers need resizing
@@ -503,17 +503,17 @@ void QtGraphicsTableViewPrivate::checkCache(int firstRow, int firstColumn, int r
cachedDataHash.clear();
}
-QVariant QtGraphicsTableViewPrivate::cachedData(int row, int column, int role) const
+QVariant QtGraphicsTableViewPrivate::cachedData(int row, int column, const QByteArray &role) const
{
// ### structure this list so the most used items are added first
- static const QList<int> roles = (QList<int>()
- << Qt::FontRole
- << Qt::TextAlignmentRole
- << Qt::ForegroundRole
- << Qt::CheckStateRole
- << Qt::DecorationRole
- << Qt::DisplayRole
- << Qt::EditRole);
+ static const QList<QByteArray> roles = (QList<QByteArray>()
+ << "FontRole"
+ << "TextAlignmentRole"
+ << "ForegroundRole"
+ << "CheckStateRole"
+ << "DecorationRole"
+ << "DisplayRole"
+ << "EditRole");
if (!model)
return QVariant();
if (row != cachedDataRow || column != cachedDataColumn) {
@@ -601,8 +601,8 @@ void QtGraphicsTableView::setModel(QtTableModelInterface *model)
if (d->model) {
QObject::disconnect(d->model, SIGNAL(destroyed()),
this, SLOT(_q_modelDestroyed()));
- QObject::disconnect(d->model, SIGNAL(cellsChanged(int,int,int,int,const QList<int>&)),
- this, SLOT(_q_cellsChanged(int,int,int,int,const QList<int>&)));
+ QObject::disconnect(d->model, SIGNAL(cellsChanged(int,int,int,int,const QList<QByteArray>&)),
+ this, SLOT(_q_cellsChanged(int,int,int,int,const QList<QByteArray>&)));
QObject::disconnect(d->model, SIGNAL(rowsInserted(int,int)),
this, SLOT(_q_rowsInserted(int,int)));
QObject::disconnect(d->model, SIGNAL(rowsRemoved(int,int)),
@@ -620,8 +620,8 @@ void QtGraphicsTableView::setModel(QtTableModelInterface *model)
if (d->model) {
QObject::connect(d->model, SIGNAL(destroyed()),
this, SLOT(_q_modelDestroyed()));
- QObject::connect(d->model, SIGNAL(cellsChanged(int,int,int,int,const QList<int>&)),
- this, SLOT(_q_cellsChanged(int,int,int,int,const QList<int>&)));
+ QObject::connect(d->model, SIGNAL(cellsChanged(int,int,int,int,const QList<QByteArray>&)),
+ this, SLOT(_q_cellsChanged(int,int,int,int,const QList<QByteArray>&)));
QObject::connect(d->model, SIGNAL(rowsInserted(int,int)),
this, SLOT(_q_rowsInserted(int,int)));
QObject::connect(d->model, SIGNAL(rowsRemoved(int,int)),
diff --git a/src/qgraphicstableview.h b/src/qgraphicstableview.h
index 870da4e..bf74a40 100644
--- a/src/qgraphicstableview.h
+++ b/src/qgraphicstableview.h
@@ -65,10 +65,10 @@ public:
virtual QSizeF sizeHint(int row, int column, const QStyleOptionViewItemV4 *option, Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
- virtual void itemChanged(const QList<int> &roles = QList<int>());
+ virtual void itemChanged(const QList<QByteArray> &roles = QList<QByteArray>());
virtual void initStyleOption(QStyleOptionViewItemV4 *option) const;
- QHash<int, QVariant> data(const QList<int> &roles = QList<int>()) const;
+ QHash<QByteArray, QVariant> data(const QList<QByteArray> &roles = QList<QByteArray>()) const;
QtGraphicsTableView *view() const;
void copyStyleOptionState(const QStyleOptionGraphicsItem *source, QStyleOptionViewItemV4 *dest);
@@ -87,7 +87,7 @@ public:
virtual ~QtGraphicsTableViewItemCreatorBase();
virtual QGraphicsObject *create(int row, int column, QtGraphicsTableView *view) = 0;
virtual QGraphicsObject *reassign(int row, int column, QGraphicsObject *item, QtGraphicsTableView *view) = 0;
- virtual void update(int row, int column, QGraphicsObject *item, const QList<int> &roles);
+ virtual void update(int row, int column, QGraphicsObject *item, const QList<QByteArray> &roles);
virtual void recycle(QGraphicsObject *item);
};
@@ -102,7 +102,7 @@ public:
static_cast<T*>(item)->setCell(row, column);
return item;
}
- inline void update(int row, int column, QGraphicsObject *item, const QList<int> &roles)
+ inline void update(int row, int column, QGraphicsObject *item, const QList<QByteArray> &roles)
{
Q_UNUSED(row);
Q_UNUSED(column);
@@ -238,7 +238,7 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_selectionsDestroyed())
Q_PRIVATE_SLOT(d_func(), void _q_verticalHeaderDestroyed())
Q_PRIVATE_SLOT(d_func(), void _q_horizontalHeaderDestroyed())
- Q_PRIVATE_SLOT(d_func(), void _q_cellsChanged(int firstRow, int firstColumn, int rowCount, int columnCount, const QList<int> &roles))
+ Q_PRIVATE_SLOT(d_func(), void _q_cellsChanged(int firstRow, int firstColumn, int rowCount, int columnCount, const QList<QByteArray> &roles))
Q_PRIVATE_SLOT(d_func(), void _q_selectionsChanged(const QList<QtTableSelectionRange> &change))
Q_PRIVATE_SLOT(d_func(), void _q_currentChanged(int currentRow, int currentColumn, int previousRow, int previousColumn))
Q_PRIVATE_SLOT(d_func(), void _q_rowsInserted(int row, int count))
diff --git a/src/qgraphicstableview_p.h b/src/qgraphicstableview_p.h
index 55bbeed..2c79c6e 100644
--- a/src/qgraphicstableview_p.h
+++ b/src/qgraphicstableview_p.h
@@ -75,7 +75,7 @@ public:
void _q_verticalHeaderDestroyed();
void _q_horizontalHeaderDestroyed();
- void _q_cellsChanged(int firstRow, int firstColumn, int rowCount, int columnCount, const QList<int> &roles);
+ void _q_cellsChanged(int firstRow, int firstColumn, int rowCount, int columnCount, const QList<QByteArray> &roles);
void _q_selectionsChanged(const QList<QtTableSelectionRange> &changed);
void _q_currentChanged(int currentRow, int currentColumn, int previousRow, int previousColumn);
@@ -92,7 +92,7 @@ public:
void checkItems(int firstRow, int firstColumn, int rowCount, int columnCount);
void checkCache(int firstRow, int firstColumn, int rowCount, int columnCount);
- QVariant cachedData(int row, int column, int role) const;
+ QVariant cachedData(int row, int column, const QByteArray &role) const;
QtTableController *controller;
QtTableModelInterface *model;
@@ -112,7 +112,7 @@ public:
bool showGrid;
// cached data
- mutable QHash<int,QVariant> cachedDataHash;
+ mutable QHash<QByteArray,QVariant> cachedDataHash;
mutable int cachedDataRow;
mutable int cachedDataColumn;
diff --git a/src/qgraphicstreeview.cpp b/src/qgraphicstreeview.cpp
index 11ba520..a039b22 100644
--- a/src/qgraphicstreeview.cpp
+++ b/src/qgraphicstreeview.cpp
@@ -121,7 +121,7 @@ QSizeF QtGraphicsTreeViewItem::sizeHint(int column, const QStyleOptionViewItemV4
case Qt::MinimumSize:
case Qt::PreferredSize:
case Qt::MaximumSize: {
- const QVariant value = view()->d_func()->cachedData(d->it, column, Qt::SizeHintRole);
+ const QVariant value = view()->d_func()->cachedData(d->it, column, "SizeHintRole");
if (value.isValid())
return qvariant_cast<QSizeF>(value);
else
@@ -198,34 +198,34 @@ void QtGraphicsTreeViewItem::initStyleOption(QStyleOptionViewItemV4 *option, int
QVariant value;
// FontRole
- value = d->view->d_func()->cachedData(d->it, column, Qt::FontRole);
+ value = d->view->d_func()->cachedData(d->it, column, "FontRole");
if (value.isValid()){
option->font = qvariant_cast<QFont>(value).resolve(option->font);
option->fontMetrics = QFontMetrics(option->font);
}
// TextAlignmentRole
- value = d->view->d_func()->cachedData(d->it, column, Qt::TextAlignmentRole);
+ value = d->view->d_func()->cachedData(d->it, column, "TextAlignmentRole");
if (value.isValid())
option->displayAlignment = (Qt::Alignment)value.toInt();
else
option->displayAlignment = 0; // ### default value
// ForegroundRole
- value = d->view->d_func()->cachedData(d->it, column, Qt::ForegroundRole);
+ value = d->view->d_func()->cachedData(d->it, column, "ForegroundRole");
if (qVariantCanConvert<QBrush>(value))
option->palette.setBrush(QPalette::Text, qvariant_cast<QBrush>(value));
// ### default value
// CheckStateRole
- value = d->view->d_func()->cachedData(d->it, column, Qt::CheckStateRole);
+ value = d->view->d_func()->cachedData(d->it, column, "CheckStateRole");
if (value.isValid()) {
option->features |= QStyleOptionViewItemV2::HasCheckIndicator;
option->checkState = static_cast<Qt::CheckState>(value.toInt());
}
// DecorationRole
- value = d->view->d_func()->cachedData(d->it, column, Qt::DecorationRole);
+ value = d->view->d_func()->cachedData(d->it, column, "DecorationRole");
if (value.isValid()) {
option->features |= QStyleOptionViewItemV2::HasDecoration;
switch (value.type()) {
@@ -242,7 +242,7 @@ void QtGraphicsTreeViewItem::initStyleOption(QStyleOptionViewItemV4 *option, int
}
// DisplayRole
- value = d->view->d_func()->cachedData(d->it, column, Qt::DisplayRole);
+ value = d->view->d_func()->cachedData(d->it, column, "DisplayRole");
if (value.isValid()) {
option->features |= QStyleOptionViewItemV2::HasDisplay;
switch (value.type()) {
@@ -340,7 +340,7 @@ void QtGraphicsTreeViewItem::copyStyleOptionState(const QStyleOptionGraphicsItem
}
/*!
*/
-void QtGraphicsTreeViewItem::itemChanged(const QList<int> &roles)
+void QtGraphicsTreeViewItem::itemChanged(const QList<QByteArray> &roles)
{
Q_UNUSED(roles);
prepareGeometryChange();
@@ -349,7 +349,7 @@ void QtGraphicsTreeViewItem::itemChanged(const QList<int> &roles)
/*!
*/
-QHash<int, QVariant> QtGraphicsTreeViewItem::data(int column, const QList<int> &roles) const
+QHash<QByteArray, QVariant> QtGraphicsTreeViewItem::data(int column, const QList<QByteArray> &roles) const
{
Q_D(const QtGraphicsTreeViewItem);
return d->it.data(column, roles);
@@ -367,7 +367,7 @@ QtGraphicsTreeViewItemCreatorBase::~QtGraphicsTreeViewItemCreatorBase()
{
}
-void QtGraphicsTreeViewItemCreatorBase::update(const QtTreeModelIterator &it, QGraphicsObject *item, const QList<int> &roles)
+void QtGraphicsTreeViewItemCreatorBase::update(const QtTreeModelIterator &it, QGraphicsObject *item, const QList<QByteArray> &roles)
{
Q_UNUSED(it);
Q_UNUSED(roles);
@@ -422,7 +422,7 @@ void QtGraphicsTreeViewPrivate::_q_headerDestroyed()
header = 0;
}
-void QtGraphicsTreeViewPrivate::_q_itemsChanged(const QtTreeModelBase::iterator_base &it, int count, const QList<int> &roles)
+void QtGraphicsTreeViewPrivate::_q_itemsChanged(const QtTreeModelBase::iterator_base &it, int count, const QList<QByteArray> &roles)
{
Q_UNUSED(it);
Q_UNUSED(count);
@@ -524,16 +524,16 @@ void QtGraphicsTreeViewPrivate::checkHeader(const QtTreeModelBase::iterator_base
/*!
\internal
*/
-QVariant QtGraphicsTreeViewPrivate::cachedData(const QtTreeModelBase::iterator_base &it, int column, int role) const
+QVariant QtGraphicsTreeViewPrivate::cachedData(const QtTreeModelBase::iterator_base &it, int column, const QByteArray &role) const
{
// ### structure this list so the most used items are added first
- static const QList<int> roles = (QList<int>()
- << Qt::FontRole
- << Qt::TextAlignmentRole
- << Qt::ForegroundRole
- << Qt::CheckStateRole
- << Qt::DecorationRole
- << Qt::DisplayRole);
+ static const QList<QByteArray> roles = (QList<QByteArray>()
+ << "FontRole"
+ << "TextAlignmentRole"
+ << "ForegroundRole"
+ << "CheckStateRole"
+ << "DecorationRole"
+ << "DisplayRole");
if (it != cachedDataItem || column != cachedDataColumn) {
cachedDataHash = it.data(column, roles);
cachedDataItem = it;
@@ -756,7 +756,7 @@ qreal QtGraphicsTreeViewPrivate::itemHeight(QStyleOptionViewItemV4 &option, cons
const int count = it.columnCount();
for (int column = 0; column < count; ++column) {
//#### FIXME: q->initStyleOption(&option, it, column);
- const QVariant value = cachedData(it, column, Qt::SizeHintRole);
+ const QVariant value = cachedData(it, column, "SizeHintRole");
const QSizeF size = (value.isValid() ? qvariant_cast<QSize>(value)
: q->style()->sizeFromContents(QStyle::CT_ItemViewItem, &option, QSize(), option.widget));
height = qMax<qreal>(height, size.height());
diff --git a/src/qgraphicstreeview.h b/src/qgraphicstreeview.h
index 650bf72..c97a28e 100644
--- a/src/qgraphicstreeview.h
+++ b/src/qgraphicstreeview.h
@@ -67,13 +67,13 @@ public:
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
virtual void paintBranches(QPainter *painter, QStyleOptionViewItemV4 *option, const QStack<QtTreeModelIterator> &stack);
- virtual void itemChanged(const QList<int> &roles = QList<int>());
+ virtual void itemChanged(const QList<QByteArray> &roles = QList<QByteArray>());
virtual void initStyleOption(QStyleOptionViewItemV4 *option, int column) const;
virtual void initStyleOptionState(QStyleOptionViewItemV4 *option, const QtTreeModelIterator &it, int column) const;
void copyStyleOptionState(const QStyleOptionGraphicsItem *source, QStyleOptionViewItemV4 *dest);
- QHash<int, QVariant> data(int column = 0, const QList<int> &roles = QList<int>()) const;
+ QHash<QByteArray, QVariant> data(int column = 0, const QList<QByteArray> &roles = QList<QByteArray>()) const;
QtGraphicsTreeView *view() const;
protected:
@@ -90,7 +90,7 @@ public:
virtual ~QtGraphicsTreeViewItemCreatorBase();
virtual QGraphicsObject *create(const QtTreeModelIterator &it, QtGraphicsTreeView *view) = 0;
virtual QGraphicsObject *reassign(const QtTreeModelIterator &it, QGraphicsObject *item, QtGraphicsTreeView *view) = 0;
- virtual void update(const QtTreeModelIterator &it, QGraphicsObject *item, const QList<int> &roles);
+ virtual void update(const QtTreeModelIterator &it, QGraphicsObject *item, const QList<QByteArray> &roles);
virtual void recycle(QGraphicsObject *item);
};
@@ -98,10 +98,18 @@ template <class T>
class QtGraphicsTreeViewItemCreator : public QtGraphicsTreeViewItemCreatorBase
{
public:
- ~QtGraphicsTreeViewItemCreator();
- QGraphicsObject *create(const QtTreeModelIterator &it, QtGraphicsTreeView *view);
- QGraphicsObject *reassign(const QtTreeModelIterator &it, QGraphicsObject *item, QtGraphicsTreeView *view);
- void update(const QtTreeModelIterator &it, QGraphicsObject *item, const QList<int> &roles);
+ inline QGraphicsObject *create(const QtTreeModelIterator &it, QtGraphicsTreeView *view) { return new T(it, view); }
+ inline QGraphicsObject *reassign(const QtTreeModelIterator &it, QGraphicsObject *item, QtGraphicsTreeView *view)
+ {
+ Q_UNUSED(view);
+ static_cast<QtGraphicsTreeViewItem*>(item)->setIterator(it);
+ return item;
+ }
+ inline void update(const QtTreeModelIterator &it, QGraphicsObject *item, const QList<QByteArray> &roles)
+ {
+ Q_UNUSED(it);
+ static_cast<QtGraphicsTreeViewItem*>(item)->itemChanged(roles);
+ }
};
template <class T>
@@ -218,7 +226,7 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_modelDestroyed())
Q_PRIVATE_SLOT(d_func(), void _q_selectionsDestroyed())
Q_PRIVATE_SLOT(d_func(), void _q_headerDestroyed())
- Q_PRIVATE_SLOT(d_func(), void _q_itemsChanged(const QtTreeModelBase::iterator_base &it, int count, const QList<int> &roles))
+ Q_PRIVATE_SLOT(d_func(), void _q_itemsChanged(const QtTreeModelBase::iterator_base &it, int count, const QList<QByteArray> &roles))
Q_PRIVATE_SLOT(d_func(), void _q_itemsInserted(const QtTreeModelBase::iterator_base &it, int count))
Q_PRIVATE_SLOT(d_func(), void _q_itemsRemoved(const QtTreeModelBase::iterator_base &it, int count))
Q_PRIVATE_SLOT(d_func(), void _q_selectionsChanged(const QtTreeSelection &selection))
diff --git a/src/qgraphicstreeview_p.h b/src/qgraphicstreeview_p.h
index 964866e..73144a2 100644
--- a/src/qgraphicstreeview_p.h
+++ b/src/qgraphicstreeview_p.h
@@ -105,7 +105,7 @@ public:
void _q_selectionsDestroyed();
void _q_headerDestroyed();
- void _q_itemsChanged(const QtTreeModelBase::iterator_base &it, int count, const QList<int> &roles);
+ void _q_itemsChanged(const QtTreeModelBase::iterator_base &it, int count, const QList<QByteArray> &roles);
void _q_itemsInserted(const QtTreeModelBase::iterator_base &it, int count);
void _q_itemsRemoved(const QtTreeModelBase::iterator_base &it, int count);
void _q_reset();
@@ -117,7 +117,7 @@ public:
void checkMapping(const QtTreeModelBase::iterator_base &it, int count);
void checkHeader(const QtTreeModelBase::iterator_base &it, int count);
- QVariant cachedData(const QtTreeModelBase::iterator_base &it, int column, int role) const;
+ QVariant cachedData(const QtTreeModelBase::iterator_base &it, int column, const QByteArray &role) const;
bool isCurrent(const QtTreeModelBase::iterator_base &it, int column) const;
bool isSelected(const QtTreeModelBase::iterator_base &it, int column) const;
bool isExpanded(const QtTreeModelBase::iterator_base &it) const;
@@ -152,7 +152,7 @@ public:
Qt::TextElideMode textElideMode;
- mutable QHash<int, QVariant> cachedDataHash;
+ mutable QHash<QByteArray, QVariant> cachedDataHash;
mutable QtTreeModelBase::iterator_base cachedDataItem;
mutable int cachedDataColumn;
diff --git a/src/qlistdefaultmodel.cpp b/src/qlistdefaultmodel.cpp
index 1fff894..165f88c 100644
--- a/src/qlistdefaultmodel.cpp
+++ b/src/qlistdefaultmodel.cpp
@@ -29,7 +29,7 @@ class QtListDefaultItemPrivate
{
public:
inline QtListDefaultItemPrivate() : model(0), index(-1) {}
- QHash<int,QVariant> data;
+ QHash<QByteArray,QVariant> data;
QtListDefaultModel *model;
mutable int index;
};
@@ -53,7 +53,7 @@ QtListDefaultItem::QtListDefaultItem()
QtListDefaultItem::QtListDefaultItem(const QString &text)
: d_ptr(new QtListDefaultItemPrivate)
{
- d_ptr->data.insert(Qt::DisplayRole, text);
+ d_ptr->data.insert("DisplayRole", text);
}
/*!
@@ -83,7 +83,7 @@ void QtListDefaultItem::write(QDataStream &out) const
/*!
*/
-QHash<int,QVariant> QtListDefaultItem::data(const QList<int> &roles) const
+QHash<QByteArray,QVariant> QtListDefaultItem::data(const QList<QByteArray> &roles) const
{
Q_UNUSED(roles);
return d_ptr->data;
@@ -91,10 +91,10 @@ QHash<int,QVariant> QtListDefaultItem::data(const QList<int> &roles) const
/*!
*/
-void QtListDefaultItem::setData(const QHash<int,QVariant> &data)
+void QtListDefaultItem::setData(const QHash<QByteArray,QVariant> &data)
{
- QList<int> roles;
- QHash<int,QVariant>::const_iterator it = data.constBegin();
+ QList<QByteArray> roles;
+ QHash<QByteArray,QVariant>::const_iterator it = data.constBegin();
for (; it != data.constEnd(); ++it) {
d_ptr->data.insert(it.key(), it.value());
roles << it.key();
@@ -104,7 +104,7 @@ void QtListDefaultItem::setData(const QHash<int,QVariant> &data)
/*!
*/
-void QtListDefaultItem::itemChanged(const QList<int> &roles)
+void QtListDefaultItem::itemChanged(const QList<QByteArray> &roles)
{
if (d_ptr->model)
d_ptr->model->itemChanged(this, roles);
@@ -247,11 +247,11 @@ int QtListDefaultModel::count() const
\sa setData()
*/
-QHash<int,QVariant> QtListDefaultModel::data(int index, const QList<int> &roles) const
+QHash<QByteArray,QVariant> QtListDefaultModel::data(int index, const QList<QByteArray> &roles) const
{
if (const QtListDefaultItem *itm = item(index))
return itm->data(roles);
- return QHash<int,QVariant>();
+ return QHash<QByteArray,QVariant>();
}
/*!
@@ -260,7 +260,7 @@ QHash<int,QVariant> QtListDefaultModel::data(int index, const QList<int> &roles)
\sa data()
*/
-bool QtListDefaultModel::setData(int index, const QHash<int,QVariant> &values)
+bool QtListDefaultModel::setData(int index, const QHash<QByteArray,QVariant> &values)
{
Q_D(QtListDefaultModel);
if (index < 0 || index >= d->items.count())
@@ -338,7 +338,7 @@ void QtListDefaultModel::clear()
/*!
*/
-void QtListDefaultModel::itemChanged(QtListDefaultItem *item, const QList<int> &roles)
+void QtListDefaultModel::itemChanged(QtListDefaultItem *item, const QList<QByteArray> &roles)
{
if (item) {
int index = indexOf(item);
diff --git a/src/qlistdefaultmodel.h b/src/qlistdefaultmodel.h
index 5d56600..2a49595 100644
--- a/src/qlistdefaultmodel.h
+++ b/src/qlistdefaultmodel.h
@@ -54,48 +54,48 @@ public:
// data functions
- virtual QHash<int,QVariant> data(const QList<int> &roles) const;
- virtual void setData(const QHash<int,QVariant> &data);
+ virtual QHash<QByteArray,QVariant> data(const QList<QByteArray> &roles) const;
+ virtual void setData(const QHash<QByteArray,QVariant> &data);
- inline QVariant data(int role) const { return data(QList<int>() << role).value(role); }
- inline void setData(const QVariant &data, int role) { QHash<int, QVariant> hash; hash.insert(role, data); setData(hash); }
+ inline QVariant data(const QByteArray &role) const { return data(QList<QByteArray>() << role).value(role); }
+ inline void setData(const QVariant &data, const QByteArray &role) { QHash<QByteArray, QVariant> hash; hash.insert(role, data); setData(hash); }
- inline QString text() const { return qvariant_cast<QString>(data(Qt::DisplayRole)); }
- inline void setText(const QString &text) { setData(text, Qt::DisplayRole); }
+ inline QString text() const { return qvariant_cast<QString>(data("DisplayRole")); }
+ inline void setText(const QString &text) { setData(text, "DisplayRole"); }
- inline QIcon icon() const { return qvariant_cast<QIcon>(data(Qt::DecorationRole)); }
- inline void setIcon(const QIcon &icon) { setData(icon, Qt::DecorationRole); }
+ inline QIcon icon() const { return qvariant_cast<QIcon>(data("DecorationRole")); }
+ inline void setIcon(const QIcon &icon) { setData(icon, "DecorationRole"); }
- inline QString statusTip() const { return qvariant_cast<QString>(data(Qt::StatusTipRole)); }
- inline void setStatusTip(const QString &tip) { setData(tip, Qt::StatusTipRole); }
+ inline QString statusTip() const { return qvariant_cast<QString>(data("StatusTipRole")); }
+ inline void setStatusTip(const QString &tip) { setData(tip, "StatusTipRole"); }
#ifndef QT_NO_TOOLTIP
- inline QString toolTip() const { return qvariant_cast<QString>(data(Qt::ToolTipRole)); }
- inline void setToolTip(const QString &tip) { setData(tip, Qt::ToolTipRole); }
+ inline QString toolTip() const { return qvariant_cast<QString>(data("ToolTipRole")); }
+ inline void setToolTip(const QString &tip) { setData(tip, "ToolTipRole"); }
#endif
#ifndef QT_NO_WHATSTHIS
- inline QString whatsThis() const { return qvariant_cast<QString>(data(Qt::WhatsThisRole)); }
- inline void setWhatsThis(const QString &what) { setData(what, Qt::WhatsThisRole); }
+ inline QString whatsThis() const { return qvariant_cast<QString>(data("WhatsThisRole")); }
+ inline void setWhatsThis(const QString &what) { setData(what, "WhatsThisRole"); }
#endif
- inline QFont font() const { return qvariant_cast<QFont>(data(Qt::FontRole)); }
- inline void setFont(const QFont &font) { setData(font, Qt::FontRole); }
+ inline QFont font() const { return qvariant_cast<QFont>(data("FontRole")); }
+ inline void setFont(const QFont &font) { setData(font, "FontRole"); }
- inline int textAlignment() const { return qvariant_cast<int>(data(Qt::TextAlignmentRole)); }
- inline void setTextAlignment(int alignment) { setData(alignment, Qt::TextAlignmentRole); }
+ inline int textAlignment() const { return qvariant_cast<int>(data("TextAlignmentRole")); }
+ inline void setTextAlignment(int alignment) { setData(alignment, "TextAlignmentRole"); }
- inline QBrush background() const { return qvariant_cast<QBrush>(data(Qt::BackgroundRole)); }
- inline void setBackground(const QBrush &brush) { setData(brush, Qt::BackgroundRole); }
+ inline QBrush background() const { return qvariant_cast<QBrush>(data("BackgroundRole")); }
+ inline void setBackground(const QBrush &brush) { setData(brush, "BackgroundRole"); }
- inline QBrush foreground() const { return qvariant_cast<QBrush>(data(Qt::ForegroundRole)); }
- inline void setForeground(const QBrush &brush) { setData(brush, Qt::ForegroundRole); }
+ inline QBrush foreground() const { return qvariant_cast<QBrush>(data("ForegroundRole")); }
+ inline void setForeground(const QBrush &brush) { setData(brush, "ForegroundRole"); }
- inline Qt::CheckState checkState() const { return static_cast<Qt::CheckState>(data(Qt::CheckStateRole).toInt()); }
- inline void setCheckState(Qt::CheckState state) { setData(state, Qt::CheckStateRole); }
+ inline Qt::CheckState checkState() const { return static_cast<Qt::CheckState>(data("CheckStateRole").toInt()); }
+ inline void setCheckState(Qt::CheckState state) { setData(state, "CheckStateRole"); }
- inline QSizeF sizeHint() const { return qvariant_cast<QSizeF>(data(Qt::SizeHintRole)); }
- inline void setSizeHint(const QSizeF &size) { setData(size, Qt::SizeHintRole); }
+ inline QSizeF sizeHint() const { return qvariant_cast<QSizeF>(data("SizeHintRole")); }
+ inline void setSizeHint(const QSizeF &size) { setData(size, "SizeHintRole"); }
protected:
- void itemChanged(const QList<int> &roles);
+ void itemChanged(const QList<QByteArray> &roles);
private:
QtListDefaultItemPrivate *d_ptr;
@@ -115,8 +115,8 @@ public:
QtListDefaultItem *item(int index) const;
int count() const;
- QHash<int,QVariant> data(int index, const QList<int> &roles) const;
- bool setData(int index, const QHash<int,QVariant> &values);
+ QHash<QByteArray,QVariant> data(int index, const QList<QByteArray> &roles) const;
+ bool setData(int index, const QHash<QByteArray,QVariant> &values);
public Q_SLOTS:
void appendItem(QtListDefaultItem *item);
@@ -128,7 +128,7 @@ public Q_SLOTS:
protected:
QtListDefaultModel(QtListDefaultModelPrivate &, QObject *parent = 0);
QtListDefaultModelPrivate *d_ptr;
- void itemChanged(QtListDefaultItem *item, const QList<int> &roles);
+ void itemChanged(QtListDefaultItem *item, const QList<QByteArray> &roles);
void itemDeleted(QtListDefaultItem *item);
private:
diff --git a/src/qlistfromtreeadaptor.cpp b/src/qlistfromtreeadaptor.cpp
index 0759852..b43342a 100644
--- a/src/qlistfromtreeadaptor.cpp
+++ b/src/qlistfromtreeadaptor.cpp
@@ -24,6 +24,7 @@
#include "qlistfromtreeadaptor.h"
#include "qlistfromtreeadaptor_p.h"
#include "qtreemodelbase.h"
+#include "qdataroles_p.h"
QT_BEGIN_NAMESPACE
@@ -95,7 +96,7 @@ void QtListFromTreeAdaptorPrivate::_q_itemsRemoved(const QtTreeModelBase::iterat
\see QtListModelInterface::itemsChanged()
*/
void QtListFromTreeAdaptorPrivate::_q_itemsChanged(const QtTreeModelBase::iterator_base &it, int count,
- const QList<int> &roles)
+ const QList<QByteArray> &roles)
{
Q_Q(QtListFromTreeAdaptor);
@@ -288,12 +289,12 @@ int QtListFromTreeAdaptor::count() const
/*!
\see QtListModelInterface::data()
*/
-QHash<int,QVariant> QtListFromTreeAdaptor::data(int index, const QList<int> &roles) const
+QHash<QByteArray,QVariant> QtListFromTreeAdaptor::data(int index, const QList<QByteArray> &roles) const
{
Q_D(const QtListFromTreeAdaptor);
if (index < 0 || index >= count())
- return QHash<int, QVariant>();
+ return QHash<QByteArray, QVariant>();
return d->iteratorAt(index).data(d->column, roles);
}
@@ -301,7 +302,7 @@ QHash<int,QVariant> QtListFromTreeAdaptor::data(int index, const QList<int> &rol
/*!
\see QtListModelInterface::setData()
*/
-bool QtListFromTreeAdaptor::setData(int index, const QHash<int,QVariant> &values)
+bool QtListFromTreeAdaptor::setData(int index, const QHash<QByteArray,QVariant> &values)
{
Q_D(const QtListFromTreeAdaptor);
@@ -311,7 +312,7 @@ bool QtListFromTreeAdaptor::setData(int index, const QHash<int,QVariant> &values
return false;
if (it.isValid()) {
- QHash<int,QVariant> oldValues = it.data(d->column);
+ QHash<QByteArray,QVariant> oldValues = it.data(d->column);
it.setData(d->column, oldValues.unite(values));
}
diff --git a/src/qlistfromtreeadaptor.h b/src/qlistfromtreeadaptor.h
index 1810915..57c84b3 100644
--- a/src/qlistfromtreeadaptor.h
+++ b/src/qlistfromtreeadaptor.h
@@ -50,8 +50,8 @@ public:
int column() const;
int count() const;
- QHash<int,QVariant> data(int index, const QList<int> &roles) const;
- bool setData(int index, const QHash<int,QVariant> &values);
+ QHash<QByteArray,QVariant> data(int index, const QList<QByteArray> &roles) const;
+ bool setData(int index, const QHash<QByteArray,QVariant> &values);
protected:
QtListFromTreeAdaptor(QtListFromTreeAdaptorPrivate &, QObject *parent = 0);
@@ -63,7 +63,7 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_modelDestroyed())
Q_PRIVATE_SLOT(d_func(), void _q_itemsInserted(const QtTreeModelBase::iterator_base &,int))
Q_PRIVATE_SLOT(d_func(), void _q_itemsRemoved(const QtTreeModelBase::iterator_base &,int))
- Q_PRIVATE_SLOT(d_func(), void _q_itemsChanged(const QtTreeModelBase::iterator_base &,int,const QList<int> &))
+ Q_PRIVATE_SLOT(d_func(), void _q_itemsChanged(const QtTreeModelBase::iterator_base &,int,const QList<QByteArray> &))
};
QT_END_NAMESPACE
diff --git a/src/qlistfromtreeadaptor_p.h b/src/qlistfromtreeadaptor_p.h
index e7b9662..e62fdfc 100644
--- a/src/qlistfromtreeadaptor_p.h
+++ b/src/qlistfromtreeadaptor_p.h
@@ -51,7 +51,7 @@ public:
void _q_modelDestroyed();
void _q_itemsInserted(const QtTreeModelBase::iterator_base &it, int count);
void _q_itemsRemoved(const QtTreeModelBase::iterator_base &it, int count);
- void _q_itemsChanged(const QtTreeModelBase::iterator_base &it, int count, const QList<int> &roles);
+ void _q_itemsChanged(const QtTreeModelBase::iterator_base &it, int count, const QList<QByteArray> &roles);
QtTreeModelBase::iterator_base iteratorAt(int index) const;
diff --git a/src/qlistmodeladaptor.cpp b/src/qlistmodeladaptor.cpp
index bd848d2..810055f 100644
--- a/src/qlistmodeladaptor.cpp
+++ b/src/qlistmodeladaptor.cpp
@@ -23,6 +23,7 @@
#include "qlistmodeladaptor.h"
#include "qlistmodeladaptor_p.h"
+#include "qdataroles_p.h"
#include <qdebug.h>
@@ -48,7 +49,7 @@ void QtListModelAdaptorPrivate::_q_dataChanged(const QModelIndex &topLeft, const
// ### make sure that topLeft.parent() == d->root && bottomRight.parent() == d->root
int index = topLeft.row();
int count = bottomRight.row() - topLeft.row() + 1;
- emit q->itemsChanged(index, count, QList<int>());
+ emit q->itemsChanged(index, count, QList<QByteArray>());
}
void QtListModelAdaptorPrivate::_q_headerDataChanged(Qt::Orientation orientation, int first, int last)
@@ -232,25 +233,28 @@ int QtListModelAdaptor::count() const
return d->model && !d->empty ? d->model->rowCount(d->root) : 0;
}
-QHash<int,QVariant> QtListModelAdaptor::data(int index, const QList<int> &roles) const
+QHash<QByteArray,QVariant> QtListModelAdaptor::data(int index, const QList<QByteArray> &roles) const
{
Q_D(const QtListModelAdaptor);
- QHash<int,QVariant> values;
+ QHash<QByteArray,QVariant> values;
if (d->model) {
const QModelIndex idx = d->model->index(index, d->column, d->root);
for (int i = 0; i < roles.count(); ++i)
- values.insert(roles.at(i), d->model->data(idx, roles.at(i)));
+ values.insert(roles.at(i), d->model->data(idx, QtDataRoles::value(roles.at(i))));
}
return values;
}
-bool QtListModelAdaptor::setData(int index, const QHash<int,QVariant> &values)
+bool QtListModelAdaptor::setData(int index, const QHash<QByteArray,QVariant> &values)
{
Q_D(QtListModelAdaptor);
- QHash<int,QVariant>::const_iterator it = values.begin();
- for (; it != values.end(); ++it)
- if (!d->model->setData(d->model->index(index, d->column, d->root), it.value(), it.key()))
+ QHash<QByteArray,QVariant>::const_iterator it = values.begin();
+ for (; it != values.end(); ++it) {
+ const QModelIndex idx = d->model->index(index, d->column, d->root);
+ int role = QtDataRoles::value(it.key());
+ if (!d->model->setData(idx, it.value(), role))
return false;
+ }
return true;
}
diff --git a/src/qlistmodeladaptor.h b/src/qlistmodeladaptor.h
index 2c98416..6efbe5d 100644
--- a/src/qlistmodeladaptor.h
+++ b/src/qlistmodeladaptor.h
@@ -52,8 +52,8 @@ public:
int column() const;
int count() const;
- QHash<int,QVariant> data(int index, const QList<int> &roles) const;
- bool setData(int index, const QHash<int,QVariant> &values);
+ QHash<QByteArray,QVariant> data(int index, const QList<QByteArray> &roles) const;
+ bool setData(int index, const QHash<QByteArray,QVariant> &values);
protected:
QtListModelAdaptor(QtListModelAdaptorPrivate &, QObject *parent = 0);
diff --git a/src/qlistmodelinterface.cpp b/src/qlistmodelinterface.cpp
index 05923d1..825856f 100644
--- a/src/qlistmodelinterface.cpp
+++ b/src/qlistmodelinterface.cpp
@@ -22,7 +22,6 @@
****************************************************************************/
#include "qlistmodelinterface.h"
-#include "qdataroles_p.h"
QT_BEGIN_NAMESPACE
@@ -74,7 +73,7 @@ QtListModelInterface::~QtListModelInterface()
The default implementation does not set the data, and will always return
false.
*/
-bool QtListModelInterface::setData(int index, const QHash<int,QVariant> &values)
+bool QtListModelInterface::setData(int index, const QHash<QByteArray,QVariant> &values)
{
Q_UNUSED(index);
Q_UNUSED(values);
@@ -82,15 +81,6 @@ bool QtListModelInterface::setData(int index, const QHash<int,QVariant> &values)
}
/*!
- Returns the supported roles for this model.
- */
-QHash<int,QByteArray> QtListModelInterface::roles() const
-{
- return QtDataRoles::roles();
-
-}
-
-/*!
\fn QHash<int,QVariant> data(int index, const QList<int> &roles = (QList<int>())) const
Returns the data for a given \a index, according to the \a roles.
diff --git a/src/qlistmodelinterface.h b/src/qlistmodelinterface.h
index bbe643b..3b44124 100644
--- a/src/qlistmodelinterface.h
+++ b/src/qlistmodelinterface.h
@@ -44,15 +44,14 @@ public:
virtual ~QtListModelInterface();
virtual int count() const = 0;
- virtual QHash<int,QVariant> data(int index, const QList<int> &roles = (QList<int>())) const = 0;
- virtual bool setData(int index, const QHash<int,QVariant> &values);
- virtual QHash<int,QByteArray> roles() const;
+ virtual QHash<QByteArray,QVariant> data(int index, const QList<QByteArray> &roles = (QList<QByteArray>())) const = 0;
+ virtual bool setData(int index, const QHash<QByteArray,QVariant> &values);
Q_SIGNALS:
void itemsInserted(int index, int count);
void itemsRemoved(int index, int count);
void itemsMoved(int from, int to, int count);
- void itemsChanged(int index, int count, const QList<int> &roles);
+ void itemsChanged(int index, int count, const QList<QByteArray> &roles);
protected:
QtListModelInterface(QObjectPrivate &dd, QObject *parent);
diff --git a/src/qtablecontroller.cpp b/src/qtablecontroller.cpp
index d3e1c4e..c2fc26b 100644
--- a/src/qtablecontroller.cpp
+++ b/src/qtablecontroller.cpp
@@ -47,13 +47,13 @@ class QTableHeaderDataProvider : public QtGraphicsHeaderDataProvider
{
public:
QTableHeaderDataProvider() : model(0) {}
- QHash<int,QVariant> data(int logicalIndex, const QList<int> &roles) const
+ QHash<QByteArray,QVariant> data(int logicalIndex, const QList<QByteArray> &roles) const
{
// ### call the model - temporary implementation
- QHash<int,QVariant> hash;
+ QHash<QByteArray,QVariant> hash;
for (int i = 0; i < roles.count(); ++i)
- if (roles.at(i) == Qt::DisplayRole)
- hash.insert(Qt::DisplayRole, logicalIndex + 1);
+ if (roles.at(i) == "DisplayRole")
+ hash.insert(roles.at(i), logicalIndex + 1);
return hash;
}
QtTableModelInterface *model;
diff --git a/src/qtabledefaultmodel.cpp b/src/qtabledefaultmodel.cpp
index 6c93c34..6a83bd9 100644
--- a/src/qtabledefaultmodel.cpp
+++ b/src/qtabledefaultmodel.cpp
@@ -29,7 +29,7 @@ class QtTableDefaultItemPrivate
{
public:
inline QtTableDefaultItemPrivate() : model(0), index(-1) {}
- QHash<int,QVariant> data;
+ QHash<QByteArray,QVariant> data;
QtTableDefaultModel *model;
mutable int index;
};
@@ -51,7 +51,7 @@ QtTableDefaultItem::QtTableDefaultItem()
QtTableDefaultItem::QtTableDefaultItem(const QString &text)
: d_ptr(new QtTableDefaultItemPrivate)
{
- d_ptr->data.insert(Qt::DisplayRole, text);
+ d_ptr->data.insert("DisplayRole", text);
}
/*!
@@ -81,7 +81,7 @@ void QtTableDefaultItem::write(QDataStream &out) const
/*!
*/
-QHash<int,QVariant> QtTableDefaultItem::data(const QList<int> &roles) const
+QHash<QByteArray,QVariant> QtTableDefaultItem::data(const QList<QByteArray> &roles) const
{
/*
QHash<int,QVariant> hash;
@@ -96,10 +96,10 @@ QHash<int,QVariant> QtTableDefaultItem::data(const QList<int> &roles) const
/*!
*/
-void QtTableDefaultItem::setData(const QHash<int,QVariant> &data)
+void QtTableDefaultItem::setData(const QHash<QByteArray,QVariant> &data)
{
- QList<int> roles;
- QHash<int,QVariant>::const_iterator it = data.constBegin();
+ QList<QByteArray> roles;
+ QHash<QByteArray,QVariant>::const_iterator it = data.constBegin();
for (; it != data.constEnd(); ++it) {
d_ptr->data.insert(it.key(), it.value());
roles << it.key();
@@ -109,7 +109,7 @@ void QtTableDefaultItem::setData(const QHash<int,QVariant> &data)
/*!
*/
-void QtTableDefaultItem::itemChanged(const QList<int> &roles)
+void QtTableDefaultItem::itemChanged(const QList<QByteArray> &roles)
{
if (d_ptr->model)
d_ptr->model->itemChanged(this, roles);
@@ -412,22 +412,22 @@ void QtTableDefaultModel::setItem(int row, int column, QtTableDefaultItem *item)
int index = d->index(row, column);
item->d_ptr->index = index;
d->cells[index] = item;
- emit cellsChanged(row, column, 1, 1, QList<int>());
+ emit cellsChanged(row, column, 1, 1, QList<QByteArray>());
}
}
/*!
*/
-QHash<int,QVariant> QtTableDefaultModel::data(int row, int column, const QList<int> &roles) const
+QHash<QByteArray,QVariant> QtTableDefaultModel::data(int row, int column, const QList<QByteArray> &roles) const
{
if (const QtTableDefaultItem *itm = item(row, column))
return itm->data(roles);
- return QHash<int,QVariant>();
+ return QHash<QByteArray,QVariant>();
}
/*!
*/
-bool QtTableDefaultModel::setData(int row, int column, const QHash<int,QVariant> &values)
+bool QtTableDefaultModel::setData(int row, int column, const QHash<QByteArray,QVariant> &values)
{
Q_D(QtTableDefaultModel);
int index = d->index(row, column);
@@ -506,7 +506,7 @@ void QtTableDefaultModel::clearContents()
{
Q_D(QtTableDefaultModel);
d->clearContents();
- emit cellsChanged(0, 0, d->rowCount, d->columnCount, QList<int>());
+ emit cellsChanged(0, 0, d->rowCount, d->columnCount, QList<QByteArray>());
}
/*!
@@ -521,7 +521,7 @@ void QtTableDefaultModel::clear()
/*!
*/
-void QtTableDefaultModel::itemChanged(QtTableDefaultItem *item, const QList<int> &roles)
+void QtTableDefaultModel::itemChanged(QtTableDefaultItem *item, const QList<QByteArray> &roles)
{
if (item) {
int row = itemRow(item);
@@ -537,7 +537,7 @@ void QtTableDefaultModel::itemDeleted(QtTableDefaultItem *item)
if (item) {
int row = itemRow(item);
int column = itemColumn(item);
- emit cellsChanged(row, column, 1, 1, QList<int>());
+ emit cellsChanged(row, column, 1, 1, QList<QByteArray>());
}
}
diff --git a/src/qtabledefaultmodel.h b/src/qtabledefaultmodel.h
index d79075e..dd2083e 100644
--- a/src/qtabledefaultmodel.h
+++ b/src/qtabledefaultmodel.h
@@ -53,48 +53,48 @@ public:
// data functions
- virtual QHash<int,QVariant> data(const QList<int> &roles) const;
- virtual void setData(const QHash<int,QVariant> &data);
+ virtual QHash<QByteArray,QVariant> data(const QList<QByteArray> &roles) const;
+ virtual void setData(const QHash<QByteArray,QVariant> &data);
- inline QVariant data(int role) const { return data(QList<int>() << role).value(role); }
- inline void setData(const QVariant &data, int role) { QHash<int,QVariant> hash; hash.insert(role, data); setData(hash); }
+ inline QVariant data(const QByteArray &role) const { return data(QList<QByteArray>() << role).value(role); }
+ inline void setData(const QVariant &data, const QByteArray &role) { QHash<QByteArray,QVariant> hash; hash.insert(role, data); setData(hash); }
- inline QString text() const { return qvariant_cast<QString>(data(Qt::DisplayRole)); }
- inline void setText(const QString &text) { setData(text, Qt::DisplayRole); }
+ inline QString text() const { return qvariant_cast<QString>(data("DisplayRole")); }
+ inline void setText(const QString &text) { setData(text, "DisplayRole"); }
- inline QIcon icon() const { return qvariant_cast<QIcon>(data(Qt::DecorationRole)); }
- inline void setIcon(const QIcon &icon) { setData(icon, Qt::DecorationRole); }
+ inline QIcon icon() const { return qvariant_cast<QIcon>(data("DecorationRole")); }
+ inline void setIcon(const QIcon &icon) { setData(icon, "DecorationRole"); }
- inline QString statusTip() const { return qvariant_cast<QString>(data(Qt::StatusTipRole)); }
- inline void setStatusTip(const QString &tip) { setData(tip, Qt::StatusTipRole); }
+ inline QString statusTip() const { return qvariant_cast<QString>(data("StatusTipRole")); }
+ inline void setStatusTip(const QString &tip) { setData(tip, "StatusTipRole"); }
#ifndef QT_NO_TOOLTIP
- inline QString toolTip() const { return qvariant_cast<QString>(data(Qt::ToolTipRole)); }
- inline void setToolTip(const QString &tip) { setData(tip, Qt::ToolTipRole); }
+ inline QString toolTip() const { return qvariant_cast<QString>(data("ToolTipRole")); }
+ inline void setToolTip(const QString &tip) { setData(tip, "ToolTipRole"); }
#endif
#ifndef QT_NO_WHATSTHIS
- inline QString whatsThis() const { return qvariant_cast<QString>(data(Qt::WhatsThisRole)); }
- inline void setWhatsThis(const QString &what) { setData(what, Qt::WhatsThisRole); }
+ inline QString whatsThis() const { return qvariant_cast<QString>(data("WhatsThisRole")); }
+ inline void setWhatsThis(const QString &what) { setData(what, "WhatsThisRole"); }
#endif
- inline QFont font() const { return qvariant_cast<QFont>(data(Qt::FontRole)); }
- inline void setFont(const QFont &font) { setData(font, Qt::FontRole); }
+ inline QFont font() const { return qvariant_cast<QFont>(data("FontRole")); }
+ inline void setFont(const QFont &font) { setData(font, "FontRole"); }
- inline int textAlignment() const { return qvariant_cast<int>(data(Qt::TextAlignmentRole)); }
- inline void setTextAlignment(int alignment) { setData(alignment, Qt::TextAlignmentRole); }
+ inline int textAlignment() const { return qvariant_cast<int>(data("TextAlignmentRole")); }
+ inline void setTextAlignment(int alignment) { setData(alignment, "TextAlignmentRole"); }
- inline QBrush background() const { return qvariant_cast<QBrush>(data(Qt::BackgroundRole)); }
- inline void setBackground(const QBrush &brush) { setData(brush, Qt::BackgroundRole); }
+ inline QBrush background() const { return qvariant_cast<QBrush>(data("BackgroundRole")); }
+ inline void setBackground(const QBrush &brush) { setData(brush, "BackgroundRole"); }
- inline QBrush foreground() const { return qvariant_cast<QBrush>(data(Qt::ForegroundRole)); }
- inline void setForeground(const QBrush &brush) { setData(brush, Qt::ForegroundRole); }
+ inline QBrush foreground() const { return qvariant_cast<QBrush>(data("ForegroundRole")); }
+ inline void setForeground(const QBrush &brush) { setData(brush, "ForegroundRole"); }
- inline Qt::CheckState checkState() const { return static_cast<Qt::CheckState>(data(Qt::CheckStateRole).toInt()); }
- inline void setCheckState(Qt::CheckState state) { setData(state, Qt::CheckStateRole); }
+ inline Qt::CheckState checkState() const { return static_cast<Qt::CheckState>(data("CheckStateRole").toInt()); }
+ inline void setCheckState(Qt::CheckState state) { setData(state, "CheckStateRole"); }
- inline QSizeF sizeHint() const { return qvariant_cast<QSizeF>(data(Qt::SizeHintRole)); }
- inline void setSizeHint(const QSizeF &size) { setData(size, Qt::SizeHintRole); }
+ inline QSizeF sizeHint() const { return qvariant_cast<QSizeF>(data("SizeHintRole")); }
+ inline void setSizeHint(const QSizeF &size) { setData(size, "SizeHintRole"); }
protected:
- void itemChanged(const QList<int> &roles);
+ void itemChanged(const QList<QByteArray> &roles);
private:
QtTableDefaultItemPrivate *d_ptr;
@@ -127,8 +127,8 @@ public:
// ### what about header labels ?
- QHash<int,QVariant> data(int row, int column, const QList<int> &roles) const;
- bool setData(int row, int column, const QHash<int,QVariant> &values);
+ QHash<QByteArray,QVariant> data(int row, int column, const QList<QByteArray> &roles) const;
+ bool setData(int row, int column, const QHash<QByteArray,QVariant> &values);
public Q_SLOTS:
void insertRow(int row);
@@ -142,7 +142,7 @@ public Q_SLOTS:
protected:
QtTableDefaultModel(QtTableDefaultModelPrivate &, QObject *parent = 0);
- void itemChanged(QtTableDefaultItem *item, const QList<int> &roles);
+ void itemChanged(QtTableDefaultItem *item, const QList<QByteArray> &roles);
void itemDeleted(QtTableDefaultItem *item);
QtTableDefaultModelPrivate *d_ptr;
diff --git a/src/qtablemodeladaptor.cpp b/src/qtablemodeladaptor.cpp
index 574b85c..a4eab28 100644
--- a/src/qtablemodeladaptor.cpp
+++ b/src/qtablemodeladaptor.cpp
@@ -23,6 +23,7 @@
#include "qtablemodeladaptor.h"
#include "qtablemodeladaptor_p.h"
+#include "qdataroles_p.h"
#include <qdebug.h>
@@ -50,7 +51,7 @@ void QtTableModelAdaptorPrivate::_q_dataChanged(const QModelIndex &topLeft, cons
int column = topLeft.column();
int rowCount = bottomRight.row() - topLeft.row() + 1;
int columnCount = bottomRight.column() - topLeft.column() + 1;
- emit q->cellsChanged(row, column, rowCount, columnCount, QList<int>());
+ emit q->cellsChanged(row, column, rowCount, columnCount, QList<QByteArray>());
}
void QtTableModelAdaptorPrivate::_q_headerDataChanged(Qt::Orientation orientation, int first, int last)
@@ -213,25 +214,29 @@ int QtTableModelAdaptor::columnCount() const
return d->model ? d->model->columnCount(d->root) : 0;
}
-QHash<int,QVariant> QtTableModelAdaptor::data(int row, int column, const QList<int> &roles) const
+QHash<QByteArray,QVariant> QtTableModelAdaptor::data(int row, int column, const QList<QByteArray> &roles) const
{
Q_D(const QtTableModelAdaptor);
- QHash<int,QVariant> values;
+ QHash<QByteArray,QVariant> values;
if (d->model) {
const QModelIndex idx = d->model->index(row, column, d->root);
- for (int i = 0; i < roles.count(); ++i)
- values.insert(roles.at(i), d->model->data(idx, roles.at(i)));
+ for (int i = 0; i < roles.count(); ++i) {
+ int role = QtDataRoles::value(roles.at(i));
+ values.insert(roles.at(i), d->model->data(idx, role));
+ }
}
return values;
}
-bool QtTableModelAdaptor::setData(int row, int column, const QHash<int,QVariant> &values)
+bool QtTableModelAdaptor::setData(int row, int column, const QHash<QByteArray,QVariant> &values)
{
Q_D(QtTableModelAdaptor);
- QHash<int,QVariant>::const_iterator it = values.begin();
- for (; it != values.end(); ++it)
- if (!d->model->setData(d->model->index(row, column, d->root), it.value(), it.key()))
+ QHash<QByteArray,QVariant>::const_iterator it = values.begin();
+ for (; it != values.end(); ++it) {
+ int role = QtDataRoles::value(it.key());
+ if (!d->model->setData(d->model->index(row, column, d->root), it.value(), role))
return false;
+ }
return true;
}
diff --git a/src/qtablemodeladaptor.h b/src/qtablemodeladaptor.h
index 44355ae..8c347e3 100644
--- a/src/qtablemodeladaptor.h
+++ b/src/qtablemodeladaptor.h
@@ -51,8 +51,8 @@ public:
int rowCount() const;
int columnCount() const;
- QHash<int,QVariant> data(int row, int column, const QList<int> &roles = QList<int>()) const;
- bool setData(int row, int column, const QHash<int,QVariant> &values);
+ QHash<QByteArray,QVariant> data(int row, int column, const QList<QByteArray> &roles = QList<QByteArray>()) const;
+ bool setData(int row, int column, const QHash<QByteArray,QVariant> &values);
protected:
QtTableModelAdaptor(QtTableModelAdaptorPrivate &, QObject *parent = 0);
diff --git a/src/qtablemodelinterface.cpp b/src/qtablemodelinterface.cpp
index ccdcfbc..7314999 100644
--- a/src/qtablemodelinterface.cpp
+++ b/src/qtablemodelinterface.cpp
@@ -52,7 +52,7 @@ QtTableModelInterface::~QtTableModelInterface()
The default implementation does not set the data, and will always return
false.
*/
-bool QtTableModelInterface::setData(int row, int column, const QHash<int,QVariant> &values)
+bool QtTableModelInterface::setData(int row, int column, const QHash<QByteArray,QVariant> &values)
{
Q_UNUSED(row);
Q_UNUSED(column);
@@ -60,12 +60,4 @@ bool QtTableModelInterface::setData(int row, int column, const QHash<int,QVarian
return false;
}
-/*!
- Returns the supported roles for this model.
- */
-QHash<int,QByteArray> QtTableModelInterface::roles() const
-{
- return QtDataRoles::roles();
-}
-
QT_END_NAMESPACE
diff --git a/src/qtablemodelinterface.h b/src/qtablemodelinterface.h
index 379d518..39e4347 100644
--- a/src/qtablemodelinterface.h
+++ b/src/qtablemodelinterface.h
@@ -44,15 +44,14 @@ public:
virtual int rowCount() const = 0;
virtual int columnCount() const = 0;
- virtual QHash<int,QVariant> data(int row, int column, const QList<int> &roles = QList<int>()) const = 0;
- virtual bool setData(int row, int column, const QHash<int,QVariant> &values);
- virtual QHash<int,QByteArray> roles() const;
+ virtual QHash<QByteArray,QVariant> data(int row, int column, const QList<QByteArray> &roles = QList<QByteArray>()) const = 0;
+ virtual bool setData(int row, int column, const QHash<QByteArray,QVariant> &values);
// ### we may need something along the lines of cacheHint() that gives the model an idea
// ### of what can be kept, what can be thrown away and what needs to be fetched
Q_SIGNALS:
- void cellsChanged(int firstRow, int firstColumn, int rowCount, int columnCount, const QList<int> &roles);
+ void cellsChanged(int firstRow, int firstColumn, int rowCount, int columnCount, const QList<QByteArray> &roles);
void rowsInserted(int row, int count);
void rowsRemoved(int row, int count);
void rowsMoved(int from, int to, int count);
diff --git a/src/qtreecontroller.cpp b/src/qtreecontroller.cpp
index 8a91c22..c7bdd51 100644
--- a/src/qtreecontroller.cpp
+++ b/src/qtreecontroller.cpp
@@ -41,13 +41,13 @@ class QTreeHeaderDataProvider : public QtGraphicsHeaderDataProvider
{
public:
QTreeHeaderDataProvider() : model(0) {}
- QHash<int,QVariant> data(int logicalIndex, const QList<int> &roles) const
+ QHash<QByteArray,QVariant> data(int logicalIndex, const QList<QByteArray> &roles) const
{
// ### call the model - temporary implementation
- QHash<int,QVariant> hash;
+ QHash<QByteArray,QVariant> hash;
for (int i = 0; i < roles.count(); ++i)
- if (roles.at(i) == Qt::DisplayRole)
- hash.insert(Qt::DisplayRole, logicalIndex + 1);
+ if (roles.at(i) == "DisplayRole") // ### FIXME
+ hash.insert(roles.at(i), logicalIndex + 1);
return hash;
}
QtTreeModelBase *model;
diff --git a/src/qtreedefaultmodel.cpp b/src/qtreedefaultmodel.cpp
index a2578c6..08da717 100644
--- a/src/qtreedefaultmodel.cpp
+++ b/src/qtreedefaultmodel.cpp
@@ -30,7 +30,7 @@ QT_BEGIN_NAMESPACE
struct QtTreeDefaultItemPrivate
{
QtTreeDefaultItemPrivate() : parent(0), previous(0), next(0), model(0) {}
- QVector<QHash<int,QVariant> > data;
+ QVector<QHash<QByteArray,QVariant> > data;
QtTreeDefaultItem *parent;
QtTreeDefaultItem *previous;
QtTreeDefaultItem *next;
@@ -50,7 +50,7 @@ QtTreeDefaultItem::QtTreeDefaultItem(QtTreeDefaultItem *parent)
d_ptr->parent = parent;
d_ptr->parent->appendChild(this);
}
- d_ptr->data.append(QHash<int,QVariant>());
+ d_ptr->data.append(QHash<QByteArray,QVariant>());
}
/*!
@@ -64,8 +64,8 @@ QtTreeDefaultItem::QtTreeDefaultItem(const QString &text, QtTreeDefaultItem *par
d_ptr->parent = parent;
d_ptr->parent->appendChild(this);
}
- d_ptr->data.append(QHash<int,QVariant>());
- d_ptr->data.last().insert(Qt::DisplayRole, text);
+ d_ptr->data.append(QHash<QByteArray,QVariant>());
+ d_ptr->data.last().insert("DisplayRole", text);
}
/*!
@@ -136,7 +136,7 @@ void QtTreeDefaultItem::setColumnCount(int count)
if (d_ptr->data.count() != count) {
d_ptr->data.resize(count);
if (d_ptr->model)
- d_ptr->model->itemChanged(this, QList<int>());
+ d_ptr->model->itemChanged(this, QList<QByteArray>());
}
}
@@ -248,7 +248,7 @@ void QtTreeDefaultItem::write(QDataStream &out) const
Returns the data for the item's \a column and \a roles.
\sa setData()
*/
-QHash<int,QVariant> QtTreeDefaultItem::data(int column, const QList<int> &roles) const
+QHash<QByteArray,QVariant> QtTreeDefaultItem::data(int column, const QList<QByteArray> &roles) const
{
/*
QHash<int, QVariant> retval;
@@ -265,7 +265,7 @@ QHash<int,QVariant> QtTreeDefaultItem::data(int column, const QList<int> &roles)
Returns the data for the item's \a column and \a role.
\sa setData()
*/
-QVariant QtTreeDefaultItem::data(int column, int role) const
+QVariant QtTreeDefaultItem::data(int column, const QByteArray &role) const
{
return d_ptr->data.value(column).value(role);
}
@@ -274,12 +274,12 @@ QVariant QtTreeDefaultItem::data(int column, int role) const
Sets the value for the item's \a column and \a role to the given \a data.
\sa data()
*/
-void QtTreeDefaultItem::setData(const QVariant &data, int column, int role)
+void QtTreeDefaultItem::setData(const QVariant &data, int column, const QByteArray &role)
{
if (column >= 0 && column < d_ptr->data.count()) {
d_ptr->data[column].insert(role, data);
if (d_ptr->model)
- d_ptr->model->itemChanged(this, QList<int>() << role);
+ d_ptr->model->itemChanged(this, QList<QByteArray>() << role);
}
}
@@ -402,17 +402,17 @@ QtTreeDefaultItem *QtTreeDefaultModel::parentItem(QtTreeDefaultItem *item) const
\internal
\reimp
*/
-QHash<int,QVariant> QtTreeDefaultModel::data(QtTreeDefaultItem *item, int column, const QList<int> &roles) const
+QHash<QByteArray,QVariant> QtTreeDefaultModel::data(QtTreeDefaultItem *item, int column, const QList<QByteArray> &roles) const
{
Q_D(const QtTreeDefaultModel);
- return item && item != d->root ? item->data(column, roles) : QHash<int,QVariant>();
+ return item && item != d->root ? item->data(column, roles) : QHash<QByteArray,QVariant>();
}
/*!
\internal
\reimp
*/
-bool QtTreeDefaultModel::setData(const QVariant &data, QtTreeDefaultItem *item, int column, int role)
+bool QtTreeDefaultModel::setData(const QVariant &data, QtTreeDefaultItem *item, int column, const QByteArray &role)
{
Q_D(const QtTreeDefaultModel);
if (item && item != d->root) {
@@ -506,7 +506,7 @@ void QtTreeDefaultModel::itemRemoved(QtTreeDefaultItem *item)
\internal
Report that an item has been changed by emitting the itemsChanged signal.
*/
-void QtTreeDefaultModel::itemChanged(QtTreeDefaultItem *item, const QList<int> &roles)
+void QtTreeDefaultModel::itemChanged(QtTreeDefaultItem *item, const QList<QByteArray> &roles)
{
QtTreeDefaultModel::iterator it(item, this);
emit itemsChanged(it, 1, roles);
diff --git a/src/qtreedefaultmodel.h b/src/qtreedefaultmodel.h
index aae5b0d..05b30cf 100644
--- a/src/qtreedefaultmodel.h
+++ b/src/qtreedefaultmodel.h
@@ -67,47 +67,47 @@ public:
#endif
// data functions
- virtual QHash<int,QVariant> data(int column, const QList<int> &roles) const;
- virtual QVariant data(int column, int role) const; // ###
- virtual void setData(const QVariant &data, int column, int role); // ### is the order of args ok ?
+ virtual QHash<QByteArray,QVariant> data(int column, const QList<QByteArray> &roles) const;
+ virtual QVariant data(int column, const QByteArray &role) const; // ###
+ virtual void setData(const QVariant &data, int column, const QByteArray &role); // ### is the order of args ok ?
// ### we should add
// Qt::TextRole == Qt::DisplayRole
// Qt::IconRole == Qt::DecorationRole
- inline QString text(int column = 0) const { return qvariant_cast<QString>(data(column, Qt::DisplayRole)); }
- inline void setText(const QString &text, int column = 0) { setData(text, column, Qt::DisplayRole); }
+ inline QString text(int column = 0) const { return qvariant_cast<QString>(data(column, "DisplayRole")); }
+ inline void setText(const QString &text, int column = 0) { setData(text, column, "DisplayRole"); }
- inline QIcon icon(int column = 0) const { return qvariant_cast<QIcon>(data(column, Qt::DecorationRole)); }
- inline void setIcon(const QIcon &icon, int column = 0) { setData(icon, column, Qt::DecorationRole); }
+ inline QIcon icon(int column = 0) const { return qvariant_cast<QIcon>(data(column, "DecorationRole")); }
+ inline void setIcon(const QIcon &icon, int column = 0) { setData(icon, column, "DecorationRole"); }
- inline QString statusTip(int column = 0) const { return qvariant_cast<QString>(data(column, Qt::StatusTipRole)); }
- inline void setStatusTip(const QString &tip, int column = 0) { setData(tip, column, Qt::StatusTipRole); }
+ inline QString statusTip(int column = 0) const { return qvariant_cast<QString>(data(column, "StatusTipRole")); }
+ inline void setStatusTip(const QString &tip, int column = 0) { setData(tip, column, "StatusTipRole"); }
#ifndef QT_NO_TOOLTIP
- inline QString toolTip(int column = 0) const { return qvariant_cast<QString>(data(column, Qt::ToolTipRole)); }
- inline void setToolTip(const QString &tip, int column = 0) { setData(tip, column, Qt::ToolTipRole); }
+ inline QString toolTip(int column = 0) const { return qvariant_cast<QString>(data(column, "ToolTipRole")); }
+ inline void setToolTip(const QString &tip, int column = 0) { setData(tip, column, "ToolTipRole"); }
#endif
#ifndef QT_NO_WHATSTHIS
- inline QString whatsThis(int column = 0) const { return qvariant_cast<QString>(data(column, Qt::WhatsThisRole)); }
- inline void setWhatsThis(const QString &what, int column = 0) { setData(what, column, Qt::WhatsThisRole); }
+ inline QString whatsThis(int column = 0) const { return qvariant_cast<QString>(data(column, "WhatsThisRole")); }
+ inline void setWhatsThis(const QString &what, int column = 0) { setData(what, column, "WhatsThisRole"); }
#endif
- inline QFont font(int column = 0) const { return qvariant_cast<QFont>(data(column, Qt::FontRole)); }
- inline void setFont(const QFont &font, int column = 0) { setData(font, column, Qt::FontRole); }
+ inline QFont font(int column = 0) const { return qvariant_cast<QFont>(data(column, "FontRole")); }
+ inline void setFont(const QFont &font, int column = 0) { setData(font, column, "FontRole"); }
- inline int textAlignment(int column = 0) const { return qvariant_cast<int>(data(column, Qt::TextAlignmentRole)); }
- inline void setTextAlignment(int alignment, int column = 0) { setData(alignment, column, Qt::TextAlignmentRole); }
+ inline int textAlignment(int column = 0) const { return qvariant_cast<int>(data(column, "TextAlignmentRole")); }
+ inline void setTextAlignment(int alignment, int column = 0) { setData(alignment, column, "TextAlignmentRole"); }
- inline QBrush background(int column = 0) const { return qvariant_cast<QBrush>(data(column, Qt::BackgroundRole)); }
- inline void setBackground(const QBrush &brush, int column = 0) { setData(brush, column, Qt::BackgroundRole); }
+ inline QBrush background(int column = 0) const { return qvariant_cast<QBrush>(data(column, "BackgroundRole")); }
+ inline void setBackground(const QBrush &brush, int column = 0) { setData(brush, column, "BackgroundRole"); }
- inline QBrush foreground(int column = 0) const { return qvariant_cast<QBrush>(data(column, Qt::ForegroundRole)); }
- inline void setForeground(const QBrush &brush, int column = 0) { setData(brush, column, Qt::ForegroundRole); }
+ inline QBrush foreground(int column = 0) const { return qvariant_cast<QBrush>(data(column, "ForegroundRole")); }
+ inline void setForeground(const QBrush &brush, int column = 0) { setData(brush, column, "ForegroundRole"); }
- inline Qt::CheckState checkState(int column = 0) const { return static_cast<Qt::CheckState>(data(column, Qt::CheckStateRole).toInt()); }
- inline void setCheckState(Qt::CheckState state, int column = 0) { setData(state, column, Qt::CheckStateRole); }
+ inline Qt::CheckState checkState(int column = 0) const { return static_cast<Qt::CheckState>(data(column, "CheckStateRole").toInt()); }
+ inline void setCheckState(Qt::CheckState state, int column = 0) { setData(state, column, "CheckStateRole"); }
- inline QSizeF sizeHint(int column = 0) const { return qvariant_cast<QSizeF>(data(column, Qt::SizeHintRole)); }
- inline void setSizeHint(const QSizeF &size, int column = 0) { setData(size, column, Qt::SizeHintRole); }
+ inline QSizeF sizeHint(int column = 0) const { return qvariant_cast<QSizeF>(data(column, "SizeHintRole")); }
+ inline void setSizeHint(const QSizeF &size, int column = 0) { setData(size, column, "SizeHintRole"); }
private:
QtTreeDefaultItemPrivate *d_ptr;
@@ -133,8 +133,8 @@ protected:
QtTreeDefaultItem *nextSibling(QtTreeDefaultItem *item) const;
QtTreeDefaultItem *previousSibling(QtTreeDefaultItem *item) const;
QtTreeDefaultItem *parentItem(QtTreeDefaultItem *item) const;
- QHash<int,QVariant> data(QtTreeDefaultItem *item, int column, const QList<int> &roles) const;
- bool setData(const QVariant &data, QtTreeDefaultItem *item, int column, int role);
+ QHash<QByteArray,QVariant> data(QtTreeDefaultItem *item, int column, const QList<QByteArray> &roles) const;
+ bool setData(const QVariant &data, QtTreeDefaultItem *item, int column, const QByteArray &role);
bool isValid(QtTreeDefaultItem *item) const;
int columnCount(QtTreeDefaultItem *item) const;
@@ -147,7 +147,7 @@ protected:
// other
void itemInserted(QtTreeDefaultItem *item);
void itemRemoved(QtTreeDefaultItem *item);
- void itemChanged(QtTreeDefaultItem *item, const QList<int> &roles);
+ void itemChanged(QtTreeDefaultItem *item, const QList<QByteArray> &roles);
protected:
QtTreeDefaultModelPrivate *d_ptr;
diff --git a/src/qtreemodeladaptor.cpp b/src/qtreemodeladaptor.cpp
index 4b94e05..df9c670 100644
--- a/src/qtreemodeladaptor.cpp
+++ b/src/qtreemodeladaptor.cpp
@@ -23,6 +23,7 @@
#include "qtreemodeladaptor.h"
#include "qtreemodeladaptor_p.h"
+#include "qdataroles_p.h"
#include <qdebug.h>
@@ -47,7 +48,7 @@ void QtTreeModelAdaptorPrivate::_q_dataChanged(const QModelIndex &topLeft, const
Q_Q(QtTreeModelAdaptor);
QtTreeModelAdaptor::iterator it(QPersistentModelIndex(topLeft), q);
int count = bottomRight.row() - topLeft.row();
- emit q->itemsChanged(it, count, QList<int>());
+ emit q->itemsChanged(it, count, QList<QByteArray>());
}
void QtTreeModelAdaptorPrivate::_q_headerDataChanged(Qt::Orientation orientation, int first, int last)
@@ -213,27 +214,31 @@ QPersistentModelIndex QtTreeModelAdaptor::previousSibling(QPersistentModelIndex
return t.sibling(t.row() - 1, 0);
}
-QHash<int,QVariant> QtTreeModelAdaptor::data(QPersistentModelIndex t, int column, const QList<int> &roles) const
+QHash<QByteArray,QVariant> QtTreeModelAdaptor::data(QPersistentModelIndex t, int column, const QList<QByteArray> &roles) const
{
Q_D(const QtTreeModelAdaptor);
- QHash<int,QVariant> values;
+ QHash<QByteArray,QVariant> values;
if (d->model) {
QModelIndex index = t.sibling(t.row(), column);
- for (int i = 0; i < roles.count(); ++i)
- values.insert(roles.at(i), d->model->data(index, roles.at(i)));
+ for (int i = 0; i < roles.count(); ++i) {
+ int role = QtDataRoles::value(roles.at(i));
+ values.insert(roles.at(i), d->model->data(index, role));
+ }
}
return values;
}
-bool QtTreeModelAdaptor::setData(QPersistentModelIndex t, int column, const QHash<int,QVariant> &values)
+bool QtTreeModelAdaptor::setData(QPersistentModelIndex t, int column, const QHash<QByteArray,QVariant> &values)
{
Q_D(QtTreeModelAdaptor);
if (!d->model)
return false;
- QHash<int,QVariant>::const_iterator it = values.begin();
- for (; it != values.end(); ++it)
- if (!d->model->setData(t.sibling(t.row(), column), it.value(), it.key()))
+ QHash<QByteArray,QVariant>::const_iterator it = values.begin();
+ for (; it != values.end(); ++it) {
+ int role = QtDataRoles::value(it.key());
+ if (!d->model->setData(t.sibling(t.row(), column), it.value(), role))
return false;
+ }
return true;
}
diff --git a/src/qtreemodeladaptor.h b/src/qtreemodeladaptor.h
index c310b47..586ff0c 100644
--- a/src/qtreemodeladaptor.h
+++ b/src/qtreemodeladaptor.h
@@ -50,8 +50,8 @@ public:
QPersistentModelIndex nextSibling(QPersistentModelIndex t) const;
QPersistentModelIndex parentItem(QPersistentModelIndex t) const;
QPersistentModelIndex previousSibling(QPersistentModelIndex t) const;
- QHash<int,QVariant> data(QPersistentModelIndex t, int column, const QList<int> &roles) const;
- bool setData(QPersistentModelIndex t, int column, const QHash<int,QVariant> &values);
+ QHash<QByteArray,QVariant> data(QPersistentModelIndex t, int column, const QList<QByteArray> &roles) const;
+ bool setData(QPersistentModelIndex t, int column, const QHash<QByteArray,QVariant> &values);
bool hasChildren(QPersistentModelIndex t) const;
bool isValid(QPersistentModelIndex t) const;
diff --git a/src/qtreemodelbase.h b/src/qtreemodelbase.h
index 61f41f7..803dd99 100644
--- a/src/qtreemodelbase.h
+++ b/src/qtreemodelbase.h
@@ -53,8 +53,8 @@ public:
virtual void parent() = 0;
virtual void previousSibling() = 0;
virtual bool operator==(const navigator_base &other) const = 0;
- virtual QHash<int,QVariant> data(int column, const QList<int> &roles) const = 0;
- virtual bool setData(int column, const QHash<int,QVariant> &values) = 0;
+ virtual QHash<QByteArray,QVariant> data(int column, const QList<QByteArray> &roles) const = 0;
+ virtual bool setData(int column, const QHash<QByteArray,QVariant> &values) = 0;
virtual bool isValid() const = 0;
virtual int columnCount() const = 0;
virtual bool hasChildren() const = 0;
@@ -118,17 +118,17 @@ public:
inline iterator_base &parent() { if (n) { detach(); n->parent(); } return *this; }
inline iterator_base &previousSibling() { if (n) { detach(); n->previousSibling(); } return *this; }
- inline QHash<int,QVariant> data(int column = 0, const QList<int> &roles = (QList<int>()<<Qt::DisplayRole)) const
+ inline QHash<QByteArray,QVariant> data(int column = 0, const QList<QByteArray> &roles = (QList<QByteArray>()<<"DisplayRole")) const
{
- return (n ? n->data(column, roles) : QHash<int,QVariant>());
+ return (n ? n->data(column, roles) : QHash<QByteArray,QVariant>());
}
- inline bool setData(int column, const QHash<int,QVariant> &values)
+ inline bool setData(int column, const QHash<QByteArray,QVariant> &values)
{
return (n ? n->setData(column, values) : false);
}
- inline bool setData(int column, const QVariant &value, int role)
+ inline bool setData(int column, const QVariant &value, const QByteArray &role)
{
- QHash<int,QVariant> values;
+ QHash<QByteArray,QVariant> values;
values.insert(role, value);
return setData(column, values);
}
@@ -160,7 +160,7 @@ public:
Q_SIGNALS:
void itemsInserted(const QtTreeModelBase::iterator_base &it, int count);
void itemsRemoved(const QtTreeModelBase::iterator_base &it, int count);
- void itemsChanged(const QtTreeModelBase::iterator_base &it, int count, const QList<int> &roles);
+ void itemsChanged(const QtTreeModelBase::iterator_base &it, int count, const QList<QByteArray> &roles);
protected:
QtTreeModelBase(QObjectPrivate &dd, QObject *parent) : QObject(dd, parent) {}
diff --git a/src/qtreemodelinterface.h b/src/qtreemodelinterface.h
index 26d129b..1aa7190 100644
--- a/src/qtreemodelinterface.h
+++ b/src/qtreemodelinterface.h
@@ -50,8 +50,8 @@ protected:
void parent() { if (m) t = m->parentItem(t); }
void previousSibling() { if (m) t = m->previousSibling(t); }
bool operator==(const navigator_base &other) const { return (reinterpret_cast<const navigator*>(&other)->t == t); }
- QHash<int,QVariant> data(int column, const QList<int> &roles) const { return m ? m->data(t, column, roles) : QHash<int,QVariant>(); }
- bool setData(int column, const QHash<int,QVariant> &values) { return m ? m->setData(t, column, values) : false; }
+ QHash<QByteArray,QVariant> data(int column, const QList<QByteArray> &roles) const { return m ? m->data(t, column, roles) : QHash<QByteArray,QVariant>(); }
+ bool setData(int column, const QHash<QByteArray,QVariant> &values) { return m ? m->setData(t, column, values) : false; }
bool isValid() const { return m && m->isValid(t); }
int columnCount() const { return m ? m->columnCount(t) : 0; }
bool hasChildren() const { return m ? m->hasChildren(t) : false; }
@@ -96,7 +96,7 @@ protected:
inline const_iterator &nextSibling() { (void)iterator_base::nextSibling(); return *this; }
inline const_iterator &parent() { (void)iterator_base::parent(); return *this; }
inline const_iterator &previousSibling() { (void)iterator_base::previousSibling(); return *this; }
- inline QHash<int,QVariant> data(int column = 0, const QList<int> &roles = (QList<int>()<<Qt::DisplayRole)) const
+ inline QHash<QByteArray,QVariant> data(int column = 0, const QList<QByteArray> &roles = (QList<QByteArray>()<<"DisplayRole")) const
{
return iterator_base::data(column, roles);
}
@@ -141,7 +141,7 @@ protected:
virtual T nextSibling(T t) const = 0; // ### these may be hard to implement efficiently
virtual T previousSibling(T t) const = 0;
virtual T parentItem(T t) const = 0; // ### we can't use a stack, since we construct iterators for the signals
- virtual QHash<int,QVariant> data(T t, int column, const QList<int> &roles) const = 0;
+ virtual QHash<QByteArray,QVariant> data(T t, int column, const QList<QByteArray> &roles) const = 0;
virtual bool isValid(T t) const = 0; // ### no good default implementation
// ### these are optional
@@ -151,7 +151,7 @@ protected:
virtual bool hasPreviousSibling(T t) const { return isValid(t) && isValid(const_cast<QtTreeModelInterface*>(this)->previousSibling(t)); }
virtual bool hasParent(T t) const { return isValid(t) && isValid(const_cast<QtTreeModelInterface*>(this)->parentItem(t)); }
virtual uint hash(T t) const { return qHash(t); } // ### needed for selections
- virtual bool setData(T t, int column, const QHash<int,QVariant> &values)
+ virtual bool setData(T t, int column, const QHash<QByteArray,QVariant> &values)
{
Q_UNUSED(t); Q_UNUSED(column); Q_UNUSED(values);
return false;
@@ -159,7 +159,7 @@ protected:
inline void itemsInserted(iterator &it, int count) { QtTreeModelBase::itemsInserted(it, count); }
inline void itemsRemoved(iterator &it, int count) { QtTreeModelBase::itemsRemoved(it, count); }
- inline void itemsChanged(iterator &it, int count, const QList<int> &roles) { QtTreeModelBase::itemsChanged(it, count, roles); }
+ inline void itemsChanged(iterator &it, int count, const QList<QByteArray> &roles) { QtTreeModelBase::itemsChanged(it, count, roles); }
protected: // let the developers have access to the navigators
QtTreeModelInterface(QObjectPrivate &dd, QObject *parent) : QtTreeModelBase(dd, parent) {}