TableView.forceLayout() seems prone to throwing assertions related to internal 
data structures being out of sync with the number of rows and columns from the 
QAbstractTableModel used. Some of these assertions were fixed in 5.13.0, more 
were fixed in 5.13.1. But this one still remains:

items/qquicktableview.cpp:458:void QQuickTableViewPrivate::dumpTable() const(): 
"table cells: (4,0) -> (15,15), item count: 160, table rect: 270,0 x 1040,704"
items/qquicktableview.cpp:477:auto 
QQuickTableViewPrivate::modelIndexAtCell(const QPoint &)::(anonymous 
class)::operator()() const(): output: modelIndex: 915 cell: QPoint(15,0) count: 
915
items/qquicktableview.cpp:477:None(): ASSERT: "(modelIndex < model->count()) || 
[&](){ dumpTable(); qWarning() << "output:" << "modelIndex:" << modelIndex << 
"cell:" << cell << "count:" << model->count(); return false;}()" in file 
items/qquicktableview.cpp, line 477

In many cases this assertion happens when TableView.rows is out of sync with 
model.rowCount(), or TableView.columns is out of sync with model.columnCount(). 
The fact that these are out of sync at all seems to me to be a bug?

At any rate, this isn’t a reliable workaround. This happens most often when 
emitting columnsRemoved() from the model while the column is visible. It never 
occurs when the column is hidden, e.g. scrolled beyond the width of the 
TableView’s viewport.

Is there something I’ve missed about the TableView implementation? Or does it 
just early days yet for this QtQuick Item?

And for what it’s worth, QQuickTableView::dumpTable() was also throwing an 
assertion regarding the GL context not matching when dumping the table to a 
png. I commented out that code block to be able to see the original assertion 
above.

Cheers,
-P
_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to