X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/fda88516e9c32ed93cb4fe47a3a9a9bf2aecc456..48b58f830a585b773435c9af5ee2fe8f0c7c641d:/src/views/draganddrophelper.h diff --git a/src/views/draganddrophelper.h b/src/views/draganddrophelper.h index eda5fc5c2..1a6b5900e 100644 --- a/src/views/draganddrophelper.h +++ b/src/views/draganddrophelper.h @@ -21,17 +21,16 @@ #ifndef DRAGANDDROPHELPER_H #define DRAGANDDROPHELPER_H -#include "libdolphin_export.h" +#include "dolphin_export.h" -#include +#include +#include -class KFileItem; -class KUrl; class QDropEvent; class QWidget; -class KonqOperations; +namespace KIO { class DropJob; } -class LIBDOLPHINPRIVATE_EXPORT DragAndDropHelper +class DOLPHIN_EXPORT DragAndDropHelper { public: /** @@ -40,22 +39,31 @@ public: * offered to the user. The drag destination must represent a directory or * a desktop-file, otherwise the dropping gets ignored. * - * @param destItem Item of the destination. Can be 0 (KFileItem::isNull()) if - * no file-item is available for the destination. In this case - * destUrl is used as fallback. For performance reasons it is - * recommended to pass a file-item if available. * @param destUrl URL of the item destination. Is used only if destItem::isNull() * is true. * @param event Drop event. - * @param error Error message intended to be shown for users if dropping is not - * possible. If an empty string is returned, the dropping has been - * successful. - * @return KonqOperations pointer + * @param window Widget where the drop happened, will be used as parent of the drop menu. + * @return KIO::DropJob pointer or null in case the destUrl is contained + * in the mimeData url list. */ - static KonqOperations* dropUrls(const KFileItem& destItem, - const KUrl& destUrl, - QDropEvent* event, - QString& error); + static KIO::DropJob* dropUrls(const QUrl& destUrl, + QDropEvent* event, + QWidget *window); + + /** + * @return True if destUrl is contained in the urls parameter. + */ + static bool urlListMatchesUrl(const QList& urls, const QUrl& destUrl); + + /** + * clear the internal cache. + */ + static void clearUrlListMatchesUrlCache(); +private: + /** + * Stores the results of the expensive checks made in urlListMatchesUrl. + */ + static QHash m_urlListMatchesUrlCache; }; #endif