diff options
| author | Peter Penz <[email protected]> | 2008-01-19 18:20:24 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2008-01-19 18:20:24 +0000 |
| commit | 418eed751192d4dcf1b537a74863920d592bea10 (patch) | |
| tree | 002e654546724faa4564069bf377cf46a78188fe /src/treeviewsidebarpage.cpp | |
| parent | ef2c04a11834bba405281dae61c2c03507738716 (diff) | |
Backport:
treeview: prevent that when expanding a subtree that the selected item gets hidden by the (maybe) appearing horizontal scrollbar
svn path=/branches/KDE/4.0/kdebase/apps/; revision=763550
Diffstat (limited to 'src/treeviewsidebarpage.cpp')
| -rw-r--r-- | src/treeviewsidebarpage.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/treeviewsidebarpage.cpp b/src/treeviewsidebarpage.cpp index 7fa56566a..14c877728 100644 --- a/src/treeviewsidebarpage.cpp +++ b/src/treeviewsidebarpage.cpp @@ -35,6 +35,7 @@ #include <QBoxLayout> #include <QModelIndex> #include <QScrollBar> +#include <QTimer> TreeViewSidebarPage::TreeViewSidebarPage(QWidget* parent) : SidebarPage(parent), @@ -213,6 +214,15 @@ void TreeViewSidebarPage::loadSubTree() } } +void TreeViewSidebarPage::scrollToLeaf() +{ + const QModelIndex dirIndex = m_dolphinModel->indexForUrl(m_leafDir); + const QModelIndex proxyIndex = m_proxyModel->mapFromSource(dirIndex); + if (proxyIndex.isValid()) { + m_treeView->scrollTo(proxyIndex); + } +} + void TreeViewSidebarPage::loadTree(const KUrl& url) { Q_ASSERT(m_dirLister != 0); @@ -247,7 +257,11 @@ void TreeViewSidebarPage::selectLeafDirectory() } if (m_setLeafVisible) { - m_treeView->scrollTo(proxyIndex); + // Invoke m_treeView->scrollTo(proxyIndex) asynchronously by + // scrollToLeaf(). This assures that the scrolling is done after + // the horizontal scrollbar gets visible (otherwise the scrollbar + // might hide the leaf). + QTimer::singleShot(100, this, SLOT(scrollToLeaf())); m_setLeafVisible = false; } |
