]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Allow to disable version control plugins. It's too late already for providing a UI...
authorPeter Penz <peter.penz19@gmail.com>
Sat, 12 Dec 2009 22:44:05 +0000 (22:44 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Sat, 12 Dec 2009 22:44:05 +0000 (22:44 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=1061740

src/CMakeLists.txt
src/settings/dolphin_versioncontrolsettings.kcfg [new file with mode: 0644]
src/settings/dolphin_versioncontrolsettings.kcfgc [new file with mode: 0644]
src/versioncontrol/versioncontrolobserver.cpp

index c41d7f9cccba081c8eca51b5e3daa757398d7d75..942b746ace722b4b9e899ace39270348d26d8b12 100644 (file)
@@ -70,7 +70,9 @@ kde4_add_kcfg_files(dolphinprivate_LIB_SRCS
     settings/dolphin_directoryviewpropertysettings.kcfgc
     settings/dolphin_detailsmodesettings.kcfgc
     settings/dolphin_iconsmodesettings.kcfgc
-    settings/dolphin_generalsettings.kcfgc)
+    settings/dolphin_generalsettings.kcfgc
+    settings/dolphin_versioncontrolsettings.kcfgc
+)
 
 kde4_add_library(dolphinprivate SHARED ${dolphinprivate_LIB_SRCS})
 
@@ -264,7 +266,9 @@ kde4_add_kcfg_files(kcm_dolphinviewmodes_PART_SRCS
     settings/dolphin_directoryviewpropertysettings.kcfgc
     settings/dolphin_detailsmodesettings.kcfgc
     settings/dolphin_iconsmodesettings.kcfgc
-    settings/dolphin_generalsettings.kcfgc)
+    settings/dolphin_generalsettings.kcfgc
+    settings/dolphin_versioncontrolsettings.kcfgc
+)
 
 kde4_add_kcfg_files(kcm_dolphinnavigation_PART_SRCS
     settings/dolphin_generalsettings.kcfgc)
@@ -298,10 +302,16 @@ install(TARGETS kcm_dolphingeneral DESTINATION ${PLUGIN_INSTALL_DIR} )
 
 ########### install files ###############
 
-install( FILES  dolphin.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
-install( FILES  settings/dolphin_directoryviewpropertysettings.kcfg settings/dolphin_generalsettings.kcfg settings/dolphin_columnmodesettings.kcfg settings/dolphin_iconsmodesettings.kcfg settings/dolphin_detailsmodesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR} )
-install( FILES  dolphinui.rc DESTINATION ${DATA_INSTALL_DIR}/dolphin )
-install( FILES  search/dolphinsearchcommands.desktop DESTINATION ${DATA_INSTALL_DIR}/dolphin )
+install( FILES dolphin.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+install( FILES settings/dolphin_directoryviewpropertysettings.kcfg
+               settings/dolphin_generalsettings.kcfg
+               settings/dolphin_columnmodesettings.kcfg
+               settings/dolphin_iconsmodesettings.kcfg
+               settings/dolphin_detailsmodesettings.kcfg
+               settings/dolphin_versioncontrolsettings.kcfg
+         DESTINATION ${KCFG_INSTALL_DIR} )
+install( FILES dolphinui.rc DESTINATION ${DATA_INSTALL_DIR}/dolphin )
+install( FILES search/dolphinsearchcommands.desktop DESTINATION ${DATA_INSTALL_DIR}/dolphin )
 install( FILES kcm/kcmdolphinviewmodes.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
 install( FILES kcm/kcmdolphinnavigation.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
 install( FILES kcm/kcmdolphinservices.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
diff --git a/src/settings/dolphin_versioncontrolsettings.kcfg b/src/settings/dolphin_versioncontrolsettings.kcfg
new file mode 100644 (file)
index 0000000..4f55a9a
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE kcfg SYSTEM "http://www.kde.org/standards/kcfg/1.0/kcfg.dtd">
+<kcfg>
+    <kcfgfile name="dolphinrc"/>
+    <group name="VersionControl">
+        <entry name="disabledPlugins" type="String">
+            <label>Disabled plugins</label>
+            <default></default>
+        </entry>
+    </group>
+</kcfg>
diff --git a/src/settings/dolphin_versioncontrolsettings.kcfgc b/src/settings/dolphin_versioncontrolsettings.kcfgc
new file mode 100644 (file)
index 0000000..232268f
--- /dev/null
@@ -0,0 +1,4 @@
+File=dolphin_versioncontrolsettings.kcfg
+ClassName=VersionControlSettings
+Singleton=true
+Mutators=true
index a5e509055e591be533435f33558b61f8827af73d..ebe59e049af49847e4f3c1351e2445046df9cf8e 100644 (file)
@@ -20,6 +20,7 @@
 #include "versioncontrolobserver.h"
 
 #include <dolphinmodel.h>
+#include "dolphin_versioncontrolsettings.h"
 
 #include <kdirlister.h>
 #include <klocale.h>
@@ -276,11 +277,16 @@ KVersionControlPlugin* VersionControlObserver::searchPlugin(const KUrl& director
     if (plugins.isEmpty()) {
         // No searching for plugins has been done yet. Query the KServiceTypeTrader for
         // all fileview version control plugins and remember them in 'plugins'.
+        const QString disabledPlugins = VersionControlSettings::disabledPlugins();
+        const QStringList disabledPluginsList = disabledPlugins.split(',');
+
         const KService::List pluginServices = KServiceTypeTrader::self()->query("FileViewVersionControlPlugin");
         for (KService::List::ConstIterator it = pluginServices.constBegin(); it != pluginServices.constEnd(); ++it) {
-            KVersionControlPlugin* plugin = (*it)->createInstance<KVersionControlPlugin>();
-            Q_ASSERT(plugin != 0);
-            plugins.append(plugin);
+            if (!disabledPluginsList.contains((*it)->name())) {
+                KVersionControlPlugin* plugin = (*it)->createInstance<KVersionControlPlugin>();
+                Q_ASSERT(plugin != 0);
+                plugins.append(plugin);
+            }
         }
         if (plugins.isEmpty()) {
             pluginsAvailable = false;