KDE 4.4 PyKDE API Reference

- KDE's Python API

# KFileItemActions Class Reference

`from PyKDE4.kio import *`

Inherits: QObject

## Detailed Description

This class creates and handles the actions for a url (or urls) in a popupmenu.

This includes:

- "open with <application>" actions, but also
- builtin services like mount/unmount for old-style device desktop files
- user-defined actions for a .desktop file, defined in the file itself (see the desktop entry standard)
- servicemenus actions, defined in .desktop files and selected based on the mimetype of the url

Since:
  4.3

## Methods
| __init__ (self, QObject parent=0)
| addOpenWithActionsTo (self, QMenu menu, QString traderConstraint)
int | addServiceActionsTo (self, QMenu menu)
KService.List | associatedApplications (self, QStringList mimeTypeList, QString traderConstraint)
KAction | preferredOpenWithAction (self, QString traderConstraint)
| setItemListProperties (self, KFileItemListProperties itemList)
| setParentWidget (self, QWidget widget)

## Method Documentation

__init__ | ( | self, |
|  | QObject | parent=0
| ) |  |  |

Creates a KFileItemActions instance. Note that this instance must stay alive for at least as long as the popupmenu; it has the slots for the actions created by addOpenWithActionsTo/addServiceActionsTo.

addOpenWithActionsTo | ( | self, |
|  | QMenu | menu,
|  | QString | traderConstraint
| ) |  |  |

Generate the "Open With <Application>" actions, and adds them to the menu. All actions are created as children of the menu.

Parameters:

  | menu | the QMenu where to add actions
  | traderConstraint | this constraint allows to exclude the current application from the "open with" list. Example: "DesktopEntryName != 'kfmclient'".

int addServiceActionsTo | ( | self, |
|  | QMenu | menu
| ) |  |  |

Generate the user-defined actions and submenus, and adds them to the menu. User-defined actions include: - builtin services like mount/unmount for old-style device desktop files - user-defined actions for a .desktop file, defined in the file itself (see the desktop entry standard) - servicemenus actions, defined in .desktop files and selected based on the mimetype of the url

When KFileItemListProperties.supportsWriting() is false, actions that modify the files are not shown. This is controlled by Require=Write in the servicemenu desktop files.

All actions are created as children of the menu.

Returns:
  the number of actions added

KService.List associatedApplications | ( | self, |
|  | QStringList | mimeTypeList,
|  | QString | traderConstraint
| ) |  |  |

Helper method used internally, can also be used for similar GUIs that show the list of associated applications. Used in KParts.BrowserOpenOrSaveQuestion for example.

This is basically a KMimeTypeTrader.query, but it also cleans up duplicates, and honors OnlyShowIn and NotShowIn fields.

Returns the applications associated with all the given mimetypes.

Parameters:

  | mimeTypeList | the mimetypes
  | traderConstraint | this optional constraint allows to exclude the current application from the "open with" list. Example: "DesktopEntryName != 'kfmclient'".

Returns:
  the list of services.

Since:
  4.4

KAction preferredOpenWithAction | ( | self, |
|  | QString | traderConstraint
| ) |  |  |

Returns an action for the preferred application only.

Parameters:

  | traderConstraint | this constraint allows to exclude the current application from the "open with" list. Example: "DesktopEntryName != 'kfmclient'".

Returns:
  the action - or 0 if no application was found.

setItemListProperties | ( | self, |
|  | KFileItemListProperties | itemList
| ) |  |  |

Sets all the data for the next instance of the popupmenu.

See also:
  KFileItemListProperties

setParentWidget | ( | self, |
|  | QWidget | widget
| ) |  |  |

Set the parent widget for any dialogs being shown.

This should normally be your mainwindow, not a popup menu, so that it still exists even after the popup is closed (e.g. error message from KRun) and so that QAction.setStatusTip can find a statusbar, too.