diff options
| author | Steffen Hartleib <[email protected]> | 2020-09-13 18:53:32 +0000 |
|---|---|---|
| committer | Elvis Angelaccio <[email protected]> | 2020-09-13 18:53:32 +0000 |
| commit | d7b33b76a18b14e9f286e4d8326b00910b9ea02a (patch) | |
| tree | ade5042c74a0d172172a9327244858825076c333 /src/kitemviews/kitemlistcontainer.cpp | |
| parent | d899c2b401869d29558f62fba3479bf744b0577c (diff) | |
Improve Touch support
With this patch dolphin now supports the following touch gestures:
* Tap gesture to interact/open with directories, files and so on
* TapAndHold and release gesture for access to the context menu (main window, panel folder, places and information)
* TapAndHold and moving gesture for drag and drop action (main windows, panel folder and places)
* pinch gesture for zoom in main window
* kinetic scrolling (QScroller) for main window, panel folder, panel places, panel information, setting preview and service
* two fingers swipe gesture to left, right and up as shortcut to navigate back, forward and up
* two finger tap gesture to toggle item selection, similar to Ctrl and left mouse click
FEATURE: 385066
FIXED-IN: 20.11.80
You are currently rebasing branch 'touch' on '85241a924'.
Diffstat (limited to 'src/kitemviews/kitemlistcontainer.cpp')
| -rw-r--r-- | src/kitemviews/kitemlistcontainer.cpp | 16 |
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(); |
