diff options
Diffstat (limited to 'src/kitemviews/kstandarditemmodel.cpp')
| -rw-r--r-- | src/kitemviews/kstandarditemmodel.cpp | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/src/kitemviews/kstandarditemmodel.cpp b/src/kitemviews/kstandarditemmodel.cpp index 04749b9b5..d0be1325f 100644 --- a/src/kitemviews/kstandarditemmodel.cpp +++ b/src/kitemviews/kstandarditemmodel.cpp @@ -38,19 +38,22 @@ KStandardItemModel::~KStandardItemModel() void KStandardItemModel::insertItem(int index, KStandardItem* item) { - if (!m_indexesForItems.contains(item) && !item->m_model) { + if (item && !m_indexesForItems.contains(item) && !item->m_model) { + item->m_model = this; m_items.insert(index, item); m_indexesForItems.insert(item, index); - item->m_model = this; // TODO: no hierarchical items are handled yet + onItemInserted(index); emit itemsInserted(KItemRangeList() << KItemRange(index, 1)); } } void KStandardItemModel::replaceItem(int index, KStandardItem* item) { - if (index >= 0 && index < count()) { + if (item && index >= 0 && index < count() && !item->m_model) { + item->m_model = this; + QSet<QByteArray> changedRoles; KStandardItem* oldItem= m_items[index]; @@ -75,6 +78,7 @@ void KStandardItemModel::replaceItem(int index, KStandardItem* item) m_items[index] = item; m_indexesForItems.insert(item, index); + onItemReplaced(index); emit itemsChanged(KItemRangeList() << KItemRange(index, 1), changedRoles); } else { kWarning() << "No item available to replace on the given index" << index; @@ -83,11 +87,6 @@ void KStandardItemModel::replaceItem(int index, KStandardItem* item) } } -void KStandardItemModel::appendItem(KStandardItem *item) -{ - insertItem(m_items.count(), item); -} - void KStandardItemModel::removeItem(int index) { if (index >= 0 && index < count()) { @@ -97,6 +96,7 @@ void KStandardItemModel::removeItem(int index) delete item; item = 0; + onItemRemoved(index); emit itemsRemoved(KItemRangeList() << KItemRange(index, 1)); // TODO: no hierarchical items are handled yet } @@ -115,6 +115,11 @@ int KStandardItemModel::index(const KStandardItem* item) const return m_indexesForItems.value(item, -1); } +void KStandardItemModel::appendItem(KStandardItem *item) +{ + insertItem(m_items.count(), item); +} + int KStandardItemModel::count() const { return m_items.count(); @@ -186,4 +191,20 @@ QList<QPair<int, QVariant> > KStandardItemModel::groups() const return groups; } +void KStandardItemModel::onItemInserted(int index) +{ + Q_UNUSED(index); +} + +void KStandardItemModel::onItemReplaced(int index) +{ + Q_UNUSED(index); +} + +void KStandardItemModel::onItemRemoved(int index) +{ + Q_UNUSED(index); +} + + #include "kstandarditemmodel.moc" |
