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];
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;
}
}
-void KStandardItemModel::appendItem(KStandardItem *item)
-{
- insertItem(m_items.count(), item);
-}
-
void KStandardItemModel::removeItem(int index)
{
if (index >= 0 && index < count()) {
delete item;
item = 0;
+ onItemRemoved(index);
emit itemsRemoved(KItemRangeList() << KItemRange(index, 1));
// TODO: no hierarchical items are handled yet
}
return m_indexesForItems.value(item, -1);
}
+void KStandardItemModel::appendItem(KStandardItem *item)
+{
+ insertItem(m_items.count(), item);
+}
+
int KStandardItemModel::count() const
{
return m_items.count();
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"