From 8a78830b0d7020c83f7f739165ab865f04440a74 Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Tue, 7 Jul 2020 13:54:49 +0200 Subject: [PATCH] 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 --- src/widgets/itemviews/qlistwidget.cpp | 4 +++- 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 &roles) QStringList QListModel::mimeTypes() const { const QListWidget *view = qobject_cast(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::iterator QTreeModel::sortedInsertionIterator( QStringList QTreeModel::mimeTypes() const { - return view()->mimeTypes(); + auto v = view(); + if (v) + return v->mimeTypes(); + return {}; } QMimeData *QTreeModel::internalMimeData() const