KDE 4.9 PyKDE API Reference

- KDE's Python API

# PartBase Class Reference

`from PyKDE4.kparts import *`

Inherits: KXMLGUIClient
Subclasses: KParts.MainWindow, KParts.Part
Namespace: KParts

## Detailed Description

Base class for all parts.

## Enumerations

PluginLoadingMode | { DoNotLoadPlugins, LoadPlugins, LoadPluginsIfEnabled }

## Methods

| __init__ (self)
| __init__ (self, KParts.PartBase a0)
| loadPlugins (self, QObject parent, KXMLGUIClient parentGUIClient, KComponentData componentData)
QObject | partObject (self)
| setComponentData (self, KComponentData componentData)
| setComponentData (self, KComponentData componentData, bool loadPlugins)
| setPartObject (self, QObject object)
| setPluginInterfaceVersion (self, int version)

## Method Documentation

__init__ | ( |  | self ) |

Constructor.

__init__ | ( | self, |
|  | KParts.PartBase | a0
| ) |  |  |

Constructor.

loadPlugins | ( | self, |
|  | QObject | parent,
|  | KXMLGUIClient | parentGUIClient,
|  | KComponentData | componentData
| ) |  |  |

Load the Plugins honoring the PluginLoadingMode.

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() )
     {
       QList<KParts.Plugin *> plugins = KParts.Plugin.pluginObjects( this );
       for(int i = 0; i != plugins.size(); ++i) {
          factory()->addClient( plugins[i] );
       }
     }

QObject partObject | ( |  | self ) |

setComponentData | ( | self, |
|  | KComponentData | componentData
| ) |  |  |

Set the componentData(KComponentData) for this part.

Call this *first* in the inherited class constructor, because it loads the i18n catalogs.

It is recommended to call setComponentData with loadPlugins set to false, and to load plugins at the end of your part constructor (in the case of KParts.MainWindow, plugins are automatically loaded in createGUI anyway, so set loadPlugins to false for KParts.MainWindow as well).

setComponentData | ( | self, |
|  | KComponentData | componentData,
|  | bool | loadPlugins
| ) |  |  |

Set the componentData(KComponentData) for this part.

Call this *first* in the inherited class constructor, because it loads the i18n catalogs.

It is recommended to call setComponentData with loadPlugins set to false, and to load plugins at the end of your part constructor (in the case of KParts.MainWindow, plugins are automatically loaded in createGUI anyway, so set loadPlugins to false for KParts.MainWindow as well).

setPartObject | ( | self, |
|  | QObject | object
| ) |  |  |

Internal method. Called by KParts.Part to specify the parent object for plugin objects.

Internal:

setPluginInterfaceVersion | ( | self, |
|  | int | version
| ) |  |  |

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 calling setPluginInterfaceVersion( 2 ), 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.

Parameters:

  | version | the interface version that plugins must have in order to be loaded.

For a KParts.Part: call this before setComponentData. For a KParts.MainWindow: call this before createGUI.

## Enumeration Documentation

PluginLoadingMode

We have three different policies, whether to load new plugins or not. The value in the KConfig object of the KComponentData object always overrides LoadPlugins and LoadPluginsIfEnabled.

Enumerator:

  DoNotLoadPlugins = 0 |
  LoadPlugins = 1 |
  LoadPluginsIfEnabled = 2 |