[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