diff options
| author | David Hallas <[email protected]> | 2019-04-22 19:40:16 +0200 |
|---|---|---|
| committer | David Hallas <[email protected]> | 2019-05-13 16:58:21 +0200 |
| commit | 78540e49213ed1a03687d55063816659c9142eba (patch) | |
| tree | a6866dc21d8def8ba9d809223f671afef7d56032 /src/kitemviews/kstandarditem.cpp | |
| parent | 2fac50f5f59bbbc58a59e7ab5f1ec4e371a604c6 (diff) | |
Summary: Fixes crash when hiding devices
Summary:
Fixes crash when hiding devices. The crash is caused by
KStandardItem::setDataValue which calls the
KStandardItemModel::onItemChanged function, and that function will
delete the KStandardItem if the data value being set is the hidden
attribute being set to true. To fix this KStandardItem now derives
QObject so that we can use deleteLater.
Test Plan:
Right click a device in the places panel and select hide
Right click the places panel and select show hidden
Right click the hidden device and select show
Right click the same device and select hide
BUG: 403064
Reviewers: #dolphin, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D21050
Diffstat (limited to 'src/kitemviews/kstandarditem.cpp')
| -rw-r--r-- | src/kitemviews/kstandarditem.cpp | 33 |
1 files changed, 3 insertions, 30 deletions
diff --git a/src/kitemviews/kstandarditem.cpp b/src/kitemviews/kstandarditem.cpp index 4fb3f8f98..b3bbcaa41 100644 --- a/src/kitemviews/kstandarditem.cpp +++ b/src/kitemviews/kstandarditem.cpp @@ -21,16 +21,14 @@ #include "kstandarditemmodel.h" KStandardItem::KStandardItem(KStandardItem* parent) : - m_parent(parent), - m_children(), + QObject(parent), m_model(nullptr), m_data() { } KStandardItem::KStandardItem(const QString& text, KStandardItem* parent) : - m_parent(parent), - m_children(), + QObject(parent), m_model(nullptr), m_data() { @@ -38,8 +36,7 @@ KStandardItem::KStandardItem(const QString& text, KStandardItem* parent) : } KStandardItem::KStandardItem(const QString& icon, const QString& text, KStandardItem* parent) : - m_parent(parent), - m_children(), + QObject(parent), m_model(nullptr), m_data() { @@ -47,14 +44,6 @@ KStandardItem::KStandardItem(const QString& icon, const QString& text, KStandard setText(text); } -KStandardItem::KStandardItem(const KStandardItem& item) : - m_parent(item.m_parent), - m_children(item.m_children), - m_model(item.m_model), - m_data(item.m_data) -{ -} - KStandardItem::~KStandardItem() { } @@ -123,17 +112,6 @@ QVariant KStandardItem::dataValue(const QByteArray& role) const return m_data[role]; } -void KStandardItem::setParent(KStandardItem* parent) -{ - // TODO: not implemented yet - m_parent = parent; -} - -KStandardItem* KStandardItem::parent() const -{ - return m_parent; -} - void KStandardItem::setData(const QHash<QByteArray, QVariant>& values) { const QHash<QByteArray, QVariant> previous = m_data; @@ -146,11 +124,6 @@ QHash<QByteArray, QVariant> KStandardItem::data() const return m_data; } -QList<KStandardItem*> KStandardItem::children() const -{ - return m_children; -} - void KStandardItem::onDataValueChanged(const QByteArray& role, const QVariant& current, const QVariant& previous) |
