[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.6/kdebase/runtime/plasma/declarativeimports/core
From: Marco Martin <notmart () gmail ! com>
Date: 2011-01-20 22:08:59
Message-ID: 20110120220859.426D3AC8B8 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1216039 by mart:
backport not resetting the role names association
M +12 -11 datamodel.cpp
M +1 -0 datamodel.h
--- branches/KDE/4.6/kdebase/runtime/plasma/declarativeimports/core/datamodel.cpp #1216038:1216039
@@ -125,7 +125,8 @@
DataModel::DataModel(QObject* parent)
: QAbstractItemModel(parent),
- m_dataSource(0)
+ m_dataSource(0),
+ m_maxRoleId(Qt::UserRole)
{
setObjectName("DataModel");
connect(this, SIGNAL(rowsInserted(const QModelIndex &, int, int)),
@@ -217,23 +218,23 @@
m_items[sourceName] = list.toVector();
if (!list.isEmpty()) {
- int role = Qt::UserRole;
- m_roleNames.clear();
- m_roleIds.clear();
-
if (list.first().canConvert<QVariantHash>()) {
foreach (const QString& roleName, list.first().value<QVariantHash>().keys()) {
- ++role;
- m_roleNames[role] = roleName.toLatin1();
- m_roleIds[roleName] = role;
+ if (!m_roleIds.contains(roleName)) {
+ ++m_maxRoleId;
+ m_roleNames[m_maxRoleId] = roleName.toLatin1();
+ m_roleIds[roleName] = m_maxRoleId;
}
+ }
} else {
foreach (const QString& roleName, list.first().value<QVariantMap>().keys()) {
- ++role;
- m_roleNames[role] = roleName.toLatin1();
- m_roleIds[roleName] = role;
+ if (!m_roleIds.contains(roleName)) {
+ ++m_maxRoleId;
+ m_roleNames[m_maxRoleId] = roleName.toLatin1();
+ m_roleIds[roleName] = m_maxRoleId;
}
}
+ }
setRoleNames(m_roleNames);
}
--- branches/KDE/4.6/kdebase/runtime/plasma/declarativeimports/core/datamodel.h #1216038:1216039
@@ -132,6 +132,7 @@
QMap<QString, QVector<QVariant> > m_items;
QHash<int, QByteArray> m_roleNames;
QHash<QString, int> m_roleIds;
+ int m_maxRoleId;
};
int DataModel::countItems() const
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic