]>
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"
21 #include "kstandarditemmodel.h"
23 KStandardItem::KStandardItem(KStandardItem
* parent
) :
31 KStandardItem::KStandardItem(const QString
& text
, KStandardItem
* parent
) :
40 KStandardItem::KStandardItem(const QString
& icon
, const QString
& text
, KStandardItem
* parent
) :
50 KStandardItem::KStandardItem(const KStandardItem
& item
) :
51 m_parent(item
.m_parent
),
52 m_children(item
.m_children
),
53 m_model(item
.m_model
),
58 KStandardItem::~KStandardItem()
62 void KStandardItem::setText(const QString
& text
)
64 setDataValue("text", text
);
67 QString
KStandardItem::text() const
69 return m_data
["text"].toString();
72 void KStandardItem::setIcon(const QString
& icon
)
74 setDataValue("iconName", icon
);
77 QString
KStandardItem::icon() const
79 return m_data
["iconName"].toString();
82 void KStandardItem::setIconOverlays(const QStringList
& overlays
)
84 setDataValue("iconOverlays", overlays
);
87 QStringList
KStandardItem::iconOverlays() const
89 return m_data
["iconOverlays"].toStringList();
92 void KStandardItem::setGroup(const QString
& group
)
94 setDataValue("group", group
);
97 QString
KStandardItem::group() const
99 return m_data
["group"].toString();
102 void KStandardItem::setDataValue(const QByteArray
& role
, const QVariant
& value
)
104 const QVariant previous
= m_data
.value(role
);
105 if (previous
== value
) {
109 m_data
.insert(role
, value
);
110 onDataValueChanged(role
, value
, previous
);
113 const int index
= m_model
->index(this);
114 QSet
<QByteArray
> changedRoles
;
115 changedRoles
.insert(role
);
116 m_model
->onItemChanged(index
, changedRoles
);
117 emit m_model
->itemsChanged(KItemRangeList() << KItemRange(index
, 1), changedRoles
);
121 QVariant
KStandardItem::dataValue(const QByteArray
& role
) const
126 void KStandardItem::setParent(KStandardItem
* parent
)
128 // TODO: not implemented yet
132 KStandardItem
* KStandardItem::parent() const
137 void KStandardItem::setData(const QHash
<QByteArray
, QVariant
>& values
)
139 const QHash
<QByteArray
, QVariant
> previous
= m_data
;
141 onDataChanged(values
, previous
);
144 QHash
<QByteArray
, QVariant
> KStandardItem::data() const
149 QList
<KStandardItem
*> KStandardItem::children() const
154 void KStandardItem::onDataValueChanged(const QByteArray
& role
,
155 const QVariant
& current
,
156 const QVariant
& previous
)
163 void KStandardItem::onDataChanged(const QHash
<QByteArray
, QVariant
>& current
,
164 const QHash
<QByteArray
, QVariant
>& previous
)