Revert "QTreeView: Make sure QHeaderView is notified on layoutChanged()"
It caused some sorting issues. This reverts commit 93dabeba9dc5f6cbab60e65b3cc8df5fe48745a9. Change-Id: Ie8c7f2d47885be6626ddb6284474a78dcf09cf33 Task-number: QTBUG-65478 Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com> Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
This commit is contained in:
parent
7e9460306b
commit
d5a11a0ec2
@ -237,6 +237,9 @@ void QTreeView::setModel(QAbstractItemModel *model)
|
|||||||
// QAbstractItemView connects to a private slot
|
// QAbstractItemView connects to a private slot
|
||||||
disconnect(d->model, SIGNAL(rowsRemoved(QModelIndex,int,int)),
|
disconnect(d->model, SIGNAL(rowsRemoved(QModelIndex,int,int)),
|
||||||
this, SLOT(_q_rowsRemoved(QModelIndex,int,int)));
|
this, SLOT(_q_rowsRemoved(QModelIndex,int,int)));
|
||||||
|
// do header layout after the tree
|
||||||
|
disconnect(d->model, SIGNAL(layoutChanged()),
|
||||||
|
d->header, SLOT(_q_layoutChanged()));
|
||||||
// QTreeView has a public slot for this
|
// QTreeView has a public slot for this
|
||||||
connect(d->model, SIGNAL(rowsRemoved(QModelIndex,int,int)),
|
connect(d->model, SIGNAL(rowsRemoved(QModelIndex,int,int)),
|
||||||
this, SLOT(rowsRemoved(QModelIndex,int,int)));
|
this, SLOT(rowsRemoved(QModelIndex,int,int)));
|
||||||
|
@ -313,17 +313,6 @@ public:
|
|||||||
endRemoveColumns();
|
endRemoveColumns();
|
||||||
}
|
}
|
||||||
|
|
||||||
void removeAddLastColumnLayoutChanged() // for taskQTBUG_41124
|
|
||||||
{
|
|
||||||
// make sure QHeaderView::_q_layoutChanged() is called
|
|
||||||
emit layoutAboutToBeChanged();
|
|
||||||
--cols;
|
|
||||||
emit layoutChanged();
|
|
||||||
emit layoutAboutToBeChanged();
|
|
||||||
++cols;
|
|
||||||
emit layoutChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeAllColumns()
|
void removeAllColumns()
|
||||||
{
|
{
|
||||||
beginRemoveColumns(QModelIndex(), 0, cols - 1);
|
beginRemoveColumns(QModelIndex(), 0, cols - 1);
|
||||||
@ -1317,19 +1306,6 @@ void tst_QTreeView::columnHidden()
|
|||||||
for (int c = 0; c < model.columnCount(); ++c)
|
for (int c = 0; c < model.columnCount(); ++c)
|
||||||
QCOMPARE(view.isColumnHidden(c), true);
|
QCOMPARE(view.isColumnHidden(c), true);
|
||||||
view.update();
|
view.update();
|
||||||
|
|
||||||
// QTBUG_41124:
|
|
||||||
// QHeaderViewPrivate::_q_layoutChanged was not called because it was
|
|
||||||
// disconnected in QTreeView::setModel(). _q_layoutChanged restores
|
|
||||||
// the hidden sections which is tested here
|
|
||||||
view.setColumnHidden(model.cols - 1, true);
|
|
||||||
model.removeAddLastColumnLayoutChanged();
|
|
||||||
// we removed the last column and added a new one
|
|
||||||
// (with layoutToBeChanged/layoutChanged() for both) so column
|
|
||||||
// 1 is a new column and therefore must not be hidden when
|
|
||||||
// _q_layoutChanged() is called and is doing the right stuff
|
|
||||||
QCOMPARE(view.isColumnHidden(model.cols - 1), false);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QTreeView::rowHidden()
|
void tst_QTreeView::rowHidden()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user