Fix removing columns when QSortFilterProxyModel has not been sorted yet
Fixes: QTBUG-91788 Change-Id: Iddcafd3171f0f3703b94893a32b4ccaaeea9e713 Reviewed-by: David Faure <david.faure@kdab.com> (cherry picked from commit e287582cba74ddcfc67f83647e72c0b23bd99c36) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
01d50715e0
commit
6bd89d122e
@ -1713,7 +1713,10 @@ void QSortFilterProxyModelPrivate::_q_sourceColumnsRemoved(
|
||||
source_sort_column = -1;
|
||||
}
|
||||
|
||||
proxy_sort_column = q->mapFromSource(model->index(0,source_sort_column, source_parent)).column();
|
||||
if (source_sort_column >= 0)
|
||||
proxy_sort_column = q->mapFromSource(model->index(0,source_sort_column, source_parent)).column();
|
||||
else
|
||||
proxy_sort_column = -1;
|
||||
}
|
||||
|
||||
void QSortFilterProxyModelPrivate::_q_sourceColumnsAboutToBeMoved(
|
||||
|
@ -116,6 +116,7 @@ private Q_SLOTS:
|
||||
void shouldPropagateDropBetweenItemsAtModelBoundary();
|
||||
void shouldPropagateDropAfterLastRow_data();
|
||||
void shouldPropagateDropAfterLastRow();
|
||||
void qtbug91788();
|
||||
|
||||
private:
|
||||
QStandardItemModel mod;
|
||||
@ -829,6 +830,19 @@ void tst_QConcatenateTablesProxyModel::shouldPropagateDropAfterLastRow()
|
||||
|
||||
}
|
||||
|
||||
void tst_QConcatenateTablesProxyModel::qtbug91788()
|
||||
{
|
||||
QConcatenateTablesProxyModel proxyConcat;
|
||||
QStringList strList{QString("one"),QString("two")};
|
||||
QStringListModel strListModelA(strList);
|
||||
QSortFilterProxyModel proxyFilter;
|
||||
proxyFilter.setSourceModel(&proxyConcat);
|
||||
|
||||
proxyConcat.addSourceModel(&strListModelA);
|
||||
proxyConcat.removeSourceModel(&strListModelA); // This should not assert
|
||||
QCOMPARE(proxyConcat.columnCount(), 0);
|
||||
}
|
||||
|
||||
QTEST_GUILESS_MAIN(tst_QConcatenateTablesProxyModel)
|
||||
|
||||
#include "tst_qconcatenatetablesproxymodel.moc"
|
||||
|
Loading…
x
Reference in New Issue
Block a user