]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/versioncontrol/versioncontrolobserver.cpp
Pass dolphin view as parent widget to plugins
[dolphin.git] / src / views / versioncontrol / versioncontrolobserver.cpp
index 175d362bc5528c5a5e30a79d0c7b45e340550fca..02ed216d116e6dd9ea90adb5fe87ed88789997aa 100644 (file)
@@ -13,9 +13,7 @@
 #include "updateitemstatesthread.h"
 
 #include <KLocalizedString>
-#include <KService>
-#include <KServiceTypeTrader>
-#include <KPluginLoader>
+#include <KPluginFactory>
 #include <KPluginMetaData>
 
 #include <QTimer>
@@ -137,7 +135,7 @@ void VersionControlObserver::slotItemsChanged(const KItemRangeList& itemRanges,
 {
     Q_UNUSED(itemRanges)
 
-    // Because "version" role is emitted by VCS plugin (ourselfs) we don't need to
+    // Because "version" role is emitted by VCS plugin (ourselves) we don't need to
     // analyze it and update directory item states information. So lets check if
     // there is only "version".
     if ( !(roles.count() == 1 && roles.contains("version")) ) {
@@ -165,7 +163,7 @@ void VersionControlObserver::verifyDirectory()
             // by an immediate verification.
             m_dirVerificationTimer->setInterval(500);
         } else {
-            // View was versionned but should not be anymore
+            // View was versioned but should not be anymore
             updateItemStates();
         }
     } else if ((m_plugin = searchPlugin(rootItem.url()))) {
@@ -281,15 +279,13 @@ void VersionControlObserver::initPlugins()
         // all fileview version control plugins and remember them in 'plugins'.
         const QStringList enabledPlugins = VersionControlSettings::enabledPlugins();
 
-        const QVector<KPluginMetaData> plugins = KPluginLoader::findPlugins(QStringLiteral("dolphin/vcs"));
+        const QVector<KPluginMetaData> plugins = KPluginMetaData::findPlugins(QStringLiteral("dolphin/vcs"));
 
         QSet<QString> loadedPlugins;
 
         for (const auto &p : plugins) {
             if (enabledPlugins.contains(p.name())) {
-                KPluginLoader loader(p.fileName());
-                KPluginFactory *factory = loader.factory();
-                KVersionControlPlugin *plugin = factory->create<KVersionControlPlugin>();
+                auto plugin = KPluginFactory::instantiatePlugin<KVersionControlPlugin>(p, parent()).plugin;
                 if (plugin) {
                     m_plugins.append(plugin);
                     loadedPlugins += p.name();
@@ -297,27 +293,6 @@ void VersionControlObserver::initPlugins()
             }
         }
 
-        // Deprecated: load plugins using KService. This mechanism will be removed with KF6
-        const KService::List pluginServices = KServiceTypeTrader::self()->query(QStringLiteral("FileViewVersionControlPlugin"));
-        for (KService::List::ConstIterator it = pluginServices.constBegin(); it != pluginServices.constEnd(); ++it) {
-            if (loadedPlugins.contains((*it)->property("Name", QVariant::String).toString())) {
-                continue;
-            }
-            if (enabledPlugins.contains((*it)->name())) {
-                KPluginLoader pluginLoader(*(*it));
-                // Need to cast to int, because pluginVersion() returns -1 as
-                // an unsigned int for plugins without versions.
-                if (int(pluginLoader.pluginVersion()) < 2) {
-                    qCWarning(DolphinDebug) << "Can't load old plugin" << (*it)->name();
-                    continue;
-                }
-                KVersionControlPlugin* plugin = (*it)->createInstance<KVersionControlPlugin>(this);
-                if (plugin) {
-                    m_plugins.append(plugin);
-                }
-            }
-        }
-
         for (auto &plugin : qAsConst(m_plugins)) {
             connect(plugin, &KVersionControlPlugin::itemVersionsChanged,
                 this, &VersionControlObserver::silentDirectoryVerification);