When collapsing nodes that made the scrollbar bigger, it didnt became smaller. I've debugged on event() method to find out which event was the one called. It seems

QEvent::MetaCall is always called when we want and is not as impressive called as paintEvent(), so there we go. This will fix another problem that when a second expanded 
cached node should make the horizontal scrollbar bigger it didn't till the tree view lost the focus or was resized. Everything fixed :)

CCMAIL: peter.penz@gmx.at

svn path=/trunk/KDE/kdebase/apps/; revision=749049
This commit is contained in:
Rafael Fernández López 2007-12-16 11:53:28 +00:00
parent 1a7cf5427f
commit 58d37b2331
2 changed files with 7 additions and 14 deletions

View file

@ -81,12 +81,10 @@ bool SidebarTreeView::event(QEvent* event)
header()->hide(); header()->hide();
} }
else if (event->type() == QEvent::UpdateRequest) { else if (event->type() == QEvent::UpdateRequest) {
resizeColumnToContents(DolphinModel::Name); // TODO: Remove this check when 4.3.2 is released and KDE requires it... this
// check avoids a division by zero happening on versions before 4.3.1.
// TODO: Remove this check when 4.3.2 is released and KDE requires it... this // Right now KDE in theory can be shipped with Qt 4.3.0 and above.
// check avoids a division by zero happening on versions before 4.3.1. // ereslibre
// Right now KDE in theory can be shipped with Qt 4.3.0 and above.
// ereslibre
#if (QT_VERSION >= QT_VERSION_CHECK(4, 3, 2) || defined(QT_KDE_QT_COPY)) #if (QT_VERSION >= QT_VERSION_CHECK(4, 3, 2) || defined(QT_KDE_QT_COPY))
// a wheel movement will scroll 1 item // a wheel movement will scroll 1 item
if (model()->rowCount() > 0) { if (model()->rowCount() > 0) {
@ -94,6 +92,9 @@ bool SidebarTreeView::event(QEvent* event)
} }
#endif #endif
} }
else if (event->type() == QEvent::MetaCall) {
resizeColumnToContents(DolphinModel::Name);
}
return QTreeView::event(event); return QTreeView::event(event);
} }

View file

@ -192,8 +192,6 @@ void TreeViewSidebarPage::expandToLeafDir()
QItemSelectionModel* selModel = m_treeView->selectionModel(); QItemSelectionModel* selModel = m_treeView->selectionModel();
selModel->setCurrentIndex(proxyIndex, QItemSelectionModel::Select); selModel->setCurrentIndex(proxyIndex, QItemSelectionModel::Select);
m_treeView->resizeColumnToContents(DolphinModel::Name);
} }
@ -203,8 +201,6 @@ void TreeViewSidebarPage::loadSubTree()
selModel->clearSelection(); selModel->clearSelection();
if (m_leafDir.isParentOf(m_dirLister->url())) { if (m_leafDir.isParentOf(m_dirLister->url())) {
m_treeView->resizeColumnToContents(DolphinModel::Name);
// The leaf directory is not a child of the base URL, hence // The leaf directory is not a child of the base URL, hence
// no sub directory must be loaded or selected. // no sub directory must be loaded or selected.
return; return;
@ -222,8 +218,6 @@ void TreeViewSidebarPage::loadSubTree()
// get invoked if the expanding has been finished. // get invoked if the expanding has been finished.
m_dolphinModel->expandToUrl(m_leafDir); m_dolphinModel->expandToUrl(m_leafDir);
} }
m_treeView->resizeColumnToContents(DolphinModel::Name);
} }
void TreeViewSidebarPage::loadTree(const KUrl& url) void TreeViewSidebarPage::loadTree(const KUrl& url)
@ -246,8 +240,6 @@ void TreeViewSidebarPage::loadTree(const KUrl& url)
} else { } else {
loadSubTree(); loadSubTree();
} }
m_treeView->resizeColumnToContents(DolphinModel::Name);
} }
#include "treeviewsidebarpage.moc" #include "treeviewsidebarpage.moc"