X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/863ee3a87cee8b1f22a311d6a6a62e56714b5eae..9df6ef77aadbd2c142bc666d3c998d9ece47f7fe:/src/kitemviews/kitemlistcontroller.h diff --git a/src/kitemviews/kitemlistcontroller.h b/src/kitemviews/kitemlistcontroller.h index 0969ed21a..fcb971fb7 100644 --- a/src/kitemviews/kitemlistcontroller.h +++ b/src/kitemviews/kitemlistcontroller.h @@ -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 }; @@ -232,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); @@ -316,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); @@ -332,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(); @@ -355,7 +360,7 @@ private: KItemListSelectionManager *m_selectionManager; KItemListKeyboardSearchManager *m_keyboardManager; std::optional m_pressedIndex; - QPointF m_pressedMousePos; + QPointF m_pressedMouseGlobalPos; QTimer *m_autoActivationTimer;