configurable.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "configurable.h"
00020
00021
00022 #include <qstringlist.h>
00023
00024
00025 #include <kdebug.h>
00026 #include <kconfig.h>
00027
00028
00029 #include "pluginloader.h"
00030 #include "plugin.h"
00031
00032 using namespace Umbrello;
00033
00034
00035 Configurable::Configurable() :
00036 _plugins()
00037 {
00038 _plugins.setAutoDelete(false);
00039 }
00040
00041 Configurable::~Configurable()
00042 {
00043 unloadPlugins();
00044 }
00045
00046 bool
00047 Configurable::loadPlugins(KConfig *config,
00048 const QString &key)
00049 {
00050 bool ret = true;
00051
00052 QStringList names = config->readListEntry(key);
00053 for(uint i = 0; i != names.size(); i++) {
00054 const QString &name = names[i];
00055
00056 kdDebug() << "loading plugin " << name << endl;
00057
00058
00059 Plugin *plugin = PluginLoader::instance()->loadPlugin(name);
00060
00061
00062 if(plugin) {
00063 _plugins.append(plugin);
00064 }
00065 }
00066
00067 return ret;
00068 }
00069
00070 bool
00071 Configurable::unloadPlugins()
00072 {
00073
00074
00075 for(uint i = 0; i != _plugins.count(); i++) {
00076 Plugin *plugin = _plugins.at(i);
00077 plugin->unload();
00078 }
00079 _plugins.clear();
00080 return true;
00081 }
This file is part of the documentation for umbrello Version 3.1.0.