]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.cpp
Move the pasteIntoFolder() method from the contextmenu into DolphinView. This allows...
[dolphin.git] / src / dolphincontextmenu.cpp
index 2dcb916a55c9fdb1b31ed096cec70a3152723f7b..dd88fb74bcabf1d290bd271a4db800f61787cee1 100644 (file)
@@ -95,7 +95,6 @@ void DolphinContextMenu::open()
     }
 }
 
-
 void DolphinContextMenu::openTrashContextMenu()
 {
     Q_ASSERT(m_context & TrashContext);
@@ -130,7 +129,7 @@ void DolphinContextMenu::openTrashContextMenu()
     } else if (action == addToPlacesAction) {
         const KUrl& url = m_mainWindow->activeViewContainer()->url();
         if (url.isValid()) {
-            DolphinSettings::instance().placesModel()->addPlace(i18n("Trash"), url);
+            DolphinSettings::instance().placesModel()->addPlace(i18nc("@label", "Trash"), url);
         }
     }
 
@@ -230,7 +229,7 @@ void DolphinContextMenu::openViewportContextMenu()
     popup->addMenu(newMenu->menu());
     popup->addSeparator();
 
-    QAction* pasteAction = m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::Paste));
+    QAction* pasteAction = createPasteAction();
     popup->addAction(pasteAction);
 
     // setup 'View Mode' menu
@@ -281,7 +280,7 @@ void DolphinContextMenu::insertDefaultItemActions(KMenu* popup)
     // insert 'Cut', 'Copy' and 'Paste'
     QAction* cutAction = collection->action(KStandardAction::name(KStandardAction::Cut));
     QAction* copyAction  = collection->action(KStandardAction::name(KStandardAction::Copy));
-    QAction* pasteAction = collection->action(KStandardAction::name(KStandardAction::Paste));
+    QAction* pasteAction = createPasteAction();
 
     popup->addAction(cutAction);
     popup->addAction(copyAction);
@@ -415,4 +414,20 @@ QString DolphinContextMenu::placesName(const KUrl& url) const
     return name;
 }
 
+QAction* DolphinContextMenu::createPasteAction()
+{
+    QAction* action = 0;
+    if ((m_selectedItems.count() == 1) && m_fileInfo.isDir()) {
+        action = new QAction(KIcon("edit-paste"), i18nc("@action:inmenu", "Paste Into Folder"), this);
+        const QMimeData* mimeData = QApplication::clipboard()->mimeData();
+        const KUrl::List pasteData = KUrl::List::fromMimeData(mimeData);
+        action->setEnabled(!pasteData.isEmpty());
+        connect(action, SIGNAL(triggered()), m_mainWindow, SLOT(pasteIntoFolder()));
+    } else {
+        action = m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::Paste));
+    }
+
+    return action;
+}
+
 #include "dolphincontextmenu.moc"