X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/fabf5681f5ae71e7ad7cc1c4876917a31b9b40a6..dbe2152912cc58f1d2bfba187175ec0e4b3e4761:/src/kitemviews/kitemlistcontainer.cpp diff --git a/src/kitemviews/kitemlistcontainer.cpp b/src/kitemviews/kitemlistcontainer.cpp index 28e526a6f..b01751e46 100644 --- a/src/kitemviews/kitemlistcontainer.cpp +++ b/src/kitemviews/kitemlistcontainer.cpp @@ -210,18 +210,32 @@ void KItemListContainer::slotViewChanged(KItemListView* current, KItemListView* QGraphicsScene* scene = static_cast(viewport())->scene(); if (previous) { scene->removeItem(previous); - disconnect(previous, SIGNAL(offsetChanged(int,int)), this, SLOT(updateScrollBars())); - disconnect(previous, SIGNAL(maximumOffsetChanged(int,int)), this, SLOT(updateScrollBars())); + disconnect(previous, SIGNAL(offsetChanged(qreal,qreal)), this, SLOT(updateScrollBars())); + disconnect(previous, SIGNAL(maximumOffsetChanged(qreal,qreal)), this, SLOT(updateScrollBars())); + disconnect(previous, SIGNAL(scrollTo(qreal)), this, SLOT(scrollTo(qreal))); m_viewOffsetAnimation->setTargetObject(0); } if (current) { scene->addItem(current); - connect(current, SIGNAL(offsetChanged(int,int)), this, SLOT(updateScrollBars())); - connect(current, SIGNAL(maximumOffsetChanged(int,int)), this, SLOT(updateScrollBars())); + connect(current, SIGNAL(offsetChanged(qreal,qreal)), this, SLOT(updateScrollBars())); + connect(current, SIGNAL(maximumOffsetChanged(qreal,qreal)), this, SLOT(updateScrollBars())); + connect(current, SIGNAL(scrollTo(qreal)), this, SLOT(scrollTo(qreal))); m_viewOffsetAnimation->setTargetObject(current); } } +void KItemListContainer::scrollTo(qreal offset) +{ + const KItemListView* view = m_controller->view(); + if (!view) { + return; + } + + QScrollBar* scrollBar = (view->scrollOrientation() == Qt::Vertical) + ? verticalScrollBar() : horizontalScrollBar(); + scrollBar->setValue(offset); +} + void KItemListContainer::updateScrollBars() { const KItemListView* view = m_controller->view(); @@ -311,7 +325,7 @@ void KItemListContainer::initialize() setViewport(graphicsView); m_viewOffsetAnimation = new QPropertyAnimation(this, "offset"); - m_viewOffsetAnimation->setDuration(500); + m_viewOffsetAnimation->setDuration(300); horizontalScrollBar()->installEventFilter(this); verticalScrollBar()->installEventFilter(this);