/***************************************************************************
* Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.com> *
* *
- * Based on the Itemviews NG project from Trolltech Labs: *
- * http://qt.gitorious.org/qt-labs/itemviews-ng *
+ * Based on the Itemviews NG project from Trolltech Labs *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
#ifndef KITEMLISTCONTROLLER_H
#define KITEMLISTCONTROLLER_H
-#include "libdolphin_export.h"
-
+#include "dolphin_export.h"
#include "kitemset.h"
#include <QObject>
#include <QPointF>
+
class QTimer;
class KItemModelBase;
class KItemListKeyboardSearchManager;
class QGraphicsSceneMouseEvent;
class QGraphicsSceneResizeEvent;
class QGraphicsSceneWheelEvent;
-class QHideEvent;
class QInputMethodEvent;
class QKeyEvent;
-class QShowEvent;
class QTransform;
/**
* @see KItemModelBase
* @see KItemListSelectionManager
*/
-class LIBDOLPHINPRIVATE_EXPORT KItemListController : public QObject
+class DOLPHIN_EXPORT KItemListController : public QObject
{
Q_OBJECT
- Q_ENUMS(SelectionBehavior)
Q_PROPERTY(KItemModelBase* model READ model WRITE setModel)
Q_PROPERTY(KItemListView *view READ view WRITE setView)
Q_PROPERTY(SelectionBehavior selectionBehavior READ selectionBehavior WRITE setSelectionBehavior)
SingleSelection,
MultiSelection
};
+ Q_ENUM(SelectionBehavior)
enum AutoActivationBehavior {
ActivationAndExpansion,
* @param view View of the controller. The ownership is passed to the controller.
* @param parent Optional parent object.
*/
- KItemListController(KItemModelBase* model, KItemListView* view, QObject* parent = 0);
- virtual ~KItemListController();
+ KItemListController(KItemModelBase* model, KItemListView* view, QObject* parent = nullptr);
+ ~KItemListController() override;
void setModel(KItemModelBase* model);
KItemModelBase* model() const;
void setMouseDoubleClickAction(MouseDoubleClickAction action);
MouseDoubleClickAction mouseDoubleClickAction() const;
+ int indexCloseToMousePressedPosition() const;
+
/**
* Sets the delay in milliseconds when dragging an object above an item
* until the item gets activated automatically. A value of -1 indicates
void setSingleClickActivationEnforced(bool singleClick);
bool singleClickActivationEnforced() const;
- virtual bool showEvent(QShowEvent* event);
- virtual bool hideEvent(QHideEvent* event);
- virtual bool keyPressEvent(QKeyEvent* event);
- virtual bool inputMethodEvent(QInputMethodEvent* event);
- virtual bool mousePressEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
- virtual bool mouseMoveEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
- virtual bool mouseReleaseEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
- virtual bool mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
- virtual bool dragEnterEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
- virtual bool dragLeaveEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
- virtual bool dragMoveEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
- virtual bool dropEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
- virtual bool hoverEnterEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform);
- virtual bool hoverMoveEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform);
- virtual bool hoverLeaveEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform);
- virtual bool wheelEvent(QGraphicsSceneWheelEvent* event, const QTransform& transform);
- virtual bool resizeEvent(QGraphicsSceneResizeEvent* event, const QTransform& transform);
- virtual bool processEvent(QEvent* event, const QTransform& transform);
+ bool processEvent(QEvent* event, const QTransform& transform);
signals:
/**
void modelChanged(KItemModelBase* current, KItemModelBase* previous);
void viewChanged(KItemListView* current, KItemListView* previous);
+ void selectedItemTextPressed(int index);
+
private slots:
void slotViewScrollOffsetChanged(qreal current, qreal previous);
*/
void updateExtendedSelectionRegion();
+ bool keyPressEvent(QKeyEvent* event);
+ bool inputMethodEvent(QInputMethodEvent* event);
+ bool mousePressEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
+ bool mouseMoveEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
+ bool mouseReleaseEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
+ bool mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
+ bool dragEnterEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
+ bool dragLeaveEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
+ bool dragMoveEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
+ bool dropEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
+ bool hoverEnterEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform);
+ bool hoverMoveEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform);
+ bool hoverLeaveEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform);
+ bool wheelEvent(QGraphicsSceneWheelEvent* event, const QTransform& transform);
+ bool resizeEvent(QGraphicsSceneResizeEvent* event, const QTransform& transform);
+
private:
bool m_singleClickActivationEnforced;
bool m_selectionTogglePressed;