┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2009-12-12 22:44:05 +0000
committerPeter Penz <[email protected]>2009-12-12 22:44:05 +0000
commitaf7ced90477abfc96ee8e3fe0f3c8b2c5a8bcb84 (patch)
treee844ac52a8b104b13bbdb6b321bd8b78bfa149f0 /src
parentdf0b75e8c86178d11b656cc456b8a58354e22293 (diff)
Allow to disable version control plugins. It's too late already for providing a UI (string freeze...) and it should not be necessary to disable a plugin, but in the worst case (e. g. plugin crashes under certain circumstances) it is good to have a non-GUI fallback.
svn path=/trunk/KDE/kdebase/apps/; revision=1061740
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt22
-rw-r--r--src/settings/dolphin_versioncontrolsettings.kcfg11
-rw-r--r--src/settings/dolphin_versioncontrolsettings.kcfgc4
-rw-r--r--src/versioncontrol/versioncontrolobserver.cpp12
4 files changed, 40 insertions, 9 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c41d7f9cc..942b746ac 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -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
index 000000000..4f55a9a03
--- /dev/null
+++ b/src/settings/dolphin_versioncontrolsettings.kcfg
@@ -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
index 000000000..232268fe3
--- /dev/null
+++ b/src/settings/dolphin_versioncontrolsettings.kcfgc
@@ -0,0 +1,4 @@
+File=dolphin_versioncontrolsettings.kcfg
+ClassName=VersionControlSettings
+Singleton=true
+Mutators=true
diff --git a/src/versioncontrol/versioncontrolobserver.cpp b/src/versioncontrol/versioncontrolobserver.cpp
index a5e509055..ebe59e049 100644
--- a/src/versioncontrol/versioncontrolobserver.cpp
+++ b/src/versioncontrol/versioncontrolobserver.cpp
@@ -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;