KParts::ComponentFactory Namespace Reference

Namespace for KParts components. More...

Enumerations

enum  ComponentLoadingError {
  ErrNoServiceFound = 1, ErrServiceProvidesNoLibrary, ErrNoLibrary, ErrNoFactory,
  ErrNoComponent
}

Functions

template<class T >
static T * createInstanceFromFactory (KLibFactory *factory, QObject *parent=0, const char *name=0, const QStringList &args=QStringList())
template<class T >
static T * createPartInstanceFromFactory (KParts::Factory *factory, QWidget *parentWidget=0, const char *widgetName=0, QObject *parent=0, const char *name=0, const QStringList &args=QStringList())
template<class T >
static T * createInstanceFromLibrary (const char *libraryName, QObject *parent=0, const char *name=0, const QStringList &args=QStringList(), int *error=0)
template<class T >
static T * createPartInstanceFromLibrary (const char *libraryName, QWidget *parentWidget=0, const char *widgetName=0, QObject *parent=0, const char *name=0, const QStringList &args=QStringList(), int *error=0)
template<class T >
static T * createInstanceFromService (const KService::Ptr &service, QObject *parent=0, const char *name=0, const QStringList &args=QStringList(), int *error=0)
template<class T >
static T * createPartInstanceFromService (const KService::Ptr &service, QWidget *parentWidget=0, const char *widgetName=0, QObject *parent=0, const char *name=0, const QStringList &args=QStringList(), int *error=0)
template<class T , class ServiceIterator >
static T * createInstanceFromServices (ServiceIterator begin, ServiceIterator end, QObject *parent=0, const char *name=0, const QStringList &args=QStringList(), int *error=0)
template<class T , class ServiceIterator >
static T * createPartInstanceFromServices (ServiceIterator begin, ServiceIterator end, QWidget *parentWidget=0, const char *widgetName=0, QObject *parent=0, const char *name=0, const QStringList &args=QStringList(), int *error=0)
template<class T >
static T * createInstanceFromQuery (const QString &serviceType, const QString &constraint=QString::null, QObject *parent=0, const char *name=0, const QStringList &args=QStringList(), int *error=0)
template<class T >
static T * createPartInstanceFromQuery (const QString &serviceType, const QString &constraint, QWidget *parentWidget=0, const char *widgetName=0, QObject *parent=0, const char *name=0, const QStringList &args=QStringList(), int *error=0)

Detailed Description

Namespace for KParts components.


Enumeration Type Documentation

This enum type defines the possible error cases that can happen when loading a component.

  • ErrNoServiceFound - no service implementing the given mimetype and fullfilling the given constraint expression can be found.
  • ErrServiceProvidesNoLibrary - the specified service provides no shared library
  • ErrNoLibrary - the specified library could not be loaded. Use KLibLoader::lastErrorMessage for details.
  • ErrNoFactory - the library does not export a factory for creating components
  • ErrNoComponent - the factory does not support creating components of the specified type

Definition at line 37 of file componentfactory.h.


Function Documentation

template<class T >
static T* KParts::ComponentFactory::createInstanceFromFactory ( KLibFactory factory,
QObject parent = 0,
const char *  name = 0,
const QStringList args = QStringList() 
) [static]

This template function allows to ask the given factory to create an instance of the given template type.

Example of usage:

     MyPlugin *plugin = KParts::ComponentFactory::createInstanceFromFactory<MyPlugin>( factory, parent );
Parameters:
factoryThe factory to ask for the creation of the component
parentThe parent object (see QObject constructor)
nameThe name of the object to create (see QObject constructor)
argsA list of string arguments, passed to the factory and possibly to the component (see KLibFactory)
Returns:
A pointer to the newly created object or a null pointer if the factory was unable to create an object of the given type.

Definition at line 61 of file componentfactory.h.

template<class T >
static T* KParts::ComponentFactory::createInstanceFromLibrary ( const char *  libraryName,
QObject parent = 0,
const char *  name = 0,
const QStringList args = QStringList(),
int *  error = 0 
) [static]

This template allows to load the specified library and ask the factory to create an instance of the given template type.

Parameters:
libraryNameThe library to open
parentThe parent object (see QObject constructor)
nameThe name of the object to create (see QObject constructor)
argsA list of string arguments, passed to the factory and possibly to the component (see KLibFactory)
error
Returns:
A pointer to the newly created object or a null pointer if the factory was unable to create an object of the given type.

Definition at line 127 of file componentfactory.h.

template<class T >
static T* KParts::ComponentFactory::createInstanceFromQuery ( const QString serviceType,
const QString constraint = QString::null,
QObject parent = 0,
const char *  name = 0,
const QStringList args = QStringList(),
int *  error = 0 
) [static]

This method creates and returns a plugin, from the trader query for a given serviceType.

Example:

 KMyAppPlugin* plugin = KParts::ComponentFactory::createInstanceFromQuery<KMyAppPlugin>( serviceType, QString::null, parentObject );
 if ( plugin ) {
     ....
 }
Parameters:
serviceTypethe type of service for which to find a plugin
constraintan optional constraint to pass to the trader (see KIO::KTrader)
parentthe parent object for the part itself
namethe name that will be given to the part
argsA list of string arguments, passed to the factory and possibly to the component (see KLibFactory)
errorThe int passed here will receive an error code in case of errors. (See enum ComponentLoadingError)
Returns:
A pointer to the newly created object or a null pointer if the factory was unable to create an object of the given type.

Definition at line 321 of file componentfactory.h.

template<class T >
static T* KParts::ComponentFactory::createPartInstanceFromFactory ( KParts::Factory factory,
QWidget parentWidget = 0,
const char *  widgetName = 0,
QObject parent = 0,
const char *  name = 0,
const QStringList args = QStringList() 
) [static]

This template function allows to ask the given kparts factory to create an instance of the given template type.

Example of usage:

     KViewPart *doc = KParts::ComponentFactory::createPartInstanceFromFactory<KViewPart>( factory, parent );
Parameters:
factoryThe factory to ask for the creation of the component
parentWidgetthe parent widget for the part
widgetNamethe name of the part's widget
parentThe parent object (see QObject constructor)
nameThe name of the object to create (see QObject constructor)
argsA list of string arguments, passed to the factory and possibly to the component (see KLibFactory)
Returns:
A pointer to the newly created object or a null pointer if the factory was unable to create an object of the given type.

Definition at line 95 of file componentfactory.h.

template<class T >
static T* KParts::ComponentFactory::createPartInstanceFromQuery ( const QString serviceType,
const QString constraint,
QWidget parentWidget = 0,
const char *  widgetName = 0,
QObject parent = 0,
const char *  name = 0,
const QStringList args = QStringList(),
int *  error = 0 
) [static]

This method creates and returns a KParts part from a serviceType (e.g.

a mimetype).

You can use this method to create a generic viewer - that can display any kind of file, provided that there is a ReadOnlyPart installed for it - in 5 lines:

 // Given the following: KURL url, QWidget* parentWidget and QObject* parentObject.
 QString mimetype = KMimeType::findByURL( url )->name();
 KParts::ReadOnlyPart* part = KParts::ComponentFactory::createPartInstanceFromQuery<KParts::ReadOnlyPart>( mimetype, QString::null, parentWidget, 0, parentObject, 0 );
 if ( part ) {
     part->openURL( url );
     part->widget()->show();  // also insert the widget into a layout, or simply use a QVBox as parentWidget
 }
Parameters:
serviceTypethe type of service for which to find a part, e.g. a mimetype
constraintan optional constraint to pass to the trader (see KTrader)
parentWidgetthe parent widget, will be set as the parent of the part's widget
widgetNamethe name that will be given to the part's widget
parentthe parent object for the part itself
namethe name that will be given to the part
argsA list of string arguments, passed to the factory and possibly to the component (see KLibFactory)
errorThe int passed here will receive an error code in case of errors. (See enum ComponentLoadingError)
Returns:
A pointer to the newly created object or a null pointer if the factory was unable to create an object of the given type.

Definition at line 370 of file componentfactory.h.

KDE Home | KDE Accessibility Home | Description of Access Keys