QAbstractItemView::sizeHintForRow()/Column: Check for null delegate.
The delegate may be null in QHeaderView. Task-number: QTBUG-48543 Change-Id: I4d3ba104b0b57431e8765271dc2dc880be096672 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
This commit is contained in:
parent
e56938b4bb
commit
2042a091a3
@ -3020,8 +3020,8 @@ int QAbstractItemView::sizeHintForRow(int row) const
|
||||
const QModelIndex index = d->model->index(row, c, d->root);
|
||||
if (QWidget *editor = d->editorForIndex(index).widget.data())
|
||||
height = qMax(height, editor->height());
|
||||
int hint = d->delegateForIndex(index)->sizeHint(option, index).height();
|
||||
height = qMax(height, hint);
|
||||
if (const QAbstractItemDelegate *delegate = d->delegateForIndex(index))
|
||||
height = qMax(height, delegate->sizeHint(option, index).height());
|
||||
}
|
||||
return height;
|
||||
}
|
||||
@ -3050,8 +3050,8 @@ int QAbstractItemView::sizeHintForColumn(int column) const
|
||||
const QModelIndex index = d->model->index(r, column, d->root);
|
||||
if (QWidget *editor = d->editorForIndex(index).widget.data())
|
||||
width = qMax(width, editor->sizeHint().width());
|
||||
int hint = d->delegateForIndex(index)->sizeHint(option, index).width();
|
||||
width = qMax(width, hint);
|
||||
if (const QAbstractItemDelegate *delegate = d->delegateForIndex(index))
|
||||
width = qMax(width, delegate->sizeHint(option, index).width());
|
||||
}
|
||||
return width;
|
||||
}
|
||||
|
@ -239,6 +239,8 @@ private slots:
|
||||
void testStreamWithHide();
|
||||
void testStylePosition();
|
||||
|
||||
void sizeHintCrash();
|
||||
|
||||
protected:
|
||||
void setupTestData(bool use_reset_model = false);
|
||||
void additionalInit();
|
||||
@ -2879,5 +2881,15 @@ void tst_QHeaderView::testStylePosition()
|
||||
QCOMPARE(proxy.lastPosition, QStyleOptionHeader::OnlyOneSection);
|
||||
}
|
||||
|
||||
void tst_QHeaderView::sizeHintCrash()
|
||||
{
|
||||
QTreeView treeView;
|
||||
QStandardItemModel *model = new QStandardItemModel(&treeView);
|
||||
model->appendRow(new QStandardItem("QTBUG-48543"));
|
||||
treeView.setModel(model);
|
||||
treeView.header()->sizeHintForColumn(0);
|
||||
treeView.header()->sizeHintForRow(0);
|
||||
}
|
||||
|
||||
QTEST_MAIN(tst_QHeaderView)
|
||||
#include "tst_qheaderview.moc"
|
||||
|
Loading…
Reference in New Issue
Block a user