[SCM] ktp-accounts-kcm packaging branch, master, updated. debian/15.12.1-1-1157-gc4589c5

Maximiliano Curia maxy at moszumanska.debian.org
Fri May 27 23:57:40 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-accounts-kcm.git;a=commitdiff;h=0423d55

The following commit has been merged in the master branch:
commit 0423d55d562a4d3ebcae6a13b259d29b7da519c5
Author: George Goldberg <grundleborg at googlemail.com>
Date:   Wed Jul 29 15:58:32 2009 +0000

    Load all plugins when we initialise the plugin manager.
    
    svn path=/trunk/playground/network/telepathy-accounts-kcm/; revision=1004210
---
 src/plugin-manager.cpp | 32 ++++++++++++++++++++++++++++++++
 src/plugin-manager.h   |  7 +++++++
 2 files changed, 39 insertions(+)

diff --git a/src/plugin-manager.cpp b/src/plugin-manager.cpp
index 46eab42..5840ecf 100644
--- a/src/plugin-manager.cpp
+++ b/src/plugin-manager.cpp
@@ -20,7 +20,10 @@
 
 #include "plugin-manager.h"
 
+#include "libkcmtelepathyaccounts/abstract-account-ui-plugin.h"
+
 #include <KDebug>
+#include <KServiceTypeTrader>
 
 PluginManager* PluginManager::s_self = 0;
 
@@ -31,6 +34,8 @@ PluginManager::PluginManager(QObject *parent)
 
     // Set up the singleton instance
     s_self = this;
+
+    loadPlugins();
 }
 
 PluginManager::~PluginManager()
@@ -54,3 +59,30 @@ PluginManager *PluginManager::instance()
     return s_self;
 }
 
+void PluginManager::loadPlugins()
+{
+    kDebug();
+    KService::List offers = KServiceTypeTrader::self()->query("KCMTelepathyAccounts/AccountUiPlugin");
+
+    KService::List::const_iterator iter;
+    for (iter = offers.begin(); iter < offers.end(); ++iter) {
+       QString error;
+       KService::Ptr service = *iter;
+
+        KPluginFactory *factory = KPluginLoader(service->library()).factory();
+
+        if (!factory) {
+            kWarning() << "KPluginFactory could not load the plugin:" << service->library();
+            continue;
+        }
+
+       AbstractAccountUiPlugin *plugin = factory->create<AbstractAccountUiPlugin>(this);
+
+       if (plugin) {
+           kDebug() << "Loaded plugin:" << service->name();
+           m_plugins.append(plugin);
+       } else {
+           kDebug() << error;
+       }
+    }
+}
diff --git a/src/plugin-manager.h b/src/plugin-manager.h
index 0f73448..85515b5 100644
--- a/src/plugin-manager.h
+++ b/src/plugin-manager.h
@@ -21,8 +21,11 @@
 #ifndef TELEPATHY_ACCOUNTS_KCM_PLUGIN_MANAGER_H
 #define TELEPATHY_ACCOUNTS_KCM_PLUGIN_MANAGER_H
 
+#include <QtCore/QList>
 #include <QtCore/QObject>
 
+class AbstractAccountUiPlugin;
+
 class PluginManager : public QObject
 {
     Q_OBJECT
@@ -36,6 +39,10 @@ public:
 private:
     explicit PluginManager(QObject *parent = 0);
     static PluginManager *s_self;
+
+    void loadPlugins();
+
+    QList<AbstractAccountUiPlugin*> m_plugins;
 };
 
 

-- 
ktp-accounts-kcm packaging



More information about the pkg-kde-commits mailing list