X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/3b7c05b385dc56fbc0b9ffdd332f8d30e7624d0c..2e588733c759cccd2d86e34a3a394b9a8ab0c800:/src/kitemviews/kitemlistcontroller.cpp diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp index 03ee5cfe6..ce96cab6c 100644 --- a/src/kitemviews/kitemlistcontroller.cpp +++ b/src/kitemviews/kitemlistcontroller.cpp @@ -77,7 +77,7 @@ KItemListController::KItemListController(KItemModelBase* model, KItemListView* v m_longPressDetectionTimer->setInterval(QGuiApplication::styleHints()->mousePressAndHoldInterval()); connect(m_longPressDetectionTimer, &QTimer::timeout, this, [this]() { if (!m_selectionMode) { - Q_EMIT selectionModeRequested(); + Q_EMIT selectionModeChangeRequested(true); } }); @@ -232,7 +232,7 @@ bool KItemListController::singleClickActivationEnforced() const return m_singleClickActivationEnforced; } -void KItemListController::setSelectionMode(bool enabled) +void KItemListController::setSelectionModeEnabled(bool enabled) { m_selectionMode = enabled; } @@ -430,6 +430,9 @@ bool KItemListController::keyPressEvent(QKeyEvent* event) } case Qt::Key_Escape: + if (m_selectionMode && m_selectionManager->selectedItems().count() < 1) { + Q_EMIT selectionModeChangeRequested(false); + } if (m_selectionBehavior != SingleSelection) { m_selectionManager->clearSelection(); } @@ -1546,7 +1549,8 @@ bool KItemListController::onPress(const QPoint& screenPos, const QPointF& pos, c } const bool shiftPressed = modifiers & Qt::ShiftModifier; - const bool controlPressed = (modifiers & Qt::ControlModifier) || m_selectionMode; + const bool controlPressed = (modifiers & Qt::ControlModifier) || m_selectionMode; // Keeping selectionMode similar to pressing control will hopefully + // simplify the overall logic and possibilities both for users and devs. const bool leftClick = buttons & Qt::LeftButton; const bool rightClick = buttons & Qt::RightButton;