]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinplacesmodelsingleton.cpp
Add Filelight menu to Tools menu
[dolphin.git] / src / dolphinplacesmodelsingleton.cpp
index c31ffc4c3cd1c0c4afeb676ecc25606f3f91e901..301150394d84a3b3b150a369909ae99e9885eb7d 100644 (file)
@@ -6,14 +6,15 @@
 
 #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);
 }
@@ -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"