X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/a5cf21ff06aff44cde563eaceae3c6cef452ee48..3bfdf0d2:/src/views/draganddrophelper.h diff --git a/src/views/draganddrophelper.h b/src/views/draganddrophelper.h index 3cb506c43..3153f06ef 100644 --- a/src/views/draganddrophelper.h +++ b/src/views/draganddrophelper.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2007 by Peter Penz * + * Copyright (C) 2007-2011 by Peter Penz * * Copyright (C) 2007 by David Faure * * * * This program is free software; you can redistribute it and/or modify * @@ -21,82 +21,32 @@ #ifndef DRAGANDDROPHELPER_H #define DRAGANDDROPHELPER_H -#include "libdolphin_export.h" -#include -#include +#include "dolphin_export.h" -class DolphinViewController; -class KFileItem; -class KUrl; + +class QUrl; class QDropEvent; -class QAbstractItemView; -class QMimeData; class QWidget; +namespace KIO { class DropJob; } -/** - * @brief Helper class for having a common drag and drop behavior. - * - * The class is used by DolphinIconsView, DolphinDetailsView, - * DolphinColumnView and PanelTreeView to have a consistent - * drag and drop behavior between all views. - */ -class LIBDOLPHINPRIVATE_EXPORT DragAndDropHelper : public QObject +class DOLPHIN_EXPORT DragAndDropHelper { - Q_OBJECT - public: - static DragAndDropHelper& instance(); - - /** - * Returns true, if Dolphin supports the dragging of - * the given mime data. - */ - bool isMimeDataSupported(const QMimeData* mimeData) const; - - /** - * Creates a drag object for the view \a itemView for all selected items. - */ - void startDrag(QAbstractItemView* itemView, - Qt::DropActions supportedActions, - DolphinViewController* dolphinViewController = 0); - - /** - * Returns true if and only if the view \a itemView was the last view to - * be passed to startDrag(...), and that drag is still in progress. - */ - bool isDragSource(QAbstractItemView* itemView) const; - /** - * Handles the dropping of URLs to the given - * destination. A context menu with the options - * 'Move Here', 'Copy Here', 'Link Here' and - * 'Cancel' is offered to the user. - * @param destItem Item of the destination (can be null, see KFileItem::isNull()). - * @param destPath Path of the destination. + * Handles the dropping of URLs to the given destination. A context menu + * with the options 'Move Here', 'Copy Here', 'Link Here' and 'Cancel' is + * offered to the user. The drag destination must represent a directory or + * a desktop-file, otherwise the dropping gets ignored. + * + * @param destUrl URL of the item destination. Is used only if destItem::isNull() + * is true. * @param event Drop event. - * @param widget Source widget where the dragging has been started. + * @param window Widget where the drop happened, will be used as parent of the drop menu. + * @return KIO::DropJob pointer */ - void dropUrls(const KFileItem& destItem, - const KUrl& destPath, - QDropEvent* event, - QWidget* widget); -signals: - void errorMessage(const QString& msg); - -private: - DragAndDropHelper(); - - /** - * Creates a pixmap the contains the all icons of the items - * that are dragged. - */ - QPixmap createDragPixmap(QAbstractItemView* itemView) const; - - // The last view passed in startDrag(...), or 0 if - // no startDrag(...) initiated drag is in progress. - QAbstractItemView *m_dragSource; - - friend class DragAndDropHelperSingleton; + static KIO::DropJob* dropUrls(const QUrl& destUrl, + QDropEvent* event, + QWidget *window); }; #endif