]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.cpp
Add support for KAbstractFileItemActionPlugin. Requires kdelibs > 4.6.0.
[dolphin.git] / src / dolphincontextmenu.cpp
index 7b8f1db30bb7e88b1d565e98ffffc2bd757f70ee..de55fa3c6d5dc12adca7f36e62e0b2aef5539813 100644 (file)
 #include <kactioncollection.h>
 #include <kdesktopfile.h>
 #include <kfileitemactionplugin.h>
+#include <kabstractfileitemactionplugin.h>
 #include <kfileitemactions.h>
 #include <kfileitemlistproperties.h>
 #include <kfileplacesmodel.h>
 #include <kglobal.h>
-#include <kiconloader.h>
+#include <KIconLoader>
 #include <kio/netaccess.h>
 #include <kmenu.h>
 #include <kmenubar.h>
@@ -44,7 +45,7 @@
 #include <konqmimedata.h>
 #include <konq_operations.h>
 #include <kservice.h>
-#include <klocale.h>
+#include <KLocale>
 #include <kpropertiesdialog.h>
 #include <kstandardaction.h>
 #include <kstandarddirs.h>
@@ -511,15 +512,17 @@ void DolphinContextMenu::addFileItemPluginActions()
             continue;
         }
 
+        // Old API (kdelibs-4.6.0 only)
         KFileItemActionPlugin* plugin = service->createInstance<KFileItemActionPlugin>();
-        if (plugin == 0) {
-            continue;
+        if (plugin) {
+            plugin->setParent(m_popup);
+            m_popup->addActions(plugin->actions(props, m_mainWindow));
         }
-
-        plugin->setParent(m_popup);
-        const QList<QAction*> actions = plugin->actions(props, m_mainWindow);
-        foreach (QAction* action, actions) {
-            m_popup->addAction(action);
+        // New API (kdelibs >= 4.6.1)
+        KAbstractFileItemActionPlugin* abstractPlugin = service->createInstance<KAbstractFileItemActionPlugin>();
+        if (abstractPlugin) {
+            abstractPlugin->setParent(m_popup);
+            m_popup->addActions(abstractPlugin->actions(props, m_mainWindow));
         }
     }
 }