X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/007907be20cc63e4c12320b0406cc255286e7792..6cec386192e58089b4572996a265c9696cdcb3c0:/src/kitemviews/kstandarditem.cpp diff --git a/src/kitemviews/kstandarditem.cpp b/src/kitemviews/kstandarditem.cpp index 1754c531b..fcaa50b9d 100644 --- a/src/kitemviews/kstandarditem.cpp +++ b/src/kitemviews/kstandarditem.cpp @@ -1,47 +1,30 @@ -/*************************************************************************** - * Copyright (C) 2012 by Peter Penz * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ +/* + * SPDX-FileCopyrightText: 2012 Peter Penz + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #include "kstandarditem.h" - -#include +#include "kstandarditemmodel.h" KStandardItem::KStandardItem(KStandardItem* parent) : - m_parent(parent), - m_children(), - m_model(0), + QObject(parent), + m_model(nullptr), m_data() { } KStandardItem::KStandardItem(const QString& text, KStandardItem* parent) : - m_parent(parent), - m_children(), - m_model(0), + QObject(parent), + m_model(nullptr), m_data() { setText(text); } -KStandardItem::KStandardItem(const QIcon& icon, const QString& text, KStandardItem* parent) : - m_parent(parent), - m_children(), - m_model(0), +KStandardItem::KStandardItem(const QString& icon, const QString& text, KStandardItem* parent) : + QObject(parent), + m_model(nullptr), m_data() { setIcon(icon); @@ -54,7 +37,7 @@ KStandardItem::~KStandardItem() void KStandardItem::setText(const QString& text) { - m_data.insert("text", text); + setDataValue("text", text); } QString KStandardItem::text() const @@ -62,19 +45,29 @@ QString KStandardItem::text() const return m_data["text"].toString(); } -void KStandardItem::setIcon(const QIcon& icon) +void KStandardItem::setIcon(const QString& icon) +{ + setDataValue("iconName", icon); +} + +QString KStandardItem::icon() const +{ + return m_data["iconName"].toString(); +} + +void KStandardItem::setIconOverlays(const QStringList& overlays) { - m_data.insert("iconName", icon.name()); + setDataValue("iconOverlays", overlays); } -QIcon KStandardItem::icon() const +QStringList KStandardItem::iconOverlays() const { - return QIcon(m_data["iconName"].toString()); + return m_data["iconOverlays"].toStringList(); } void KStandardItem::setGroup(const QString& group) { - m_data.insert("group", group); + setDataValue("group", group); } QString KStandardItem::group() const @@ -84,7 +77,21 @@ QString KStandardItem::group() const void KStandardItem::setDataValue(const QByteArray& role, const QVariant& value) { + const QVariant previous = m_data.value(role); + if (previous == value) { + return; + } + m_data.insert(role, value); + onDataValueChanged(role, value, previous); + + if (m_model) { + const int index = m_model->index(this); + QSet changedRoles; + changedRoles.insert(role); + m_model->onItemChanged(index, changedRoles); + Q_EMIT m_model->itemsChanged(KItemRangeList() << KItemRange(index, 1), changedRoles); + } } QVariant KStandardItem::dataValue(const QByteArray& role) const @@ -92,23 +99,31 @@ QVariant KStandardItem::dataValue(const QByteArray& role) const return m_data[role]; } -void KStandardItem::setParent(KStandardItem* parent) +void KStandardItem::setData(const QHash& values) { - // TODO: not implemented yet - m_parent = parent; + const QHash previous = m_data; + m_data = values; + onDataChanged(values, previous); } -KStandardItem* KStandardItem::parent() const +QHash KStandardItem::data() const { - return m_parent; + return m_data; } -QHash KStandardItem::data() const +void KStandardItem::onDataValueChanged(const QByteArray& role, + const QVariant& current, + const QVariant& previous) { - return m_data; + Q_UNUSED(role) + Q_UNUSED(current) + Q_UNUSED(previous) } -QList KStandardItem::children() const +void KStandardItem::onDataChanged(const QHash& current, + const QHash& previous) { - return m_children; + Q_UNUSED(current) + Q_UNUSED(previous) } +