#include "versioncontrolobserver.h"
#include <dolphinmodel.h>
+#include "dolphin_versioncontrolsettings.h"
#include <kdirlister.h>
#include <klocale.h>
void VersionControlObserver::applyUpdatedItemStates()
{
+ if (m_plugin == 0) {
+ // The signal finished() has been emitted, but the thread has been marked
+ // as invalid in the meantime. Just ignore the signal in this case.
+ return;
+ }
+
if (!m_updateItemStatesThread->retrievedItems()) {
// ignore m_silentUpdate for an error message
emit errorMessage(i18nc("@info:status", "Update of version information failed."));
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;