]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kitemlistcontroller.h
Add a new "view_settings" action
[dolphin.git] / src / kitemviews / kitemlistcontroller.h
index d75a8a22d5a7173442e4b469f7ee438dd4f98a29..fcb971fb7ff81d68b641741636f5b40b07858256 100644 (file)
@@ -24,6 +24,7 @@ class KItemListKeyboardSearchManager;
 class KItemListSelectionManager;
 class KItemListView;
 class KItemListWidget;
+class QContextMenuEvent;
 class QGestureEvent;
 class QGraphicsSceneHoverEvent;
 class QGraphicsSceneDragDropEvent;
@@ -49,11 +50,8 @@ class QTouchEvent;
 class DOLPHIN_EXPORT KItemListController : public QObject
 {
     Q_OBJECT
-    Q_PROPERTY(KItemModelBase *model READ model WRITE setModel)
-    Q_PROPERTY(KItemListView *view READ view WRITE setView)
-    Q_PROPERTY(SelectionBehavior selectionBehavior READ selectionBehavior WRITE setSelectionBehavior)
-    Q_PROPERTY(AutoActivationBehavior autoActivationBehavior READ autoActivationBehavior WRITE setAutoActivationBehavior)
-    Q_PROPERTY(MouseDoubleClickAction mouseDoubleClickAction READ mouseDoubleClickAction WRITE setMouseDoubleClickAction)
+    Q_PROPERTY(KItemModelBase *model READ model WRITE setModel NOTIFY modelChanged)
+    Q_PROPERTY(KItemListView *view READ view WRITE setView NOTIFY viewChanged)
 
 public:
     enum SelectionBehavior { NoSelection, SingleSelection, MultiSelection };
@@ -123,6 +121,11 @@ public:
     void setSelectionModeEnabled(bool enabled);
     bool selectionMode() const;
 
+    /**
+     * @return \c true if search as you type is active, or \c false otherwise.
+     */
+    bool isSearchAsYouTypeActive() const;
+
     bool processEvent(QEvent *event, const QTransform &transform);
 
 Q_SIGNALS:
@@ -227,6 +230,12 @@ Q_SIGNALS:
     void decreaseZoom();
     void swipeUp();
 
+    /**
+     * Emitted when the view's background is double-clicked.
+     * Used to trigger an user configured action.
+     */
+    void doubleClickViewBackground(Qt::MouseButton button);
+
 public Q_SLOTS:
     void slotStateChanged(QScroller::State newState);
 
@@ -311,6 +320,7 @@ private:
     bool mouseMoveEvent(QGraphicsSceneMouseEvent *event, const QTransform &transform);
     bool mouseReleaseEvent(QGraphicsSceneMouseEvent *event, const QTransform &transform);
     bool mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event, const QTransform &transform);
+    bool contextMenuEvent(QContextMenuEvent *event);
     bool dragEnterEvent(QGraphicsSceneDragDropEvent *event, const QTransform &transform);
     bool dragLeaveEvent(QGraphicsSceneDragDropEvent *event, const QTransform &transform);
     bool dragMoveEvent(QGraphicsSceneDragDropEvent *event, const QTransform &transform);
@@ -327,7 +337,7 @@ private:
     void pinchTriggered(QGestureEvent *event, const QTransform &transform);
     void swipeTriggered(QGestureEvent *event, const QTransform &transform);
     void twoFingerTapTriggered(QGestureEvent *event, const QTransform &transform);
-    bool onPress(const QPoint &screenPos, const QPointF &pos, const Qt::KeyboardModifiers modifiers, const Qt::MouseButtons buttons);
+    bool onPress(const QPointF &pos, const Qt::KeyboardModifiers modifiers, const Qt::MouseButtons buttons);
     bool onRelease(const QPointF &pos, const Qt::KeyboardModifiers modifiers, const Qt::MouseButtons buttons, bool touch);
     void startRubberBand();
 
@@ -350,7 +360,7 @@ private:
     KItemListSelectionManager *m_selectionManager;
     KItemListKeyboardSearchManager *m_keyboardManager;
     std::optional<int> m_pressedIndex;
-    QPointF m_pressedMousePos;
+    QPointF m_pressedMouseGlobalPos;
 
     QTimer *m_autoActivationTimer;