summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2020-07-07 13:54:49 +0200
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2020-07-08 19:19:17 +0200
commit8a78830b0d7020c83f7f739165ab865f04440a74 (patch)
tree3621eb1ce1abf41fda26d67d2b16e1ff11e11aa0
parent26eb4e63e0195d49ebfa765e9ae1522a1971464d (diff)
Item widgets: fix crash in mimeTypes()
*Always* check the result of a dynamic/qobject cast. I'm not positive if the cast is correct (or should it just be a static cast), but in principle these models can be used with a different view. Change-Id: I37108cbb2744b6bf0fb46392d1cc9883f2d0b60e Pick-to: 5.15 Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
-rw-r--r--src/widgets/itemviews/qlistwidget.cpp4
-rw-r--r--src/widgets/itemviews/qtreewidget.cpp5
2 files changed, 7 insertions, 2 deletions
diff --git a/src/widgets/itemviews/qlistwidget.cpp b/src/widgets/itemviews/qlistwidget.cpp
index 176f72a471..ca7439b08c 100644
--- a/src/widgets/itemviews/qlistwidget.cpp
+++ b/src/widgets/itemviews/qlistwidget.cpp
@@ -463,7 +463,9 @@ void QListModel::itemChanged(QListWidgetItem *item, const QList<int> &roles)
QStringList QListModel::mimeTypes() const
{
const QListWidget *view = qobject_cast<const QListWidget*>(QObject::parent());
- return view->mimeTypes();
+ if (view)
+ return view->mimeTypes();
+ return {};
}
QMimeData *QListModel::internalMimeData() const
diff --git a/src/widgets/itemviews/qtreewidget.cpp b/src/widgets/itemviews/qtreewidget.cpp
index a186a243fd..f5434100b9 100644
--- a/src/widgets/itemviews/qtreewidget.cpp
+++ b/src/widgets/itemviews/qtreewidget.cpp
@@ -738,7 +738,10 @@ QList<QTreeWidgetItem*>::iterator QTreeModel::sortedInsertionIterator(
QStringList QTreeModel::mimeTypes() const
{
- return view()->mimeTypes();
+ auto v = view();
+ if (v)
+ return v->mimeTypes();
+ return {};
}
QMimeData *QTreeModel::internalMimeData() const