]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kitemlistcontroller.h
Simplify implementation of mouse long-press detection
[dolphin.git] / src / kitemviews / kitemlistcontroller.h
index d2e56eb64b40dc7c6bc98b8e6532c146d3959b0a..b6a2f05feeec5986c7843f5b488d4c289df72826 100644 (file)
@@ -126,6 +126,13 @@ public:
     void setSingleClickActivationEnforced(bool singleClick);
     bool singleClickActivationEnforced() const;
 
+    /**
+     * Setting the selection mode to enabled will make selecting and deselecting easier by acting
+     * kind of similar to when the Control Key is held down.
+     */
+    void setSelectionModeEnabled(bool enabled);
+    bool selectionMode() const;
+
     bool processEvent(QEvent* event, const QTransform& transform);
 
 Q_SIGNALS:
@@ -209,6 +216,17 @@ Q_SIGNALS:
      */
     void escapePressed();
 
+    /**
+     * Used to request either entering or leaving of selection mode
+     * Leaving is requested by pressing Escape when no item is selected.
+     *
+     * Entering is requested if left click is pressed down for a long time without moving the cursor too much.
+     * Moving the cursor would either trigger an item drag if the click was initiated on top of an item
+     * or a selection rectangle if the click was not initiated on top of an item.
+     * So long press is only emitted if there wasn't a lot of cursor movement.
+     */
+    void selectionModeChangeRequested(bool enabled);
+
     void modelChanged(KItemModelBase* current, KItemModelBase* previous);
     void viewChanged(KItemListView* current, KItemListView* previous);
 
@@ -325,6 +343,7 @@ private:
 
 private:
     bool m_singleClickActivationEnforced;
+    bool m_selectionMode;
     bool m_selectionTogglePressed;
     bool m_clearSelectionIfItemsAreNotDragged;
     bool m_isSwipeGesture;