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 #ifndef KSTANDARDITEM_H
21 #define KSTANDARDITEM_H
23 #include "dolphin_export.h"
30 class KStandardItemModel
;
33 * @brief Represents and item of KStandardItemModel.
35 * Provides setter- and getter-methods for the most commonly
36 * used roles. It is possible to assign values for custom
37 * roles by using setDataValue().
39 class DOLPHIN_EXPORT KStandardItem
43 explicit KStandardItem(KStandardItem
* parent
= 0);
44 explicit KStandardItem(const QString
& text
, KStandardItem
* parent
= 0);
45 KStandardItem(const QString
& icon
, const QString
& text
, KStandardItem
* parent
= 0);
46 KStandardItem(const KStandardItem
& item
);
47 virtual ~KStandardItem();
50 * Sets the text for the "text"-role.
52 void setText(const QString
& text
);
56 * Sets the icon for the "iconName"-role.
58 void setIcon(const QString
& icon
);
61 void setIconOverlays(const QStringList
& overlays
);
62 QStringList
iconOverlays() const;
65 * Sets the group for the "group"-role.
67 void setGroup(const QString
& group
);
68 QString
group() const;
70 void setDataValue(const QByteArray
& role
, const QVariant
& value
);
71 QVariant
dataValue(const QByteArray
& role
) const;
73 void setParent(KStandardItem
* parent
);
74 KStandardItem
* parent() const;
76 void setData(const QHash
<QByteArray
, QVariant
>& values
);
77 QHash
<QByteArray
, QVariant
> data() const;
79 QList
<KStandardItem
*> children() const;
82 virtual void onDataValueChanged(const QByteArray
& role
,
83 const QVariant
& current
,
84 const QVariant
& previous
);
86 virtual void onDataChanged(const QHash
<QByteArray
, QVariant
>& current
,
87 const QHash
<QByteArray
, QVariant
>& previous
);
90 KStandardItem
* m_parent
;
91 QList
<KStandardItem
*> m_children
;
92 KStandardItemModel
* m_model
;
94 QHash
<QByteArray
, QVariant
> m_data
;
96 friend class KStandardItemModel
;