diff options
author | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2020-07-07 13:54:49 +0200 |
---|---|---|
committer | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2020-07-08 19:19:17 +0200 |
commit | 8a78830b0d7020c83f7f739165ab865f04440a74 (patch) | |
tree | 3621eb1ce1abf41fda26d67d2b16e1ff11e11aa0 | |
parent | 26eb4e63e0195d49ebfa765e9ae1522a1971464d (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.cpp | 4 | ||||
-rw-r--r-- | src/widgets/itemviews/qtreewidget.cpp | 5 |
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 |