┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Ernst <[email protected]>2022-05-26 12:56:03 +0200
committerFelix Ernst <[email protected]>2022-08-14 14:42:40 +0000
commit6b0dcb62dae13647a36ad343eee0a4ce5f48d7c8 (patch)
treebdb487bdd9a466fc39bd5b9cc3db47262adfe586
parent0f50abe12dce43341c7921cf35f71da95b3df8cc (diff)
Simplify implementation of mouse long-press detection
Now uses the same method as for touch long-press detection.
-rw-r--r--src/kitemviews/kitemlistcontroller.cpp20
-rw-r--r--src/kitemviews/kitemlistcontroller.h1
2 files changed, 1 insertions, 20 deletions
diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp
index 2c407dbe2..b589ac356 100644
--- a/src/kitemviews/kitemlistcontroller.cpp
+++ b/src/kitemviews/kitemlistcontroller.cpp
@@ -53,7 +53,6 @@ KItemListController::KItemListController(KItemModelBase* model, KItemListView* v
m_pressedIndex(std::nullopt),
m_pressedMousePos(),
m_autoActivationTimer(nullptr),
- m_longPressDetectionTimer(nullptr),
m_swipeGesture(Qt::CustomGesture),
m_twoFingerTapGesture(Qt::CustomGesture),
m_oldSelection(),
@@ -72,15 +71,6 @@ KItemListController::KItemListController(KItemModelBase* model, KItemListView* v
m_autoActivationTimer->setInterval(-1);
connect(m_autoActivationTimer, &QTimer::timeout, this, &KItemListController::slotAutoActivationTimeout);
- m_longPressDetectionTimer = new QTimer(this);
- m_longPressDetectionTimer->setSingleShot(true);
- m_longPressDetectionTimer->setInterval(QGuiApplication::styleHints()->mousePressAndHoldInterval());
- connect(m_longPressDetectionTimer, &QTimer::timeout, this, [this]() {
- if (!m_selectionMode) {
- Q_EMIT selectionModeChangeRequested(true);
- }
- });
-
setModel(model);
setView(view);
@@ -601,9 +591,6 @@ bool KItemListController::mouseMoveEvent(QGraphicsSceneMouseEvent* event, const
}
const QPointF pos = transform.map(event->pos());
- if ((pos - m_pressedMousePos).manhattanLength() >= QApplication::startDragDistance()) {
- m_longPressDetectionTimer->stop();
- }
if (m_pressedIndex.has_value() && !m_view->rubberBand()->isActive()) {
// Check whether a dragging should be started
@@ -667,8 +654,6 @@ bool KItemListController::mouseReleaseEvent(QGraphicsSceneMouseEvent* event, con
m_view->m_tapAndHoldIndicator->setActive(false);
}
- m_longPressDetectionTimer->stop();
-
KItemListRubberBand* rubberBand = m_view->rubberBand();
if (event->source() == Qt::MouseEventSynthesizedByQt && !rubberBand->isActive() && m_isTouchEvent) {
return false;
@@ -1075,6 +1060,7 @@ void KItemListController::tapAndHoldTriggered(QGestureEvent* event, const QTrans
//the Qt TabAndHold gesture is triggerable with a mouse click, we don't want this
if (!m_isTouchEvent) {
+ Q_EMIT selectionModeChangeRequested(true);
return;
}
@@ -1553,10 +1539,6 @@ bool KItemListController::onPress(const QPoint& screenPos, const QPointF& pos, c
const bool leftClick = buttons & Qt::LeftButton;
const bool rightClick = buttons & Qt::RightButton;
- if (leftClick) {
- m_longPressDetectionTimer->start();
- }
-
// The previous selection is cleared if either
// 1. The selection mode is SingleSelection, or
// 2. the selection mode is MultiSelection, and *none* of the following conditions are met:
diff --git a/src/kitemviews/kitemlistcontroller.h b/src/kitemviews/kitemlistcontroller.h
index 515511f86..b6a2f05fe 100644
--- a/src/kitemviews/kitemlistcontroller.h
+++ b/src/kitemviews/kitemlistcontroller.h
@@ -363,7 +363,6 @@ private:
QPointF m_pressedMousePos;
QTimer* m_autoActivationTimer;
- QTimer* m_longPressDetectionTimer;
Qt::GestureType m_swipeGesture;
Qt::GestureType m_twoFingerTapGesture;