From 2f1051d1b41d0cf087099e71b9449a44b103e3ac Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Fri, 29 Oct 2010 15:12:59 +0000 Subject: Don't do an automatic horizontal scrolling, if the user has adjusted the horizontal scrollbar. The autoscrolling gets reactivated again if the vertical scrollbar has been moved by the user. svn path=/trunk/KDE/kdebase/apps/; revision=1191098 --- src/panels/folders/folderspanel.cpp | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'src/panels/folders/folderspanel.cpp') diff --git a/src/panels/folders/folderspanel.cpp b/src/panels/folders/folderspanel.cpp index 1b75f36bc..b825cb1fa 100644 --- a/src/panels/folders/folderspanel.cpp +++ b/src/panels/folders/folderspanel.cpp @@ -167,6 +167,7 @@ void FoldersPanel::showEvent(QShowEvent* event) m_treeView->setModel(m_proxyModel); m_proxyModel->setSorting(DolphinView::SortByName); m_proxyModel->setSortOrder(Qt::AscendingOrder); + m_treeView->setAutoHorizontalScroll(FoldersPanelSettings::autoScrolling()); new FolderExpander(m_treeView, m_proxyModel); @@ -177,12 +178,14 @@ void FoldersPanel::showEvent(QShowEvent* event) connect(m_treeView, SIGNAL(pressed(const QModelIndex&)), this, SLOT(updateMouseButtons())); + connect(m_treeView->horizontalScrollBar(), SIGNAL(sliderMoved(int)), + this, SLOT(slotHorizontalScrollBarMoved(int))); + connect(m_treeView->verticalScrollBar(), SIGNAL(sliderMoved(int)), + this, SLOT(slotVerticalScrollBarMoved(int))); + QVBoxLayout* layout = new QVBoxLayout(this); layout->setMargin(0); layout->addWidget(m_treeView); - - setAutoScrolling(FoldersPanelSettings::autoScrolling()); - setShowHiddenFiles(FoldersPanelSettings::showHiddenFiles()); } loadTree(url()); @@ -270,6 +273,22 @@ void FoldersPanel::slotDirListerCompleted() } } +void FoldersPanel::slotHorizontalScrollBarMoved(int value) +{ + Q_UNUSED(value); + // Disable the auto-scrolling until the vertical scrollbar has + // been moved by the user. + m_treeView->setAutoHorizontalScroll(false); +} + +void FoldersPanel::slotVerticalScrollBarMoved(int value) +{ + Q_UNUSED(value); + // Enable the auto-scrolling again (it might have been disabled by + // moving the horizontal scrollbar). + m_treeView->setAutoHorizontalScroll(FoldersPanelSettings::autoScrolling()); +} + void FoldersPanel::loadTree(const KUrl& url) { Q_ASSERT(m_dirLister != 0); -- cgit v1.3