#ifndef KSTANDARDITEMMODEL_H
#define KSTANDARDITEMMODEL_H
-#include <libdolphin_export.h>
-#include <kitemviews/kitemmodelbase.h>
+#include "dolphin_export.h"
+#include "kitemviews/kitemmodelbase.h"
+
#include <QHash>
#include <QList>
class KStandardItem;
/**
- * @brief Model counterpart for KStandardItemView.
+ * @brief Model counterpart for KStandardItemListView.
*
* Allows to add items to the model in an easy way by the
* class KStandardItem.
*
* @see KStandardItem
*/
-class LIBDOLPHINPRIVATE_EXPORT KStandardItemModel : public KItemModelBase
+class DOLPHIN_EXPORT KStandardItemModel : public KItemModelBase
{
Q_OBJECT
public:
- explicit KStandardItemModel(QObject* parent = 0);
- virtual ~KStandardItemModel();
+ explicit KStandardItemModel(QObject* parent = nullptr);
+ ~KStandardItemModel() override;
/**
* Inserts the item \a item at the index \a index. If the index
* is equal to the number of items of the model, the item
* gets appended as last element. KStandardItemModel takes
- * the ownership of the item.
+ * the ownership of the item. If the index is invalid, the item
+ * gets deleted.
*/
void insertItem(int index, KStandardItem* item);
/**
- * Replaces the item on the index \a index by \a item.
+ * Changes the item on the index \a index to \a item.
* KStandardItemModel takes the ownership of the item. The
- * old item gets deleted.
+ * old item gets deleted. If the index is invalid, the item
+ * gets deleted.
*/
- void replaceItem(int index, KStandardItem* item);
+ void changeItem(int index, KStandardItem* item);
void removeItem(int index);
KStandardItem* item(int index) const;
*/
void appendItem(KStandardItem* item);
- virtual int count() const;
- virtual QHash<QByteArray, QVariant> data(int index) const;
- virtual bool setData(int index, const QHash<QByteArray, QVariant>& values);
- virtual QMimeData* createMimeData(const QSet<int>& indexes) const;
- virtual int indexForKeyboardSearch(const QString& text, int startFromIndex = 0) const;
- virtual bool supportsDropping(int index) const;
- virtual QString roleDescription(const QByteArray& role) const;
- virtual QList<QPair<int, QVariant> > groups() const;
+ int count() const override;
+ QHash<QByteArray, QVariant> data(int index) const override;
+ bool setData(int index, const QHash<QByteArray, QVariant>& values) override;
+ QMimeData* createMimeData(const KItemSet& indexes) const override;
+ int indexForKeyboardSearch(const QString& text, int startFromIndex = 0) const override;
+ bool supportsDropping(int index) const override;
+ QString roleDescription(const QByteArray& role) const override;
+ QList<QPair<int, QVariant> > groups() const override;
+ virtual void clear();
protected:
/**
* Is invoked after an item has been inserted and before the signal
virtual void onItemInserted(int index);
/**
- * Is invoked after an item has been replaced and before the signal
- * itemsChanged() gets emitted.
+ * Is invoked after an item or one of its roles has been changed and
+ * before the signal itemsChanged() gets emitted.
*/
- virtual void onItemReplaced(int index);
+ virtual void onItemChanged(int index, const QSet<QByteArray>& changedRoles);
/**
* Is invoked after an item has been removed and before the signal
- * itemsRemoved() gets emitted.
+ * itemsRemoved() gets emitted. The item \a removedItem has already
+ * been removed from the model and will get deleted after the
+ * execution of onItemRemoved().
*/
- virtual void onItemRemoved(int index);
+ virtual void onItemRemoved(int index, KStandardItem* removedItem);
private:
QList<KStandardItem*> m_items;
QHash<const KStandardItem*, int> m_indexesForItems;
friend class KStandardItem;
+ friend class KStandardItemModelTest; // For unit testing
};
#endif