X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/b419cfc5974192f3445b6a439b40bae4af119615..e8d8a8c35bb413eb9b3d92733563bc177c505975:/src/kitemviews/kstandarditemmodel.h diff --git a/src/kitemviews/kstandarditemmodel.h b/src/kitemviews/kstandarditemmodel.h index 5cf60085b..6685a2038 100644 --- a/src/kitemviews/kstandarditemmodel.h +++ b/src/kitemviews/kstandarditemmodel.h @@ -20,8 +20,9 @@ #ifndef KSTANDARDITEMMODEL_H #define KSTANDARDITEMMODEL_H -#include -#include +#include "dolphin_export.h" +#include "kitemviews/kitemmodelbase.h" + #include #include @@ -35,33 +36,77 @@ 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. If the index is invalid, the item + * gets deleted. + */ void insertItem(int index, KStandardItem* item); - void replaceItem(int index, KStandardItem* item); - void appendItem(KStandardItem* item); + + /** + * Changes the item on the index \a index to \a item. + * KStandardItemModel takes the ownership of the item. The + * old item gets deleted. If the index is invalid, the item + * gets deleted. + */ + void changeItem(int index, KStandardItem* item); + void removeItem(int index); KStandardItem* item(int index) const; int index(const KStandardItem* item) const; - virtual int count() const; - virtual QHash data(int index) const; - virtual bool setData(int index, const QHash& values); - virtual QMimeData* createMimeData(const QSet& 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 > groups() const; + /** + * Convenience method for insertItem(count(), item). + */ + void appendItem(KStandardItem* item); + + int count() const override; + QHash data(int index) const override; + bool setData(int index, const QHash& 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 > groups() const override; + + virtual void clear(); +protected: + /** + * Is invoked after an item has been inserted and before the signal + * itemsInserted() gets emitted. + */ + virtual void onItemInserted(int index); + + /** + * Is invoked after an item or one of its roles has been changed and + * before the signal itemsChanged() gets emitted. + */ + virtual void onItemChanged(int index, const QSet& changedRoles); + + /** + * Is invoked after an item has been removed and before the signal + * 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, KStandardItem* removedItem); private: QList m_items; QHash m_indexesForItems; + + friend class KStandardItem; + friend class KStandardItemModelTest; // For unit testing }; #endif