• Skip to content
  • Skip to link menu
KDE 4.6 API Reference
  • KDE API Reference
  • kdelibs
  • KDE Home
  • Contact Us
 

KIO

Public Member Functions

KAbstractFileItemActionPlugin Class Reference

Base class for KFileItemAction plugins. More...

#include <kabstractfileitemactionplugin.h>

Inheritance diagram for KAbstractFileItemActionPlugin:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 KAbstractFileItemActionPlugin (QObject *parent)
virtual ~KAbstractFileItemActionPlugin ()
virtual QList< QAction * > actions (const KFileItemListProperties &fileItemInfos, QWidget *parentWidget)=0

Detailed Description

Base class for KFileItemAction plugins.

Please try to use servicemenus first, if you simply need to add actions to the popup menu for one or more mimetypes.

However if you need some dynamic logic, like "only show this item if two files are selected", or "show a submenu with a variable number of actions", then you have to implement a KAbstractFileItemActionPlugin subclass.

As always plugins need to be exported via the K_EXPORT_PLUGIN macro like so:

 K_PLUGIN_FACTORY(MyActionPluginFactory, registerPlugin<MyActionPlugin>();)
 K_EXPORT_PLUGIN(MyActionPluginFactory("myactionplugin"))

A desktop file is necessary to register the plugin with the KDE plugin system:

 [Desktop Entry]
 Encoding=UTF-8
 Type=Service
 Name=My fancy action plugin
 X-KDE-Library=myactionplugin
 ServiceTypes=KFileItemAction/Plugin
 MimeType=some/mimetype;

Note the KFileItemAction/Plugin service type which is used by KFileItemActions::addServicePluginActionsTo() to load all available plugins and the MimeType field which specifies for which types of file items the setup() method should be called.

As with all KDE plugins one needs to install the plugin as a module. In cmake terms this looks roughly as follows:

 kde4_add_plugin(myactionplugin myactionplugin.cpp)
 target_link_libraries(myactionplugin ${KDE4_KIO_LIBS})
 install(TARGETS myactionplugin DESTINATION ${PLUGIN_INSTALL_DIR})
 install(FILES myactionplugin.desktop DESTINATION ${SERVICES_INSTALL_DIR})
Author:
Sebastian Trueg <trueg@kde.org>
Since:
4.6.1

Definition at line 81 of file kabstractfileitemactionplugin.h.


Constructor & Destructor Documentation

KAbstractFileItemActionPlugin::KAbstractFileItemActionPlugin ( QObject *  parent)

Definition at line 23 of file kabstractfileitemactionplugin.cpp.

KAbstractFileItemActionPlugin::~KAbstractFileItemActionPlugin ( ) [virtual]

Definition at line 28 of file kabstractfileitemactionplugin.cpp.


Member Function Documentation

virtual QList<QAction*> KAbstractFileItemActionPlugin::actions ( const KFileItemListProperties &  fileItemInfos,
QWidget *  parentWidget 
) [pure virtual]

Implement the actions method in the plugin in order to create actions.

Parameters:
fileItemInfosThe information about the selected file items. (Which file items, their common mimetype, etc.)
parentWidgetA parent widget for error messages or the like.
Returns:
List of actions, that should added to e. g. the popup menu. It is recommended to use the KAbstractFileItemActionPlugin as parent of the actions.

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

KIO

Skip menu "KIO"
  • 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
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.7.3
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