X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/0dac70d059551ad143b9bb9849efb28840b7ba4b..9281664e5b1e492087604264b145b390e8880e81:/src/dolphinplacesmodelsingleton.cpp diff --git a/src/dolphinplacesmodelsingleton.cpp b/src/dolphinplacesmodelsingleton.cpp index c31ffc4c3..301150394 100644 --- a/src/dolphinplacesmodelsingleton.cpp +++ b/src/dolphinplacesmodelsingleton.cpp @@ -6,14 +6,15 @@ #include "dolphinplacesmodelsingleton.h" #include "trash/dolphintrash.h" +#include "views/draganddrophelper.h" #include -#include #include +#include -DolphinPlacesModel::DolphinPlacesModel(const QString &alternativeApplicationName, QObject *parent) - : KFilePlacesModel(alternativeApplicationName, parent) +DolphinPlacesModel::DolphinPlacesModel(QObject *parent) + : KFilePlacesModel(parent) { connect(&Trash::instance(), &Trash::emptinessChanged, this, &DolphinPlacesModel::slotTrashEmptinessChanged); } @@ -47,6 +48,24 @@ void DolphinPlacesModel::setPanelsLocked(bool locked) } } +QStringList DolphinPlacesModel::mimeTypes() const +{ + QStringList types = KFilePlacesModel::mimeTypes(); + types << DragAndDropHelper::arkDndServiceMimeType() << DragAndDropHelper::arkDndPathMimeType(); + return types; +} + +bool DolphinPlacesModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) +{ + // We make the view accept the drag by returning them from mimeTypes() + // but the drop should be handled exclusively by PlacesPanel::slotUrlsDropped + if (DragAndDropHelper::isArkDndMimeType(data)) { + return false; + } + + return KFilePlacesModel::dropMimeData(data, action, row, column, parent); +} + QVariant DolphinPlacesModel::data(const QModelIndex &index, int role) const { switch (role) { @@ -99,9 +118,8 @@ bool DolphinPlacesModel::isTrash(const QModelIndex &index) const } DolphinPlacesModelSingleton::DolphinPlacesModelSingleton() - : m_placesModel(new DolphinPlacesModel(KAboutData::applicationData().componentName() + applicationNameSuffix())) + : m_placesModel(new DolphinPlacesModel()) { - } DolphinPlacesModelSingleton &DolphinPlacesModelSingleton::instance() @@ -115,7 +133,4 @@ DolphinPlacesModel *DolphinPlacesModelSingleton::placesModel() const return m_placesModel.data(); } -QString DolphinPlacesModelSingleton::applicationNameSuffix() -{ - return QStringLiteral("-places-panel"); -} +#include "moc_dolphinplacesmodelsingleton.cpp"