]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Hide context menu plugins unless enabled by default or by the user
authorFrank Reininghaus <frank78ac@googlemail.com>
Wed, 29 May 2013 05:48:11 +0000 (07:48 +0200)
committerFrank Reininghaus <frank78ac@googlemail.com>
Wed, 29 May 2013 05:48:11 +0000 (07:48 +0200)
REVIEW: 110685

src/dolphincontextmenu.cpp
src/settings/services/servicessettingspage.cpp

index cddcc8936c68a745758a286787aa1d72086e7779..4371bcdfd4d41436d289ac239c08a41a7ca873fd 100644 (file)
@@ -469,20 +469,25 @@ void DolphinContextMenu::addFileItemPluginActions()
     const KConfigGroup showGroup = config.group("Show");
 
     foreach (const KSharedPtr<KService>& service, pluginServices) {
-        if (!showGroup.readEntry(service->desktopEntryName(), true)) {
-            // The plugin has been disabled
-            continue;
-        }
-
         // Old API (kdelibs-4.6.0 only)
         KFileItemActionPlugin* plugin = service->createInstance<KFileItemActionPlugin>();
         if (plugin) {
+            if (!showGroup.readEntry(service->desktopEntryName(), true)) {
+                // The plugin has been disabled
+                continue;
+            }
+
             plugin->setParent(this);
             addActions(plugin->actions(props, m_mainWindow));
         }
         // New API (kdelibs >= 4.6.1)
         KAbstractFileItemActionPlugin* abstractPlugin = service->createInstance<KAbstractFileItemActionPlugin>();
         if (abstractPlugin) {
+            if (!showGroup.readEntry(service->desktopEntryName(), abstractPlugin->enabledByDefault())) {
+                // The plugin has been disabled
+                continue;
+            }
+
             abstractPlugin->setParent(this);
             addActions(abstractPlugin->actions(props, m_mainWindow));
         }
index 48e816be7dd4476082df52dd6e730b32575d48db..9adca9baf595366f26caa2217a3992ce22558f63 100644 (file)
@@ -22,6 +22,7 @@
 #include "dolphin_generalsettings.h"
 #include "dolphin_versioncontrolsettings.h"
 
+#include <kabstractfileitemactionplugin.h>
 #include <KConfig>
 #include <KConfigGroup>
 #include <KDesktopFile>
@@ -223,7 +224,15 @@ void ServicesSettingsPage::loadServices()
     foreach (const KSharedPtr<KService>& service, pluginServices) {
         const QString desktopEntryName = service->desktopEntryName();
         if (!isInServicesList(desktopEntryName)) {
-            const bool checked = showGroup.readEntry(desktopEntryName, true);
+            bool checked;
+
+            KAbstractFileItemActionPlugin* abstractPlugin = service->createInstance<KAbstractFileItemActionPlugin>();
+            if (abstractPlugin) {
+                checked = showGroup.readEntry(desktopEntryName, abstractPlugin->enabledByDefault());
+            } else {
+                checked = showGroup.readEntry(desktopEntryName, true);
+            }
+
             addRow(service->icon(), service->name(), desktopEntryName, checked);
         }
     }