]>
cloud.milkyroute.net Git - dolphin.git/blob - src/kitemviews/kstandarditem.cpp
1 /***************************************************************************
2 * Copyright (C) 2012 by Peter Penz <peter.penz19@gmail.com> *
4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or *
7 * (at your option) any later version. *
9 * This program is distributed in the hope that it will be useful, *
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12 * GNU General Public License for more details. *
14 * You should have received a copy of the GNU General Public License *
15 * along with this program; if not, write to the *
16 * Free Software Foundation, Inc., *
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
18 ***************************************************************************/
20 #include "kstandarditem.h"
23 #include "kstandarditemmodel.h"
25 KStandardItem::KStandardItem(KStandardItem
* parent
) :
33 KStandardItem::KStandardItem(const QString
& text
, KStandardItem
* parent
) :
42 KStandardItem::KStandardItem(const QString
& icon
, const QString
& text
, KStandardItem
* parent
) :
52 KStandardItem::KStandardItem(const KStandardItem
& item
) :
53 m_parent(item
.m_parent
),
54 m_children(item
.m_children
),
55 m_model(item
.m_model
),
60 KStandardItem::~KStandardItem()
64 void KStandardItem::setText(const QString
& text
)
66 setDataValue("text", text
);
69 QString
KStandardItem::text() const
71 return m_data
["text"].toString();
74 void KStandardItem::setIcon(const QString
& icon
)
76 setDataValue("iconName", icon
);
79 QString
KStandardItem::icon() const
81 return m_data
["iconName"].toString();
84 void KStandardItem::setIconOverlays(const QStringList
& overlays
)
86 setDataValue("iconOverlays", overlays
);
89 QStringList
KStandardItem::iconOverlays() const
91 return m_data
["iconOverlays"].toStringList();
94 void KStandardItem::setGroup(const QString
& group
)
96 setDataValue("group", group
);
99 QString
KStandardItem::group() const
101 return m_data
["group"].toString();
104 void KStandardItem::setDataValue(const QByteArray
& role
, const QVariant
& value
)
106 const QVariant previous
= m_data
.value(role
);
107 if (previous
== value
) {
111 m_data
.insert(role
, value
);
112 onDataValueChanged(role
, value
, previous
);
115 const int index
= m_model
->index(this);
116 QSet
<QByteArray
> changedRoles
;
117 changedRoles
.insert(role
);
118 m_model
->onItemChanged(index
, changedRoles
);
119 emit m_model
->itemsChanged(KItemRangeList() << KItemRange(index
, 1), changedRoles
);
123 QVariant
KStandardItem::dataValue(const QByteArray
& role
) const
128 void KStandardItem::setParent(KStandardItem
* parent
)
130 // TODO: not implemented yet
134 KStandardItem
* KStandardItem::parent() const
139 void KStandardItem::setData(const QHash
<QByteArray
, QVariant
>& values
)
141 const QHash
<QByteArray
, QVariant
> previous
= m_data
;
143 onDataChanged(values
, previous
);
146 QHash
<QByteArray
, QVariant
> KStandardItem::data() const
151 QList
<KStandardItem
*> KStandardItem::children() const
156 void KStandardItem::onDataValueChanged(const QByteArray
& role
,
157 const QVariant
& current
,
158 const QVariant
& previous
)
165 void KStandardItem::onDataChanged(const QHash
<QByteArray
, QVariant
>& current
,
166 const QHash
<QByteArray
, QVariant
>& previous
)