From 088fe1964fcf7150eb85dc66cbe3670489729f15 Mon Sep 17 00:00:00 2001
From: Nicolas Fella <nicolas.fella@gmx.de>
Date: Mon, 16 Mar 2020 10:39:08 +0100
Subject: Adapt to new KAccounts plugin system

Summary: KAccounts was ported from QPluginLoader to KPluginLoader in D27633. Adapt the KAccounts plugin to stay compatible

Test Plan: Added a google account. Got a notification that my drive can now be used

Reviewers: #kio_gdrive, elvisangelaccio

Reviewed By: #kio_gdrive, elvisangelaccio

Differential Revision: https://phabricator.kde.org/D27656
---
 kaccounts/CMakeLists.txt       |  1 +
 kaccounts/kaccountsplugin.cpp  | 10 ++++++++--
 kaccounts/kaccountsplugin.h    |  5 +----
 kaccounts/kaccountsplugin.json | 12 ++++++++++++
 4 files changed, 22 insertions(+), 6 deletions(-)
 create mode 100644 kaccounts/kaccountsplugin.json

diff --git a/kaccounts/CMakeLists.txt b/kaccounts/CMakeLists.txt
index 2a7e796..bb26513 100644
--- a/kaccounts/CMakeLists.txt
+++ b/kaccounts/CMakeLists.txt
@@ -4,6 +4,7 @@ find_package(Intltool REQUIRED)
 kaccounts_add_service(${CMAKE_CURRENT_SOURCE_DIR}/google-drive.service.in)
 
 kcoreaddons_add_plugin(kaccounts_gdrive
+    JSON kaccountsplugin.json
     SOURCES kaccountsplugin.cpp
     INSTALL_NAMESPACE kaccounts/daemonplugins)
 
diff --git a/kaccounts/kaccountsplugin.cpp b/kaccounts/kaccountsplugin.cpp
index 5499f13..3e6fb7c 100644
--- a/kaccounts/kaccountsplugin.cpp
+++ b/kaccounts/kaccountsplugin.cpp
@@ -25,8 +25,12 @@
 #include <KNotification>
 #include <KRun>
 
-GoogleDrivePlugin::GoogleDrivePlugin(QObject *parent)
-    : KAccountsDPlugin(parent)
+#include <KPluginFactory>
+
+K_PLUGIN_CLASS_WITH_JSON(GoogleDrivePlugin, "kaccountsplugin.json")
+
+GoogleDrivePlugin::GoogleDrivePlugin(QObject *parent, const QVariantList &args)
+    : KAccountsDPlugin(parent, args)
 {
 }
 
@@ -72,3 +76,5 @@ void GoogleDrivePlugin::onServiceDisabled(const Accounts::AccountId accountId, c
     Q_UNUSED(accountId)
     Q_UNUSED(service)
 }
+
+#include "kaccountsplugin.moc"
diff --git a/kaccounts/kaccountsplugin.h b/kaccounts/kaccountsplugin.h
index 82ae739..8613041 100644
--- a/kaccounts/kaccountsplugin.h
+++ b/kaccounts/kaccountsplugin.h
@@ -24,11 +24,8 @@
 class GoogleDrivePlugin : public KAccountsDPlugin
 {
     Q_OBJECT
-    Q_PLUGIN_METADATA(IID "org.kde.kaccounts.DPlugin")
-    Q_INTERFACES(KAccountsDPlugin)
-
 public:
-    GoogleDrivePlugin(QObject *parent = nullptr);
+    explicit GoogleDrivePlugin(QObject *parent, const QVariantList &args);
 
 public slots:
     void onAccountCreated(const Accounts::AccountId accountId, const Accounts::ServiceList &serviceList) override;
diff --git a/kaccounts/kaccountsplugin.json b/kaccounts/kaccountsplugin.json
new file mode 100644
index 0000000..89e8142
--- /dev/null
+++ b/kaccounts/kaccountsplugin.json
@@ -0,0 +1,12 @@
+{
+    "KPlugin": {
+        "Description": "Integrate KIO gdrive",
+        "EnabledByDefault": true,
+        "Icon": "system-file-manager",
+        "Id": "kaccounts_kio_gdrive",
+        "License": "GPL",
+        "Name": "KIO gdrive",
+        "Version": "0.1"
+    }
+}
+
-- 
cgit v1.1

