]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Port away from deprecated KPluginLoader
authorAlexander Lohnau <alexander.lohnau@gmx.de>
Thu, 11 Nov 2021 18:18:27 +0000 (19:18 +0100)
committerAlexander Lohnau <alexander.lohnau@gmx.de>
Wed, 1 Dec 2021 22:10:58 +0000 (22:10 +0000)
src/kitemviews/kfileitemmodelrolesupdater.cpp
src/panels/terminal/terminalpanel.cpp
src/settings/contextmenu/contextmenusettingspage.cpp
src/settings/general/configurepreviewplugindialog.cpp
src/views/versioncontrol/kversioncontrolplugin.h
src/views/versioncontrol/versioncontrolobserver.cpp

index 3804a19074a19dd042543413e5cda0befac2de43..49657a9b1d73abdb369a994f7f2f54a227eb87a6 100644 (file)
@@ -18,7 +18,7 @@
 #include <KIconLoader>
 #include <KJobWidgets>
 #include <KOverlayIconPlugin>
-#include <KPluginLoader>
+#include <KPluginMetaData>
 #include <KSharedConfig>
 
 #ifdef HAVE_BALOO
@@ -30,6 +30,7 @@
 #include <QApplication>
 #include <QIcon>
 #include <QPainter>
+#include <QPluginLoader>
 #include <QElapsedTimer>
 #include <QTimer>
 
@@ -120,15 +121,16 @@ KFileItemModelRolesUpdater::KFileItemModelRolesUpdater(KFileItemModel* model, QO
     connect(m_directoryContentsCounter, &KDirectoryContentsCounter::result,
             this,                       &KFileItemModelRolesUpdater::slotDirectoryContentsCountReceived);
 
-    const auto plugins = KPluginLoader::instantiatePlugins(QStringLiteral("kf5/overlayicon"), nullptr, qApp);
-    for (QObject *it : plugins) {
-        auto plugin = qobject_cast<KOverlayIconPlugin*>(it);
+    const auto plugins = KPluginMetaData::findPlugins(QStringLiteral("kf5/overlayicon"));
+    for (const KPluginMetaData &data : plugins) {
+        auto instance = QPluginLoader(data.fileName()).instance();
+        auto plugin = qobject_cast<KOverlayIconPlugin *>(instance);
         if (plugin) {
             m_overlayIconsPlugin.append(plugin);
             connect(plugin, &KOverlayIconPlugin::overlaysChanged, this, &KFileItemModelRolesUpdater::slotOverlaysChanged);
         } else {
             // not our/valid plugin, so delete the created object
-            it->deleteLater();
+            delete instance;
         }
     }
 }
index 3af2cdcad87d355129510c53938e4084327188ef..9d30dcd62be640c4e6acbebf01f944ec2a3f7f5a 100644 (file)
@@ -15,7 +15,6 @@
 #include <KMountPoint>
 #include <KParts/ReadOnlyPart>
 #include <KPluginFactory>
-#include <KPluginLoader>
 #include <KProtocolInfo>
 #include <KShell>
 #include <kde_terminal_interface.h>
@@ -129,8 +128,7 @@ void TerminalPanel::showEvent(QShowEvent* event)
 
     if (!m_terminal) {
         m_clearTerminal = true;
-        KPluginLoader loader(QStringLiteral("konsolepart"));
-        KPluginFactory* factory = loader.factory();
+        KPluginFactory *factory = KPluginFactory::loadFactory(KPluginMetaData(QStringLiteral("konsolepart"))).plugin;
         m_konsolePart = factory ? (factory->create<KParts::ReadOnlyPart>(this)) : nullptr;
         if (m_konsolePart) {
             connect(m_konsolePart, &KParts::ReadOnlyPart::destroyed, this, &TerminalPanel::terminalExited);
index 8ebac2e12242f15dcb7efe10ebe28e4d2e7fcae8..0541b1020658d8098a27595175c49010d8282b4f 100644 (file)
@@ -307,7 +307,7 @@ void ContextMenuSettingsPage::loadServices()
 #endif
 
     // Load JSON-based plugins that implement the KFileItemActionPlugin interface
-    const auto jsonPlugins = KPluginLoader::findPlugins(QStringLiteral("kf5/kfileitemaction"));
+    const auto jsonPlugins = KPluginMetaData::findPlugins(QStringLiteral("kf5/kfileitemaction"));
 
     for (const auto &jsonMetadata : jsonPlugins) {
         const QString desktopEntryName = jsonMetadata.pluginId();
@@ -328,7 +328,7 @@ void ContextMenuSettingsPage::loadVersionControlSystems()
     // Create a checkbox for each available version control plugin
     QSet<QString> loadedPlugins;
 
-    const QVector<KPluginMetaData> plugins = KPluginLoader::findPlugins(QStringLiteral("dolphin/vcs"));
+    const QVector<KPluginMetaData> plugins = KPluginMetaData::findPlugins(QStringLiteral("dolphin/vcs"));
     for (const auto &plugin : plugins) {
         const QString pluginName = plugin.name();
         addRow(QStringLiteral("code-class"),
index 26b7deb88a357c61ff4f594b0b7c5753f664d577..b60ba5a0cfb4706cd294ecd6253b3dfd4673210d 100644 (file)
@@ -11,7 +11,7 @@
 #include <KIO/ThumbCreator>
 #include <KJobWidgets>
 #include <KLocalizedString>
-#include <KPluginLoader>
+#include <QPluginLoader>
 
 #include <QDialogButtonBox>
 #include <QPushButton>
@@ -25,7 +25,7 @@ ConfigurePreviewPluginDialog::ConfigurePreviewPluginDialog(const QString& plugin
     QDialog(parent)
 {
     QSharedPointer<ThumbCreator> previewPlugin;
-    const QString pluginPath = KPluginLoader::findPlugin(desktopEntryName);
+    const QString pluginPath = QPluginLoader(desktopEntryName).fileName();
     if (!pluginPath.isEmpty()) {
         newCreator create = (newCreator)QLibrary::resolve(pluginPath, "new_creator");
         if (create) {
index c908be24720288b4837cb4200b72070135df48b0..b528f41cc2f89f50a94174b7ba8037552189d02a 100644 (file)
@@ -45,7 +45,6 @@ class KFileItem;
  * - Add the following lines at the top of fileviewsvnplugin.cpp:
  *   <code>
  *   #include <KPluginFactory>
- *   #include <KPluginLoader>
  *   K_PLUGIN_CLASS_WITH_JSON(FileViewSvnPlugin, "fileviewsvnplugin.json")
  *   </code>
  *
index 6766aa479a0b57dd2c7454ec40d6ddc2d0dedc88..895ce6614ab332e8fd88e5a1342e7e036a1ac58f 100644 (file)
@@ -14,7 +14,6 @@
 
 #include <KLocalizedString>
 #include <KPluginFactory>
-#include <KPluginLoader>
 #include <KPluginMetaData>
 
 #include <QTimer>
@@ -280,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).plugin;
                 if (plugin) {
                     m_plugins.append(plugin);
                     loadedPlugins += p.name();