1 /* 2 * SPDX-FileCopyrightText: 2012 Peter Penz <peter.penz19@gmail.com> 3 * 4 * SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #ifndef KSTANDARDITEM_H 8 #define KSTANDARDITEM_H 9 10 #include "dolphin_export.h" 11 12 #include <QByteArray> 13 #include <QHash> 14 #include <QObject> 15 #include <QSet> 16 #include <QVariant> 17 18 class KStandardItemModel; 19 20 /** 21 * @brief Represents and item of KStandardItemModel. 22 * 23 * Provides setter- and getter-methods for the most commonly 24 * used roles. It is possible to assign values for custom 25 * roles by using setDataValue(). 26 */ 27 class DOLPHIN_EXPORT KStandardItem : public QObject 28 { 29 Q_OBJECT 30 public: 31 explicit KStandardItem(KStandardItem* parent = nullptr); 32 explicit KStandardItem(const QString& text, KStandardItem* parent = nullptr); 33 KStandardItem(const QString& icon, const QString& text, KStandardItem* parent = nullptr); 34 ~KStandardItem() override; 35 36 /** 37 * Sets the text for the "text"-role. 38 */ 39 void setText(const QString& text); 40 QString text() const; 41 42 /** 43 * Sets the icon for the "iconName"-role. 44 */ 45 void setIcon(const QString& icon); 46 QString icon() const; 47 48 void setIconOverlays(const QStringList& overlays); 49 QStringList iconOverlays() const; 50 51 /** 52 * Sets the group for the "group"-role. 53 */ 54 void setGroup(const QString& group); 55 QString group() const; 56 57 void setDataValue(const QByteArray& role, const QVariant& value); 58 QVariant dataValue(const QByteArray& role) const; 59 60 void setData(const QHash<QByteArray, QVariant>& values); 61 QHash<QByteArray, QVariant> data() const; 62 63 protected: 64 virtual void onDataValueChanged(const QByteArray& role, 65 const QVariant& current, 66 const QVariant& previous); 67 68 virtual void onDataChanged(const QHash<QByteArray, QVariant>& current, 69 const QHash<QByteArray, QVariant>& previous); 70 71 private: 72 KStandardItemModel* m_model; 73 74 QHash<QByteArray, QVariant> m_data; 75 76 friend class KStandardItemModel; 77 }; 78 79 #endif 80 81 82