]> cloud.milkyroute.net Git - dolphin.git/blob - src/kitemviews/kstandarditem.h
Merge branch 'release/20.12'
[dolphin.git] / src / kitemviews / kstandarditem.h
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 virtual ~KStandardItem();
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