With latest code at slotLayoutChanged is not more necessary

slotLayoutAboutToBeChanged. Reacts as it should when removing items

svn path=/trunk/KDE/kdebase/apps/; revision=724693
This commit is contained in:
Rafael Fernández López 2007-10-13 02:15:01 +00:00
parent d0e7eabcaa
commit e907e75abf
2 changed files with 26 additions and 33 deletions

View file

@ -476,10 +476,6 @@ void KCategorizedView::setModel(QAbstractItemModel *model)
if (d->proxyModel)
{
QObject::disconnect(d->proxyModel,
SIGNAL(layoutAboutToBeChanged()),
this, SLOT(slotLayoutAboutToBeChanged()));
QObject::disconnect(d->proxyModel,
SIGNAL(layoutChanged()),
this, SLOT(slotLayoutChanged()));
@ -487,6 +483,10 @@ void KCategorizedView::setModel(QAbstractItemModel *model)
QObject::disconnect(d->proxyModel,
SIGNAL(dataChanged(QModelIndex,QModelIndex)),
this, SLOT(slotLayoutChanged()));
QObject::disconnect(d->proxyModel,
SIGNAL(rowsRemoved(QModelIndex,int,int)),
this, SLOT(rowsRemoved(QModelIndex,int,int)));
}
QListView::setModel(model);
@ -499,10 +499,6 @@ void KCategorizedView::setModel(QAbstractItemModel *model)
d->modelSortColumn = d->proxyModel->sortColumn();
d->modelSortOrder = d->proxyModel->sortOrder();
QObject::connect(d->proxyModel,
SIGNAL(layoutAboutToBeChanged()),
this, SLOT(slotLayoutAboutToBeChanged()));
QObject::connect(d->proxyModel,
SIGNAL(layoutChanged()),
this, SLOT(slotLayoutChanged()));
@ -510,6 +506,15 @@ void KCategorizedView::setModel(QAbstractItemModel *model)
QObject::connect(d->proxyModel,
SIGNAL(dataChanged(QModelIndex,QModelIndex)),
this, SLOT(slotLayoutChanged()));
QObject::connect(d->proxyModel,
SIGNAL(rowsRemoved(QModelIndex,int,int)),
this, SLOT(rowsRemoved(QModelIndex,int,int)));
if (d->proxyModel->rowCount())
{
rowsInsertedArtifficial(QModelIndex(), 0, d->proxyModel->rowCount() - 1);
}
}
}
@ -551,10 +556,6 @@ void KCategorizedView::setCategoryDrawer(KCategoryDrawer *categoryDrawer)
if (!categoryDrawer && d->proxyModel)
{
QObject::disconnect(d->proxyModel,
SIGNAL(layoutAboutToBeChanged()),
this, SLOT(slotLayoutAboutToBeChanged()));
QObject::disconnect(d->proxyModel,
SIGNAL(layoutChanged()),
this, SLOT(slotLayoutChanged()));
@ -562,13 +563,13 @@ void KCategorizedView::setCategoryDrawer(KCategoryDrawer *categoryDrawer)
QObject::disconnect(d->proxyModel,
SIGNAL(dataChanged(QModelIndex,QModelIndex)),
this, SLOT(slotLayoutChanged()));
QObject::disconnect(d->proxyModel,
SIGNAL(rowsRemoved(QModelIndex,int,int)),
this, SLOT(rowsRemoved(QModelIndex,int,int)));
}
else if (categoryDrawer && d->proxyModel)
{
QObject::connect(d->proxyModel,
SIGNAL(layoutAboutToBeChanged()),
this, SLOT(slotLayoutAboutToBeChanged()));
QObject::connect(d->proxyModel,
SIGNAL(layoutChanged()),
this, SLOT(slotLayoutChanged()));
@ -576,6 +577,10 @@ void KCategorizedView::setCategoryDrawer(KCategoryDrawer *categoryDrawer)
QObject::connect(d->proxyModel,
SIGNAL(dataChanged(QModelIndex,QModelIndex)),
this, SLOT(slotLayoutChanged()));
QObject::connect(d->proxyModel,
SIGNAL(rowsRemoved(QModelIndex,int,int)),
this, SLOT(rowsRemoved(QModelIndex,int,int)));
}
d->categoryDrawer = categoryDrawer;
@ -1225,8 +1230,8 @@ void KCategorizedView::rowsInserted(const QModelIndex &parent,
}
void KCategorizedView::rowsInsertedArtifficial(const QModelIndex &parent,
int start,
int end)
int start,
int end)
{
Q_UNUSED(parent);
@ -1299,14 +1304,14 @@ void KCategorizedView::rowsInsertedArtifficial(const QModelIndex &parent,
}
void KCategorizedView::rowsRemoved(const QModelIndex &parent,
int start,
int end)
int start,
int end)
{
if ((viewMode() == KCategorizedView::IconMode) && d->proxyModel &&
d->categoryDrawer && d->proxyModel->isCategorizedModel())
{
// Force the view to update all elements
rowsInsertedArtifficial(parent, start, end);
rowsInsertedArtifficial(QModelIndex(), 0, d->proxyModel->rowCount() - 1);
}
}
@ -1324,17 +1329,6 @@ void KCategorizedView::updateGeometries()
QAbstractItemView::updateGeometries();
}
void KCategorizedView::slotLayoutAboutToBeChanged()
{
if ((viewMode() == KCategorizedView::IconMode) && d->proxyModel &&
d->categoryDrawer && d->proxyModel->isCategorizedModel())
{
d->modelSortRole = d->proxyModel->sortRole();
d->modelSortColumn = d->proxyModel->sortColumn();
d->modelSortOrder = d->proxyModel->sortOrder();
}
}
void KCategorizedView::slotLayoutChanged()
{
if ((viewMode() == KCategorizedView::IconMode) && d->proxyModel &&

View file

@ -103,7 +103,6 @@ protected Q_SLOTS:
virtual void updateGeometries();
virtual void slotLayoutAboutToBeChanged();
virtual void slotLayoutChanged();