]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.cpp
Merge branch 'Applications/16.12'
[dolphin.git] / src / dolphincontextmenu.cpp
index 9507ba0a8db7a54a32ab8eb9b2b875df98a37994..666b81c8d6c17b5b16ffef2bc96fb1f3578a7428 100644 (file)
@@ -34,6 +34,7 @@
 #include <KIO/EmptyTrashJob>
 #include <KIO/JobUiDelegate>
 #include <KIO/Paste>
+#include <kio_version.h>
 #include <KJobWidgets>
 #include <KMimeTypeTrader>
 #include <KNewFileMenu>
@@ -283,7 +284,7 @@ void DolphinContextMenu::openItemContextMenu()
     fileItemActions.setItemListProperties(selectedItemsProps);
     addServiceActions(fileItemActions);
 
-    addFileItemPluginActions();
+    addFileItemPluginActions(fileItemActions);
 
     addVersionControlPluginActions();
 
@@ -306,7 +307,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();
             }
@@ -355,7 +356,7 @@ void DolphinContextMenu::openViewportContextMenu()
     fileItemActions.setItemListProperties(baseUrlProperties);
     addServiceActions(fileItemActions);
 
-    addFileItemPluginActions();
+    addFileItemPluginActions(fileItemActions);
 
     addVersionControlPluginActions();
 
@@ -372,7 +373,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();
         }
@@ -483,8 +485,12 @@ void DolphinContextMenu::addServiceActions(KFileItemActions& fileItemActions)
     fileItemActions.addServiceActionsTo(this);
 }
 
-void DolphinContextMenu::addFileItemPluginActions()
+void DolphinContextMenu::addFileItemPluginActions(KFileItemActions& fileItemActions)
 {
+#if KIO_VERSION >= QT_VERSION_CHECK(5, 27, 0)
+    fileItemActions.addPluginActionsTo(this);
+#else
+    Q_UNUSED(fileItemActions);
     KFileItemListProperties props;
     if (m_selectedItems.isEmpty()) {
         props.setItems(KFileItemList() << baseFileItem());
@@ -498,10 +504,6 @@ void DolphinContextMenu::addFileItemPluginActions()
     }
 
     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");
 
@@ -551,8 +553,10 @@ void DolphinContextMenu::addFileItemPluginActions()
         if (abstractPlugin) {
             abstractPlugin->setParent(this);
             addActions(abstractPlugin->actions(props, m_mainWindow));
+            addedPlugins << jsonMetadata.pluginId();
         }
     }
+#endif
 }
 
 void DolphinContextMenu::addVersionControlPluginActions()