diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dolphincontextmenu.cpp | 15 | ||||
| -rw-r--r-- | src/settings/services/servicessettingspage.cpp | 11 |
2 files changed, 20 insertions, 6 deletions
diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index cddcc8936..4371bcdfd 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -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)); } diff --git a/src/settings/services/servicessettingspage.cpp b/src/settings/services/servicessettingspage.cpp index 48e816be7..9adca9baf 100644 --- a/src/settings/services/servicessettingspage.cpp +++ b/src/settings/services/servicessettingspage.cpp @@ -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); } } |
