From d7b33b76a18b14e9f286e4d8326b00910b9ea02a Mon Sep 17 00:00:00 2001 From: Steffen Hartleib Date: Sun, 13 Sep 2020 18:53:32 +0000 Subject: 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'. --- src/kitemviews/private/ktwofingertap.h | 48 ++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/kitemviews/private/ktwofingertap.h (limited to 'src/kitemviews/private/ktwofingertap.h') diff --git a/src/kitemviews/private/ktwofingertap.h b/src/kitemviews/private/ktwofingertap.h new file mode 100644 index 000000000..614df2424 --- /dev/null +++ b/src/kitemviews/private/ktwofingertap.h @@ -0,0 +1,48 @@ +/* + * SPDX-FileCopyrightText: 2020 Steffen Hartleib + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef KTWOFINGERTAP_H +#define KTWOFINGERTAP_H + +#include +// Qt +#include +#include + +class DOLPHIN_EXPORT KTwoFingerTap : public QGesture +{ + Q_OBJECT + Q_PROPERTY(QPointF pos READ pos WRITE setPos) + Q_PROPERTY(QPointF screenPos READ screenPos WRITE setScreenPos) + Q_PROPERTY(QPointF scenePos READ scenePos WRITE setScenePos) +public: + explicit KTwoFingerTap(QObject* parent = nullptr); + ~KTwoFingerTap(); + QPointF pos() const; + void setPos(QPointF pos); + QPointF screenPos() const; + void setScreenPos(QPointF screenPos); + QPointF scenePos() const; + void setScenePos(QPointF scenePos); +private: + QPointF m_pos; + QPointF m_screenPos; + QPointF m_scenePos; +}; + +class DOLPHIN_EXPORT KTwoFingerTapRecognizer : public QGestureRecognizer +{ +public: + explicit KTwoFingerTapRecognizer(); + ~KTwoFingerTapRecognizer(); + QGesture* create(QObject*) override; + Result recognize(QGesture*, QObject*, QEvent*) override; +private: + Q_DISABLE_COPY(KTwoFingerTapRecognizer) + bool m_gestureTriggered; +}; + +#endif /* KTWOFINGERTAP_H */ -- cgit v1.3.1