]> cloud.milkyroute.net Git - dolphin.git/blob - src/kitemviews/kstandarditem.cpp
Merge branch 'release/20.12'
[dolphin.git] / src / kitemviews / kstandarditem.cpp
1 /*
2 * SPDX-FileCopyrightText: 2012 Peter Penz <peter.penz19@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7 #include "kstandarditem.h"
8 #include "kstandarditemmodel.h"
9
10 KStandardItem::KStandardItem(KStandardItem* parent) :
11 QObject(parent),
12 m_model(nullptr),
13 m_data()
14 {
15 }
16
17 KStandardItem::KStandardItem(const QString& text, KStandardItem* parent) :
18 QObject(parent),
19 m_model(nullptr),
20 m_data()
21 {
22 setText(text);
23 }
24
25 KStandardItem::KStandardItem(const QString& icon, const QString& text, KStandardItem* parent) :
26 QObject(parent),
27 m_model(nullptr),
28 m_data()
29 {
30 setIcon(icon);
31 setText(text);
32 }
33
34 KStandardItem::~KStandardItem()
35 {
36 }
37
38 void KStandardItem::setText(const QString& text)
39 {
40 setDataValue("text", text);
41 }
42
43 QString KStandardItem::text() const
44 {
45 return m_data["text"].toString();
46 }
47
48 void KStandardItem::setIcon(const QString& icon)
49 {
50 setDataValue("iconName", icon);
51 }
52
53 QString KStandardItem::icon() const
54 {
55 return m_data["iconName"].toString();
56 }
57
58 void KStandardItem::setIconOverlays(const QStringList& overlays)
59 {
60 setDataValue("iconOverlays", overlays);
61 }
62
63 QStringList KStandardItem::iconOverlays() const
64 {
65 return m_data["iconOverlays"].toStringList();
66 }
67
68 void KStandardItem::setGroup(const QString& group)
69 {
70 setDataValue("group", group);
71 }
72
73 QString KStandardItem::group() const
74 {
75 return m_data["group"].toString();
76 }
77
78 void KStandardItem::setDataValue(const QByteArray& role, const QVariant& value)
79 {
80 const QVariant previous = m_data.value(role);
81 if (previous == value) {
82 return;
83 }
84
85 m_data.insert(role, value);
86 onDataValueChanged(role, value, previous);
87
88 if (m_model) {
89 const int index = m_model->index(this);
90 QSet<QByteArray> changedRoles;
91 changedRoles.insert(role);
92 m_model->onItemChanged(index, changedRoles);
93 Q_EMIT m_model->itemsChanged(KItemRangeList() << KItemRange(index, 1), changedRoles);
94 }
95 }
96
97 QVariant KStandardItem::dataValue(const QByteArray& role) const
98 {
99 return m_data[role];
100 }
101
102 void KStandardItem::setData(const QHash<QByteArray, QVariant>& values)
103 {
104 const QHash<QByteArray, QVariant> previous = m_data;
105 m_data = values;
106 onDataChanged(values, previous);
107 }
108
109 QHash<QByteArray, QVariant> KStandardItem::data() const
110 {
111 return m_data;
112 }
113
114 void KStandardItem::onDataValueChanged(const QByteArray& role,
115 const QVariant& current,
116 const QVariant& previous)
117 {
118 Q_UNUSED(role)
119 Q_UNUSED(current)
120 Q_UNUSED(previous)
121 }
122
123 void KStandardItem::onDataChanged(const QHash<QByteArray, QVariant>& current,
124 const QHash<QByteArray, QVariant>& previous)
125 {
126 Q_UNUSED(current)
127 Q_UNUSED(previous)
128 }
129