]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.cpp
Forwardport 773570:
[dolphin.git] / src / dolphincontextmenu.cpp
index a7a5ae567cc6d28d454396b1ac7e4cf80d5f0b7a..2dcb916a55c9fdb1b31ed096cec70a3152723f7b 100644 (file)
@@ -75,7 +75,7 @@ void DolphinContextMenu::open()
         m_context |= TrashContext;
     }
 
-    if (!m_fileInfo.isNull()) {
+    if (!m_fileInfo.isNull() && (m_selectedItems.count() > 0)) {
         m_context |= ItemContext;
         // TODO: handle other use cases like devices + desktop files
     }
@@ -109,7 +109,7 @@ void DolphinContextMenu::openTrashContextMenu()
     emptyTrashAction->setEnabled(!trashConfig.group("Status").readEntry("Empty", true));
     popup->addAction(emptyTrashAction);
 
-    QAction* addToPlacesAction = popup->addAction(KIcon("folder-bookmarks"),
+    QAction* addToPlacesAction = popup->addAction(KIcon("bookmark-new"),
                                                   i18nc("@action:inmenu Add current folder to places", "Add to Places"));
 
     QAction* propertiesAction = m_mainWindow->actionCollection()->action("properties");
@@ -175,7 +175,7 @@ void DolphinContextMenu::openItemContextMenu()
     // insert 'Bookmark This Folder' entry if exactly one item is selected
     QAction* addToPlacesAction = 0;
     if (m_fileInfo.isDir() && (m_selectedUrls.count() == 1)) {
-        addToPlacesAction = popup->addAction(KIcon("folder-bookmarks"),
+        addToPlacesAction = popup->addAction(KIcon("bookmark-new"),
                                              i18nc("@action:inmenu Add selected folder to places", "Add to Places"));
     }
 
@@ -198,7 +198,7 @@ void DolphinContextMenu::openItemContextMenu()
     if ((addToPlacesAction != 0) && (activatedAction == addToPlacesAction)) {
         const KUrl selectedUrl(m_fileInfo.url());
         if (selectedUrl.isValid()) {
-            DolphinSettings::instance().placesModel()->addPlace(selectedUrl.fileName(),
+            DolphinSettings::instance().placesModel()->addPlace(placesName(selectedUrl),
                                                                 selectedUrl);
         }
     } else if (openWithActions.contains(activatedAction)) {
@@ -219,7 +219,6 @@ void DolphinContextMenu::openItemContextMenu()
 
 void DolphinContextMenu::openViewportContextMenu()
 {
-    Q_ASSERT(m_fileInfo.isNull());
     KMenu* popup = new KMenu(m_mainWindow);
 
     addShowMenubarAction(popup);
@@ -231,7 +230,7 @@ void DolphinContextMenu::openViewportContextMenu()
     popup->addMenu(newMenu->menu());
     popup->addSeparator();
 
-    QAction* pasteAction = m_mainWindow->actionCollection()->action(KStandardAction::stdName(KStandardAction::Paste));
+    QAction* pasteAction = m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::Paste));
     popup->addAction(pasteAction);
 
     // setup 'View Mode' menu
@@ -253,7 +252,7 @@ void DolphinContextMenu::openViewportContextMenu()
 
     popup->addSeparator();
 
-    QAction* addToPlacesAction = popup->addAction(KIcon("folder-bookmarks"),
+    QAction* addToPlacesAction = popup->addAction(KIcon("bookmark-new"),
                                                   i18nc("@action:inmenu Add current folder to places", "Add to Places"));
     popup->addSeparator();
 
@@ -262,12 +261,12 @@ void DolphinContextMenu::openViewportContextMenu()
     QAction* action = popup->exec(QCursor::pos());
     if (action == propertiesAction) {
         const KUrl& url = m_mainWindow->activeViewContainer()->url();
-        KPropertiesDialog dialog(url);
+        KPropertiesDialog dialog(url, m_mainWindow);
         dialog.exec();
     } else if (action == addToPlacesAction) {
         const KUrl& url = m_mainWindow->activeViewContainer()->url();
         if (url.isValid()) {
-            DolphinSettings::instance().placesModel()->addPlace(url.fileName(), url);
+            DolphinSettings::instance().placesModel()->addPlace(placesName(url), url);
         }
     }
 
@@ -280,9 +279,9 @@ void DolphinContextMenu::insertDefaultItemActions(KMenu* popup)
     const KActionCollection* collection = m_mainWindow->actionCollection();
 
     // insert 'Cut', 'Copy' and 'Paste'
-    QAction* cutAction = collection->action(KStandardAction::stdName(KStandardAction::Cut));
-    QAction* copyAction  = collection->action(KStandardAction::stdName(KStandardAction::Copy));
-    QAction* pasteAction = collection->action(KStandardAction::stdName(KStandardAction::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));
 
     popup->addAction(cutAction);
     popup->addAction(copyAction);
@@ -407,4 +406,13 @@ void DolphinContextMenu::addShowMenubarAction(KMenu* menu)
     }
 }
 
+QString DolphinContextMenu::placesName(const KUrl& url) const
+{
+    QString name = url.fileName();
+    if (name.isEmpty()) {
+        name = url.host();
+    }
+    return name;
+}
+
 #include "dolphincontextmenu.moc"