[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdevelop
From: Jens Dagerbo <jens.dagerbo () swipnet ! se>
Date: 2005-01-23 2:32:27
Message-ID: 20050123023227.8EC3A1D1AB () office ! kde ! org
[Download RAW message or body]
CVS commit by dagerbo:
KDevPluginController update. Added loadPlugin() and unloadPlugin().
M +12 -0 lib/interfaces/kdevplugincontroller.h 1.4
M +30 -1 src/plugincontroller.cpp 1.45
M +4 -0 src/plugincontroller.h 1.25
--- kdevelop/lib/interfaces/kdevplugincontroller.h #1.3:1.4
@@ -41,4 +41,16 @@ class KDevPluginController: public QObje
public:
+ /**
+ * Returns a uniquely specified plugin. If it isn't already loaded, it will be.
+ * Use with caution! See extension for parameter details.
+ */
+ virtual KDevPlugin * loadPlugin( const QString & serviceType, const QString & constraint ) = 0;
+
+ /**
+ * Unloads the plugin specified by @p plugin
+ * @param plugin The plugin desktopEntryName of the plugin to unload
+ */
+ virtual void unloadPlugin( const QString & plugin ) = 0;
+
/**Unloads plugins specified by @p list.
@param list The list of plugin names to unload. plugin name corresponds
--- kdevelop/src/plugincontroller.cpp #1.44:1.45
@@ -273,4 +273,34 @@ KDevPlugin * PluginController::extension
}
+KDevPlugin * PluginController::loadPlugin( const QString & serviceType, const QString & constraint )
+{
+ KTrader::OfferList offers = KDevPluginController::query( serviceType, constraint );
+ if ( !offers.size() == 1 ) return 0;
+
+ KTrader::OfferList::const_iterator it = offers.constBegin();
+ QString name = (*it)->desktopEntryName();
+
+ KDevPlugin * plugin = 0;
+ if ( plugin = m_parts[ name ] )
+ {
+ return plugin;
+ }
+
+ if ( plugin = loadPlugin( *it ) )
+ {
+ m_parts.insert( name, plugin );
+ integratePart( plugin );
+ }
+
+ return plugin;
+}
+
+void PluginController::unloadPlugin( const QString & plugin )
+{
+ QStringList pluginList;
+ pluginList << plugin;
+ unloadPlugins( pluginList );
+}
+
KURL::List PluginController::profileResources(const QString &nameFilter)
{
--- kdevelop/src/plugincontroller.h #1.24:1.25
@@ -32,4 +32,8 @@ public:
static QStringList argumentsFromService( const KService::Ptr &service );
+
+ virtual KDevPlugin * loadPlugin( const QString & serviceType, const QString & constraint );
+ virtual void unloadPlugin( const QString & plugin );
+
QString currentProfile() const { return m_profile; }
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic