]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/versioncontrolobserver.cpp
Install fileviewversioncontrolplugin.desktop as servicetype, so that version control...
[dolphin.git] / src / versioncontrolobserver.cpp
index 03bba9f02a39d243ca48e89b5777aa1824717e94..9dc7daa410da7ff0a72a7a3b5444f8064f5815ac 100644 (file)
 #include "versioncontrolobserver.h"
 
 #include "dolphinmodel.h"
-#include "kversioncontrolplugin.h"
 
 #include <kdirlister.h>
 #include <klocale.h>
+#include <kservice.h>
+#include <kservicetypetrader.h>
+#include <kversioncontrolplugin.h>
 
 #include <QAbstractProxyModel>
 #include <QAbstractItemView>
@@ -182,6 +184,7 @@ void VersionControlObserver::silentDirectoryVerification()
     m_dirVerificationTimer->start();
 }
 
+#include <kdebug.h>
 void VersionControlObserver::verifyDirectory()
 {
     KUrl versionControlUrl = m_dirLister->url();
@@ -190,8 +193,15 @@ void VersionControlObserver::verifyDirectory()
     }
 
     if (m_plugin == 0) {
-        // TODO: just for testing purposes. A plugin approach will be used later.
-        m_plugin = new SubversionPlugin();
+        return; // TODO: does not work yet, m_plugin will always be 0
+
+        kDebug() << "Searching FileViewVersionControlPlugins...";
+        const KService::List plugins = KServiceTypeTrader::self()->query("FileViewVersionControlPlugin");
+        for (KService::List::ConstIterator it = plugins.constBegin(); it != plugins.constEnd(); ++it) {
+            kDebug() << "found plugin" << (*it)->desktopEntryName();           
+            m_plugin = (*it)->createInstance<KVersionControlPlugin>();
+        }
+
         connect(m_plugin, SIGNAL(infoMessage(const QString&)),
                 this, SIGNAL(infoMessage(const QString&)));
         connect(m_plugin, SIGNAL(errorMessage(const QString&)),