]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/versioncontrol/versioncontrolobserver.cpp
Fixed the signal connection that emits completed in Dolphin's KPart
[dolphin.git] / src / views / versioncontrol / versioncontrolobserver.cpp
index 20b059035e0d96c006eb97694efa99ab804097bf..bbabd2e4e115fd1fa3606bf4e822f1b5024a642b 100644 (file)
@@ -21,7 +21,6 @@
 
 #include "dolphin_versioncontrolsettings.h"
 
-#include <KDirLister>
 #include <KLocale>
 #include <KService>
 #include <KServiceTypeTrader>
@@ -30,6 +29,7 @@
 
 #include "updateitemstatesthread.h"
 
+#include <QFile>
 #include <QMutexLocker>
 #include <QTimer>
 
@@ -146,8 +146,8 @@ void VersionControlObserver::verifyDirectory()
         return;
     }
 
-    const KUrl versionControlUrl = m_model->rootItem().url();
-    if (!versionControlUrl.isLocalFile()) {
+    const KFileItem rootItem = m_model->rootItem();
+    if (rootItem.isNull() || !rootItem.url().isLocalFile()) {
         return;
     }
 
@@ -155,7 +155,7 @@ void VersionControlObserver::verifyDirectory()
         m_plugin->disconnect(this);
     }
 
-    m_plugin = searchPlugin(versionControlUrl);
+    m_plugin = searchPlugin(rootItem.url());
     if (m_plugin) {
         KVersionControlPlugin2* pluginV2 = qobject_cast<KVersionControlPlugin2*>(m_plugin);
         if (pluginV2) {
@@ -195,7 +195,7 @@ void VersionControlObserver::slotThreadFinished()
     UpdateItemStatesThread* thread = m_updateItemStatesThread;
     m_updateItemStatesThread = 0; // The thread deletes itself automatically (see updateItemStates())
 
-    if (!m_plugin) {
+    if (!m_plugin || !thread) {
         return;
     }
 
@@ -298,7 +298,6 @@ KVersionControlPlugin* VersionControlObserver::searchPlugin(const KUrl& director
     // Verify whether the current directory contains revision information
     // like .svn, .git, ...
     foreach (KVersionControlPlugin* plugin, plugins) {
-        // Use the KDirLister cache to check for .svn, .git, ... files
         const QString fileName = directory.path(KUrl::AddTrailingSlash) + plugin->fileName();
         if (QFile::exists(fileName)) {
             return plugin;