]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/panels/places/placespanel.cpp
Merge branch 'KDE/4.14'
[dolphin.git] / src / panels / places / placespanel.cpp
index 0f5b83ad5fdca2193da412de31c02c05dcc6c273..720e07ce37e91067b319c108580847b24aaf30af 100644 (file)
@@ -283,8 +283,9 @@ void PlacesPanel::slotItemContextMenuRequested(int index, const QPointF& pos)
             } else if (action == hideAction) {
                 item->setHidden(hideAction->isChecked());
             } else if (action == openInNewTabAction) {
-                const KUrl url = m_model->item(index)->dataValue("url").value<KUrl>();
-                emit placeMiddleClicked(url);
+                // TriggerItem does set up the storage first and then it will
+                // emit the slotItemMiddleClicked signal, because of Qt::MiddleButton.
+                triggerItem(index, Qt::MiddleButton);
             } else if (action == teardownAction) {
                 m_model->requestTeardown(index);
             } else if (action == ejectAction) {
@@ -332,6 +333,12 @@ void PlacesPanel::slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* even
         return;
     }
 
+    const PlacesItem* destItem = m_model->placesItem(index);
+    const PlacesItem::GroupType group = destItem->groupType();
+    if (group == PlacesItem::SearchForType || group == PlacesItem::RecentlySavedType) {
+        return;
+    }
+
     if (m_model->storageSetupNeeded(index)) {
         connect(m_model, SIGNAL(storageSetupDone(int,bool)),
                 this, SLOT(slotItemDropEventStorageSetupDone(int,bool)));
@@ -356,7 +363,7 @@ void PlacesPanel::slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* even
         return;
     }
 
-    KUrl destUrl = m_model->placesItem(index)->url();
+    KUrl destUrl = destItem->url();
     QDropEvent dropEvent(event->pos().toPoint(),
                          event->possibleActions(),
                          event->mimeData(),