22
22
#define DRAGANDDROPHELPER_H
24
24
#include "libdolphin_export.h"
28
class DolphinViewController;
32
class QAbstractItemView;
37
* @brief Helper class for having a common drag and drop behavior.
39
* The class is used by DolphinIconsView, DolphinDetailsView,
40
* DolphinColumnView and PanelTreeView to have a consistent
41
* drag and drop behavior between all views.
43
class LIBDOLPHINPRIVATE_EXPORT DragAndDropHelper : public QObject
33
class LIBDOLPHINPRIVATE_EXPORT DragAndDropHelper
48
static DragAndDropHelper& instance();
51
* Creates a drag object for the view \a itemView for all selected items.
53
void startDrag(QAbstractItemView* itemView,
54
Qt::DropActions supportedActions,
55
DolphinViewController* dolphinViewController = 0);
58
* Returns true if and only if the view \a itemView was the last view to
59
* be passed to startDrag(...), and that drag is still in progress.
61
bool isDragSource(QAbstractItemView* itemView) const;
64
* Handles the dropping of URLs to the given
65
* destination. A context menu with the options
66
* 'Move Here', 'Copy Here', 'Link Here' and
67
* 'Cancel' is offered to the user.
68
* @param destItem Item of the destination (can be null, see KFileItem::isNull()).
69
* @param destPath Path of the destination.
37
* Handles the dropping of URLs to the given destination. A context menu
38
* with the options 'Move Here', 'Copy Here', 'Link Here' and 'Cancel' is
39
* offered to the user. The drag destination must represent a directory or
40
* a desktop-file, otherwise the dropping gets ignored.
42
* @param destItem Item of the destination. Can be 0 (KFileItem::isNull()) if
43
* no file-item is available for the destination. In this case
44
* destUrl is used as fallback. For performance reasons it is
45
* recommended to pass a file-item if available.
46
* @param destUrl URL of the item destination. Is used only if destItem::isNull()
70
48
* @param event Drop event.
71
* @param widget Source widget where the dragging has been started.
73
void dropUrls(const KFileItem& destItem,
78
void errorMessage(const QString& msg);
84
* Creates a pixmap the contains the all icons of the items
87
QPixmap createDragPixmap(QAbstractItemView* itemView) const;
89
// The last view passed in startDrag(...), or 0 if
90
// no startDrag(...) initiated drag is in progress.
91
QAbstractItemView *m_dragSource;
93
friend class DragAndDropHelperSingleton;
49
* @return Error message intended to be shown for users if dropping is not
50
* possible. If an empty string is returned, the dropping has been
53
static QString dropUrls(const KFileItem& destItem,