diff --git a/src/plugins/analyzerbase/detailederrorview.cpp b/src/plugins/analyzerbase/detailederrorview.cpp index 6b2eba80e09..f6a6f3fbc27 100644 --- a/src/plugins/analyzerbase/detailederrorview.cpp +++ b/src/plugins/analyzerbase/detailederrorview.cpp @@ -51,6 +51,9 @@ DetailedErrorDelegate::DetailedErrorDelegate(QListView *parent) QSize DetailedErrorDelegate::sizeHint(const QStyleOptionViewItem &opt, const QModelIndex &index) const { + if (!index.isValid()) + return QStyledItemDelegate::sizeHint(opt, index); + const QListView *view = qobject_cast(parent()); const int viewportWidth = view->viewport()->width(); const bool isSelected = view->selectionModel()->currentIndex() == index; diff --git a/src/plugins/valgrind/memcheckerrorview.cpp b/src/plugins/valgrind/memcheckerrorview.cpp index 9862133ea36..33dc3eab242 100644 --- a/src/plugins/valgrind/memcheckerrorview.cpp +++ b/src/plugins/valgrind/memcheckerrorview.cpp @@ -154,9 +154,13 @@ static QString errorLocation(const QModelIndex &index, const Error &error, link, linkAttr)); } -QWidget *MemcheckErrorDelegate::createDetailsWidget(const QFont & font, const QModelIndex &errorIndex, QWidget *parent) const +QWidget *MemcheckErrorDelegate::createDetailsWidget(const QFont & font, + const QModelIndex &errorIndex, + QWidget *parent) const { QWidget *widget = new QWidget(parent); + QTC_ASSERT(errorIndex.isValid(), return widget); + QVBoxLayout *layout = new QVBoxLayout; // code + white-space:pre so the padding (see below) works properly // don't include frameName here as it should wrap if required and pre-line is not supported