]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.cpp
Update name of the delete action in the .rc files
[dolphin.git] / src / dolphincontextmenu.cpp
index dfec76144dafd9210aa8b6f45458ded98e27ab53..890494ff8ac7ac37ea13b9d9c566a569cfdc32b1 100644 (file)
@@ -37,6 +37,7 @@
 #include <KJobWidgets>
 #include <KMimeTypeTrader>
 #include <KNewFileMenu>
+#include <KPluginMetaData>
 #include <KService>
 #include <KLocalizedString>
 #include <KStandardAction>
@@ -47,6 +48,7 @@
 #include <QKeyEvent>
 #include <QMenuBar>
 #include <QMenu>
+#include <QMimeDatabase>
 
 #include <panels/places/placesitem.h>
 #include <panels/places/placesitemmodel.h>
@@ -157,7 +159,7 @@ void DolphinContextMenu::openTrashContextMenu()
         if (uiDelegate.askDeleteConfirmation(QList<QUrl>(), KIO::JobUiDelegate::EmptyTrash, KIO::JobUiDelegate::DefaultConfirmation)) {
             KIO::Job* job = KIO::emptyTrash();
             KJobWidgets::setWindow(job, m_mainWindow);
-            job->ui()->setAutoErrorHandlingEnabled(true);
+            job->uiDelegate()->setAutoErrorHandlingEnabled(true);
         }
     }
 }
@@ -170,7 +172,7 @@ void DolphinContextMenu::openTrashItemContextMenu()
     QAction* restoreAction = new QAction(i18nc("@action:inmenu", "Restore"), m_mainWindow);
     addAction(restoreAction);
 
-    QAction* deleteAction = m_mainWindow->actionCollection()->action(QStringLiteral("delete"));
+    QAction* deleteAction = m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::DeleteFile));
     addAction(deleteAction);
 
     QAction* propertiesAction = m_mainWindow->actionCollection()->action(QStringLiteral("properties"));
@@ -281,7 +283,7 @@ void DolphinContextMenu::openItemContextMenu()
     fileItemActions.setItemListProperties(selectedItemsProps);
     addServiceActions(fileItemActions);
 
-    addFileItemPluginActions();
+    addFileItemPluginActions(fileItemActions);
 
     addVersionControlPluginActions();
 
@@ -304,7 +306,7 @@ void DolphinContextMenu::openItemContextMenu()
             if (selectedUrl.isValid()) {
                 PlacesItemModel model;
                 const QString text = selectedUrl.fileName();
-                PlacesItem* item = model.createPlacesItem(text, selectedUrl);
+                PlacesItem* item = model.createPlacesItem(text, selectedUrl, KIO::iconNameForUrl(selectedUrl));
                 model.appendItemToGroup(item);
                 model.saveBookmarks();
             }
@@ -353,7 +355,7 @@ void DolphinContextMenu::openViewportContextMenu()
     fileItemActions.setItemListProperties(baseUrlProperties);
     addServiceActions(fileItemActions);
 
-    addFileItemPluginActions();
+    addFileItemPluginActions(fileItemActions);
 
     addVersionControlPluginActions();
 
@@ -370,7 +372,8 @@ void DolphinContextMenu::openViewportContextMenu()
         if (container->url().isValid()) {
             PlacesItemModel model;
             PlacesItem* item = model.createPlacesItem(container->placesText(),
-                                                      container->url());
+                                                      container->url(),
+                                                      KIO::iconNameForUrl(container->url()));
             model.appendItemToGroup(item);
             model.saveBookmarks();
         }
@@ -403,9 +406,9 @@ void DolphinContextMenu::insertDefaultItemActions(const KFileItemListProperties&
             delete m_removeAction;
             m_removeAction = 0;
             addAction(m_mainWindow->actionCollection()->action(QStringLiteral("move_to_trash")));
-            addAction(m_mainWindow->actionCollection()->action(QStringLiteral("delete")));
+            addAction(m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::DeleteFile)));
         } else if (showDeleteAction && !showMoveToTrashAction) {
-            addAction(m_mainWindow->actionCollection()->action(QStringLiteral("delete")));
+            addAction(m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::DeleteFile)));
         } else {
             if (!m_removeAction) {
                 m_removeAction = new DolphinRemoveAction(this, m_mainWindow->actionCollection());
@@ -481,40 +484,9 @@ void DolphinContextMenu::addServiceActions(KFileItemActions& fileItemActions)
     fileItemActions.addServiceActionsTo(this);
 }
 
-void DolphinContextMenu::addFileItemPluginActions()
+void DolphinContextMenu::addFileItemPluginActions(KFileItemActions& fileItemActions)
 {
-    KFileItemListProperties props;
-    if (m_selectedItems.isEmpty()) {
-        props.setItems(KFileItemList() << baseFileItem());
-    } else {
-        props = selectedItemsProperties();
-    }
-
-    QString commonMimeType = props.mimeType();
-    if (commonMimeType.isEmpty()) {
-        commonMimeType = QStringLiteral("application/octet-stream");
-    }
-
-    const KService::List pluginServices = KMimeTypeTrader::self()->query(commonMimeType, QStringLiteral("KFileItemAction/Plugin"), QStringLiteral("exist Library"));
-    if (pluginServices.isEmpty()) {
-        return;
-    }
-
-    const KConfig config(QStringLiteral("kservicemenurc"), KConfig::NoGlobals);
-    const KConfigGroup showGroup = config.group("Show");
-
-    foreach (const KService::Ptr& service, pluginServices) {
-        if (!showGroup.readEntry(service->desktopEntryName(), true)) {
-            // The plugin has been disabled
-            continue;
-        }
-
-        KAbstractFileItemActionPlugin* abstractPlugin = service->createInstance<KAbstractFileItemActionPlugin>();
-        if (abstractPlugin) {
-            abstractPlugin->setParent(this);
-            addActions(abstractPlugin->actions(props, m_mainWindow));
-        }
-    }
+    fileItemActions.addPluginActionsTo(this);
 }
 
 void DolphinContextMenu::addVersionControlPluginActions()