From: Peter Penz Date: Sat, 12 Dec 2009 22:44:05 +0000 (+0000) Subject: Allow to disable version control plugins. It's too late already for providing a UI... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/af7ced90477abfc96ee8e3fe0f3c8b2c5a8bcb84?ds=inline 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 --- 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 @@ + + + + + + + + + + + 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 +#include "dolphin_versioncontrolsettings.h" #include #include @@ -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(); - Q_ASSERT(plugin != 0); - plugins.append(plugin); + if (!disabledPluginsList.contains((*it)->name())) { + KVersionControlPlugin* plugin = (*it)->createInstance(); + Q_ASSERT(plugin != 0); + plugins.append(plugin); + } } if (plugins.isEmpty()) { pluginsAvailable = false;