X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/9aee5d22513f0367febab54b38b3a7dc58d120bb..87e8d0ba:/src/views/draganddrophelper.h diff --git a/src/views/draganddrophelper.h b/src/views/draganddrophelper.h index fe77b1e6e..0c7eadc6c 100644 --- a/src/views/draganddrophelper.h +++ b/src/views/draganddrophelper.h @@ -22,9 +22,10 @@ #define DRAGANDDROPHELPER_H #include "dolphin_export.h" +#include +#include -class QUrl; class QDropEvent; class QWidget; namespace KIO { class DropJob; } @@ -41,12 +42,28 @@ public: * @param destUrl URL of the item destination. Is used only if destItem::isNull() * is true. * @param event Drop event. - * @param window Associated widget. - * @return KIO::DropJob 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 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