┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistcontainer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews/kitemlistcontainer.cpp')
-rw-r--r--src/kitemviews/kitemlistcontainer.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/kitemviews/kitemlistcontainer.cpp b/src/kitemviews/kitemlistcontainer.cpp
index dfd5e8a04..77847bcc7 100644
--- a/src/kitemviews/kitemlistcontainer.cpp
+++ b/src/kitemviews/kitemlistcontainer.cpp
@@ -17,6 +17,7 @@
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QScrollBar>
+#include <QScroller>
#include <QStyleOption>
/**
@@ -54,7 +55,8 @@ KItemListContainer::KItemListContainer(KItemListController* controller, QWidget*
QAbstractScrollArea(parent),
m_controller(controller),
m_horizontalSmoothScroller(nullptr),
- m_verticalSmoothScroller(nullptr)
+ m_verticalSmoothScroller(nullptr),
+ m_scroller(nullptr)
{
Q_ASSERT(controller);
controller->setParent(this);
@@ -76,6 +78,13 @@ KItemListContainer::KItemListContainer(KItemListController* controller, QWidget*
this, &KItemListContainer::slotModelChanged);
connect(controller, &KItemListController::viewChanged,
this, &KItemListContainer::slotViewChanged);
+
+ m_scroller = QScroller::scroller(viewport());
+ m_scroller->grabGesture(viewport());
+ connect(controller, &KItemListController::scrollerStop,
+ this, &KItemListContainer::stopScroller);
+ connect(m_scroller, &QScroller::stateChanged,
+ controller, &KItemListController::slotStateChanged);
}
KItemListContainer::~KItemListContainer()
@@ -325,6 +334,11 @@ void KItemListContainer::updateItemOffsetScrollBar()
}
}
+void KItemListContainer::stopScroller()
+{
+ m_scroller->stop();
+}
+
void KItemListContainer::updateGeometries()
{
QRect rect = geometry();