#include "dolphinplacesmodelsingleton.h"
#include "trash/dolphintrash.h"
+#include "views/draganddrophelper.h"
#include <KAboutData>
-#include <KFilePlacesModel>
#include <QIcon>
+#include <QMimeData>
-DolphinPlacesModel::DolphinPlacesModel(const QString &alternativeApplicationName, QObject *parent)
- : KFilePlacesModel(alternativeApplicationName, parent)
+DolphinPlacesModel::DolphinPlacesModel(QObject *parent)
+ : KFilePlacesModel(parent)
{
connect(&Trash::instance(), &Trash::emptinessChanged, this, &DolphinPlacesModel::slotTrashEmptinessChanged);
}
}
}
+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) {
}
DolphinPlacesModelSingleton::DolphinPlacesModelSingleton()
- : m_placesModel(new DolphinPlacesModel(KAboutData::applicationData().componentName() + applicationNameSuffix()))
+ : m_placesModel(new DolphinPlacesModel())
{
-
}
DolphinPlacesModelSingleton &DolphinPlacesModelSingleton::instance()
return m_placesModel.data();
}
-QString DolphinPlacesModelSingleton::applicationNameSuffix()
-{
- return QStringLiteral("-places-panel");
-}
+#include "moc_dolphinplacesmodelsingleton.cpp"