• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • kdelibs
  • Sitemap
  • Contact Us
 

KParts

KParts::Plugin

KParts::Plugin Class Reference

A plugin is the way to add actions to an existing KParts application, or to a Part. More...

#include <plugin.h>

Inheritance diagram for KParts::Plugin:

Inheritance graph
[legend]

List of all members.


Classes

struct  PluginInfo

Public Member Functions

virtual QString localXMLFile () const
 Plugin (QObject *parent=0)
virtual QString xmlFile () const
virtual ~Plugin ()

Static Public Member Functions

static void loadPlugins (QObject *parent, KXMLGUIClient *parentGUIClient, const KComponentData &instance, bool enableNewPluginsByDefault=true, int interfaceVersionRequired=0)
static void loadPlugins (QObject *parent, const QList< PluginInfo > &pluginInfos, const KComponentData &instance)
static void loadPlugins (QObject *parent, const QList< PluginInfo > &pluginInfos)
static void loadPlugins (QObject *parent, const KComponentData &instance)
static QList< Plugin * > pluginObjects (QObject *parent)

Protected Member Functions

virtual void setComponentData (const KComponentData &instance)

Static Protected Member Functions

static Plugin * loadPlugin (QObject *parent, const char *libname)
static QList< Plugin::PluginInfo > pluginInfos (const KComponentData &instance)

Detailed Description

A plugin is the way to add actions to an existing KParts application, or to a Part.

The XML of those plugins looks exactly like of the shell or parts, with one small difference: The document tag should have an additional attribute, named "library", and contain the name of the library implementing the plugin.

If you want this plugin to be used by a part, you need to install the rc file under the directory "data" (KDEDIR/share/apps usually)+"/instancename/kpartplugins/" where instancename is the name of the part's instance.

You should also install a "plugin info" .desktop file with the same name.

See also:
KPluginInfo
For a tutorial on how to write plugins, see http://developer.kde.org/documentation/tutorials/developing-a-plugin-structure/index.html#developing_plugins

Definition at line 54 of file plugin.h.


Constructor & Destructor Documentation

Plugin::Plugin ( QObject *  parent = 0  ) 

Construct a new KParts plugin.

Definition at line 49 of file plugin.cpp.

Plugin::~Plugin (  )  [virtual]

Destructor.

Definition at line 55 of file plugin.cpp.


Member Function Documentation

Plugin * Plugin::loadPlugin ( QObject *  parent,
const char *  libname 
) [static, protected]

For internal use only.

Returns:
The plugin created from the library libname

Definition at line 172 of file plugin.cpp.

void Plugin::loadPlugins ( QObject *  parent,
KXMLGUIClient *  parentGUIClient,
const KComponentData &  instance,
bool  enableNewPluginsByDefault = true,
int  interfaceVersionRequired = 0 
) [static]

Load the plugin libraries for the given instance, make the Plugin objects children of parent, and insert the plugin as a child GUI client of parentGUIClient.

This method uses the KConfig object of the given instance, to find out which plugins are enabled and which are disabled. What happens by default (i.e. for new plugins that are not in that config file) is controlled by enableNewPluginsByDefault. It can be overridden by the plugin if it sets the X-KDE-PluginInfo-EnabledByDefault key in the .desktop file (with the same name as the .rc file)

If a disabled plugin is already loaded it will be removed from the GUI factory and deleted.

If you change the binary interface offered by your part, you can avoid crashes from old plugins lying around by setting X-KDE-InterfaceVersion=2 in the .desktop files of the plugins, and passing 2 to interfaceVersionRequired, so that the old plugins are not loaded. Increase both numbers every time a binary incompatible change in the application's plugin interface is made.

This method is automatically called by KParts::Part and by KParts::MainWindow.

See also:
PartBase::setPluginLoadingMode, PartBase::setPluginInterfaceVersion
If you call this method in an already constructed GUI (like when the user has changed which plugins are enabled) you need to add the new plugins to the KXMLGUIFactory:
 if( factory() )
 {
   const QList<KParts::Plugin *> plugins = KParts::Plugin::pluginObjects( this );
   foreach ( KParts::Plugin * plugin, plugins )
     factory()->addClient( plugin );
 }

Definition at line 223 of file plugin.cpp.

void Plugin::loadPlugins ( QObject *  parent,
const QList< PluginInfo > &  pluginInfos,
const KComponentData &  instance 
) [static]

Load the plugin libraries specified by the list pluginInfos, make the Plugin objects children of parent, and use the given instance.

It is recommended to use the last loadPlugins method instead, to support enabling and disabling of plugins.

Definition at line 142 of file plugin.cpp.

void Plugin::loadPlugins ( QObject *  parent,
const QList< PluginInfo > &  pluginInfos 
) [static]

Load the plugin libraries specified by the list docs and make the Plugin objects children of parent .

It is recommended to use the last loadPlugins method instead, to support enabling and disabling of plugins.

Definition at line 166 of file plugin.cpp.

void Plugin::loadPlugins ( QObject *  parent,
const KComponentData &  instance 
) [static]

Load the plugin libraries from the directories appropriate to instance and make the Plugin objects children of parent.

It is recommended to use the last loadPlugins method instead, to support enabling and disabling of plugins.

Definition at line 137 of file plugin.cpp.

QString Plugin::localXMLFile (  )  const [virtual]

Reimplemented for internal reasons.

Definition at line 72 of file plugin.cpp.

QList< Plugin::PluginInfo > Plugin::pluginInfos ( const KComponentData &  instance  )  [static, protected]

Look for plugins in the instance's "data" directory (+"/kpartplugins").

Returns:
A list of QDomDocument s, containing the parsed xml documents returned by plugins.

Definition at line 85 of file plugin.cpp.

QList< KParts::Plugin * > Plugin::pluginObjects ( QObject *  parent  )  [static]

Returns a list of plugin objects loaded for parent.

This functions basically calls the queryList method of QObject to retrieve the list of child objects inheriting KParts::Plugin .

Definition at line 181 of file plugin.cpp.

void Plugin::setComponentData ( const KComponentData &  instance  )  [protected, virtual]

Definition at line 217 of file plugin.cpp.

QString Plugin::xmlFile (  )  const [virtual]

Reimplemented for internal reasons.

Definition at line 60 of file plugin.cpp.


The documentation for this class was generated from the following files:
  • plugin.h
  • plugin.cpp

KParts

Skip menu "KParts"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • Kross
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.5.7
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal