KUtils
KPluginSelector Class Reference
[Main classes, Plugin handling classes]
A widget to select what plugins to load and configure the plugins.
More...
#include <kpluginselector.h>
Signals | |
void | changed (bool) |
void | configCommitted (const QCString &instanceName) |
Public Member Functions | |
void | addPlugins (const QValueList< KPluginInfo * > &plugininfos, const QString &catname=QString::null, const QString &category=QString::null, KConfig *config=0) |
void | addPlugins (const KInstance *instance, const QString &catname=QString::null, const QString &category=QString::null, KConfig *config=0) |
void | addPlugins (const QString &instanceName, const QString &catname=QString::null, const QString &category=QString::null, KConfig *config=0) |
void | defaults () |
KPluginSelector (QWidget *parent, const char *name=0) | |
void | load () |
void | save () |
void | setShowEmptyConfigPage (bool) |
~KPluginSelector () |
Detailed Description
A widget to select what plugins to load and configure the plugins.It shows the list of available plugins on top (if there's more than one category this is a TabWidget) and the configuration of the selected plugin below that.
Since the user needs a way to know what a specific plugin does every plugin sould install a desktop file containing a name, comment and category field. The category is usefull for applications that can use different kinds of plugins like a playlist, skin or visualization.
The location of these desktop files is the share/apps/<instancename>/<plugindir> directory. But if you need you may use a different directory.
Often a program has more than one kind of plugin. In that case you want to make a visible distinction between those plugins. All you have to do is to create a KPluginSelectionWidget for every category and then add them all to the KPluginSelector.
- Since:
- 3.2
Definition at line 60 of file kpluginselector.h.
Constructor & Destructor Documentation
KPluginSelector::KPluginSelector | ( | QWidget * | parent, | |
const char * | name = 0 | |||
) |
KPluginSelector::~KPluginSelector | ( | ) |
Definition at line 547 of file kpluginselector.cpp.
Member Function Documentation
void KPluginSelector::addPlugins | ( | const QValueList< KPluginInfo * > & | plugininfos, | |
const QString & | catname = QString::null , |
|||
const QString & | category = QString::null , |
|||
KConfig * | config = 0 | |||
) |
Add a list of non-KParts plugins.
- Parameters:
-
plugininfos A list of KPluginInfo objects containing the necessary information for the plugins you want to add to the list. catname The translated name of the category. This is the name that is shown in the TabWidget if there is more than one category. category When you have different categories of KParts plugins you distinguish between the plugins using the Category key in the .desktop file. Use this parameter to select only those KParts plugins with the Category key == category
. Ifcategory
is not set the Category key is ignored and all plugins are shown.config The KConfig object that holds the state of the plugins being enabled or not. By default it will use KGlobal::config(). It is recommended to always pass a KConfig object if you use KSettings::PluginPage since you never know from where the page will be called (think global config app). For example KViewCanvas passes KSimpleConfig( "kviewcanvas" ).
Definition at line 629 of file kpluginselector.cpp.
void KPluginSelector::addPlugins | ( | const KInstance * | instance, | |
const QString & | catname = QString::null , |
|||
const QString & | category = QString::null , |
|||
KConfig * | config = 0 | |||
) |
Add a list of KParts plugins.
Convenience method for the one above. If not set explicitely, config
is set to instance->config().
Definition at line 621 of file kpluginselector.cpp.
void KPluginSelector::addPlugins | ( | const QString & | instanceName, | |
const QString & | catname = QString::null , |
|||
const QString & | category = QString::null , |
|||
KConfig * | config = 0 | |||
) |
Add a list of KParts plugins.
If you want to support non-KParts plugins use the following function.
The information about the plugins will be loaded from the share/apps/<instancename>/kpartplugins directory.
- Parameters:
-
instanceName The name of the KInstance of the plugin's parent. catname The translated name of the category. This is the name that is shown in the TabWidget if there is more than one category. category When you have different categories of KParts plugins you distinguish between the plugins using the Category key in the .desktop file. Use this parameter to select only those KParts plugins with the Category key == category
. Ifcategory
is not set the Category key is ignored and all plugins are shown.config The KConfig object that holds the state of the plugins being enabled or not. By default it should be instance->config(). It is recommended to always pass a KConfig object if you use KSettings::PluginPage since you never know from where the page will be called (think global config app). For example KViewCanvas passes KSimpleConfig( "kviewcanvas" ).
Definition at line 583 of file kpluginselector.cpp.
void KPluginSelector::changed | ( | bool | ) | [signal] |
Tells you whether the configuration is changed or not.
void KPluginSelector::configCommitted | ( | const QCString & | instanceName | ) | [signal] |
Emitted after the config of an embedded KCM has been saved.
The argument is the name of the parent component that needs to reload its config
void KPluginSelector::defaults | ( | ) |
void KPluginSelector::load | ( | ) |
Load the state of the plugins (selected or not) from the KPluginInfo objects.
For KParts plugins everything should work automatically. For your own type of plugins you might need to reimplement the KPluginInfo::isPluginEnabled() method. If that doesn't fit your needs you can also reimplement this method.
Definition at line 669 of file kpluginselector.cpp.
void KPluginSelector::save | ( | ) |
void KPluginSelector::setShowEmptyConfigPage | ( | bool | show | ) |
Set whether the area for showing the KCMs of the plugins should be hidden if the plugin doesn't have a KCM or whether the layout should rather stay static and only an message should be shown.
By default the config page is not hidden.
Definition at line 661 of file kpluginselector.cpp.
The documentation for this class was generated from the following files: