# class KService

###

Module | kdecore
Namespace |
Class | KService
Inherits | KSycocaEntry

Represent a service, like an application or plugin bound to one or several mimetypes (or servicetypes) as written in its desktop entry file.

The starting point you need is often the static methods, like createInstance(). The types of service a plugin provides is taken from the accompanying desktop file where the 'ServiceTypes=' field is used.

For a tutorial on how to build a plugin-loading mechanism and how to write plugins in general, see http://developer.kde.org/documentation/tutorials/developing-a-plugin-structure/index.html#developing_plugins (todo: port to kde4, create techbase article)

See also KServiceType

See also KServiceGroup Author Torben Weis

### enums

- DBusStartupType { DBusNone, DBusUnique, DBusMulti, DBusWait }

enum details

### methods

- KService (name, exec, icon)

  returns ctor

  Argument | Type | Default
  --- | --- | ---
  name | QString |
  exec | QString |
  icon | QString |

  Construct a temporary service with a given name, exec-line and icon.

  name - the name of the service

  exec - the executable

  icon - the name of the icon

- KService (fullpath)

  returns ctor
  KDE 4.1.0 and later only

  Argument | Type | Default
  --- | --- | ---
  fullpath | QString |

  Construct a service and take all information from a config file.

  fullpath - Full path to the config file.

- KService (config)

  returns ctor
  KDE 4.1.0 and later only

  Argument | Type | Default
  --- | --- | ---
  config | KDesktopFile |

  Construct a service and take all information from a desktop file.

  config - the desktop file to read

- KService (str, offset)

  returns ctor

  Argument | Type | Default
  --- | --- | ---
  str | QDataStream |
  offset | int |

  Internal Construct a service from a stream. The stream must already be positionned at the correct offset.

- KService (a0)

  returns ctor
  before KDE 4.1.0 only

  Argument | Type | Default
  --- | --- | ---
  a0 | QString |

- KService (a0)

  returns ctor
  before KDE 4.1.0 only

  Argument | Type | Default
  --- | --- | ---
  a0 | KDesktopFile |

- _k_accessServiceTypes ( )

  returns QVector<ServiceTypeAndPreference>
  Not implemented

- accessServiceTypes ( )

  returns QStringList
  before KDE 4.1.0 only

- actions ( )

  returns QList<KServiceAction>

  Returns the actions defined in this desktop file

- allServices ( )

  returns KService.List
  static

  Returns the whole list of services.

  Useful for being able to to display them in a list box, for example. More memory consuming than the ones above, don't use unless really necessary. Returns the list of all services

- allowAsDefault ( )

  returns bool

  Set to true if it is allowed to use this service as the default (main) action for the files it supports (e.g. Left Click in a file manager, or KRun in general).

  If not, then this service is only available in RMB popups, so it must be selected explicitly by the user in order to be used. Note that servicemenus supersede this functionality though, at least in konqueror.

  Returns true if the service may be used as the default (main) handler

- allowMultipleFiles ( )

  returns bool

  Checks whether this service can handle several files as startup arguments. Returns true if multiple files may be passed to this service at startup. False if only one file at a time may be passed.

- categories ( )

  returns QStringList

  Returns a list of VFolder categories. Returns the list of VFolder categories

- comment ( )

  returns QString

  Returns the descriptive comment for the service, if there is one. Returns the descriptive comment for the service, or QString() if not set

- dbusStartupType ( )

  returns KService.DBusStartupType

  Returns the DBUSStartupType supported by this service. Returns the DBUSStartupType supported by this service

- desktopEntryName ( )

  returns QString

  Returns the filename of the service desktop entry without any extension. E.g. "kppp" Returns the name of the desktop entry without path or extension, or QString() if not set

- desktopEntryPath ( )

  returns QString

  Returns the path to the location where the service desktop entry is stored.

  This is a relative path if the desktop entry was found in any of the locations pointed to by $KDEDIRS (e.g. "Internet/kppp.desktop") It is a full path if the desktop entry originates from another location.

  Deprecated use entryPath() instead

  Returns the path of the service's desktop file, or QString() if not set

- exec ( )

  returns QString

  Returns the executable. Returns the command that the service executes, or QString() if not set

- genericName ( )

  returns QString

  Returns the generic name for the service, if there is one (e.g. "Mail Client"). Returns the generic name, or QString() if not set

- hasMimeType (mimeTypePtr)

  returns bool

  Argument | Type | Default
  --- | --- | ---
  mimeTypePtr | KServiceType |

  Checks whether the mime supports this mime type

  mimeTypePtr - The name of the mime type you are interested in determining whether this service supports.

  Note that if you only have the name of the mime type, you have to look it up with KMimeType.mimeType( mimetype ) and use .data() on the result (this is because KService doesn't know KMimeType for dependency reasons)

  Warning this method will fail to return true if this KService isn't from ksycoca (i.e. it was created with a full path or a KDesktopFile) *and* the mimetype isn't explicited listed in the .desktop file but a parent mimetype is. For this reason you should generally get KServices with KMimeTypeTrader or one of the KService.serviceBy methods.

  Returns true if the mime type you specified is supported, otherwise false.

- hasServiceType (serviceTypePtr)

  returns bool

  Argument | Type | Default
  --- | --- | ---
  serviceTypePtr | QString |

  Checks whether the service supports this service type

  serviceTypePtr - The name of the service type you are interested in determining whether this service supports.

  Returns true if the service type you specified is supported, otherwise false.

- icon ( )

  returns QString

  Returns the name of the icon. Returns the icon associated with the service, or QString() if not set

- initialPreference ( )

  returns int

  What preference to associate with this service initially (before the user has had any chance to define a profile for it). The bigger the value, the most preferred the service is. Returns the service preference level of the service

- isApplication ( )

  returns bool

  Services are either applications (executables) or dlopened libraries (plugins). Returns true if this service is an application, i.e. it has Type=Application in its .desktop file and exec() will not be empty.

- keywords ( )

  returns QStringList

  Returns a list of descriptive keywords the service, if there are any. Returns the list of keywords

- library ( )

  returns QString

  Returns the name of the service's library. Returns the name of the library that contains the service's implementation, or QString() if not set

- locateLocal ( )

  returns QString

  Returns a path that can be used for saving changes to this service Returns path that can be used for saving changes to this service

- menuId ( )

  returns QString

  Returns the menu ID of the service desktop entry. The menu ID is used to add or remove the entry to a menu. Returns the menu ID

- newServicePath (showInMenu, suggestedName, menuId, reservedMenuIds)

  returns QString
  static

  Argument | Type | Default
  --- | --- | ---
  showInMenu | bool |
  suggestedName | QString |
  menuId | QString | 0
  reservedMenuIds | QStringList | 0

  Returns a path that can be used to create a new KService based on suggestedName.

  showInMenu - true, if the service should be shown in the KDE menu false, if the service should be hidden from the menu This argument isn't used anymore, use NoDisplay=true to hide the service.

  suggestedName - name to base the file on, if a service with such name already exists, a prefix will be added to make it unique.

  menuId - If provided, menuId will be set to the menu id to use for the KService

  reservedMenuIds - If provided, the path and menu id will be chosen in such a way that the new menu id does not conflict with any of the reservedMenuIds Returns The path to use for the new KService.

- noDisplay ( )

  returns bool

  Whether the entry should be suppressed in menus. Returns true to suppress this service

- parentApp ( )

  returns QString

  Name of the application this service belongs to. (Useful for e.g. plugins) Returns the parent application, or QString() if not set

- path ( )

  returns QString

  Returns the working directory to run the program in. Returns the working directory to run the program in, or QString() if not set

- pluginKeyword ( )

  returns QString

  The keyword to be used when constructing the plugin using KPluginFactory. The keyword is defined with X-KDE-PluginKeyword in the .desktop file and with K_REGISTER_PLUGIN_WITH_KEYWORD when implementing the plugin.

- property (_name, t)

  returns QVariant

  Argument | Type | Default
  --- | --- | ---
  _name | QString |
  t | QVariant.Type |

  Returns the requested property.

  _name - the name of the property

  t - the assumed type of the property Returns the property, or invalid if not found

  See also KServiceType

- serviceByDesktopName (_name)

  returns KService.Ptr
  static

  Argument | Type | Default
  --- | --- | ---
  _name | QString |

  Find a service by the name of its desktop file, not depending on its actual location (as long as it's under the applnk or service directories). For instance "konqbrowser" or "kcookiejar". Note that the ".desktop" extension is implicit.

  This is the recommended method (safe even if the user moves stuff) but note that it assumes that no two entries have the same filename.

  _name - the name of the configuration file Returns a pointer to the requested service or 0 if the service is unknown. Very important: Don't store the result in a KService* !

- serviceByDesktopPath (_path)

  returns KService.Ptr
  static

  Argument | Type | Default
  --- | --- | ---
  _path | QString |

  Find a service based on its path as returned by entryPath(). It's usually better to use serviceByStorageId() instead.

  _path - the path of the configuration file Returns a pointer to the requested service or 0 if the service is unknown. Very important: Don't store the result in a KService* !

- serviceByMenuId (_menuId)

  returns KService.Ptr
  static

  Argument | Type | Default
  --- | --- | ---
  _menuId | QString |

  Find a service by its menu-id

  _menuId - the menu id of the service Returns a pointer to the requested service or 0 if the service is unknown. Very important: Don't store the result in a KService* !

- serviceByName (_name)

  returns KService.Ptr
  static

  Argument | Type | Default
  --- | --- | ---
  _name | QString |

  Find a service by name, i.e. the translated Name field. You should never use this method with a literal name as argument, since the name is translated Name field of the desktop file. See serviceByStorageId instead.

  _name - the name to search Returns a pointer to the requested service or 0 if the service is unknown. Very important: Don't store the result in a KService* !

- serviceByStorageId (_storageId)

  returns KService.Ptr
  static

  Argument | Type | Default
  --- | --- | ---
  _storageId | QString |

  Find a service by its storage-id or desktop-file path. This function will try very hard to find a matching service.

  _storageId - the storage id or desktop-file path of the service Returns a pointer to the requested service or 0 if the service is unknown. Very important: Don't store the result in a KService* !

- serviceTypes ( )

  returns QStringList

  Returns the service types that this service supports. Returns the list of service types that are supported Note that this doesn't include inherited servicetypes or mimetypes, only the service types listed in the .desktop file.

- setMenuId (menuId)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  menuId | QString |

  Internal Set the menu id

- setTerminal (b)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  b | bool |

  Internal Sets whether to use a terminal or not

- setTerminalOptions (options)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  options | QString |

  Internal Sets the terminal options to use

- storageId ( )

  returns QString

  Returns a normalized ID suitable for storing in configuration files. It will be based on the menu-id when available and otherwise falls back to entryPath() Returns the storage ID

- substituteUid ( )

  returns bool

  Checks whether the service runs with a different user id. Returns true if the service has to be run under a different uid.

  See also username()

- terminal ( )

  returns bool

  Checks whethe the service should be run in a terminal. Returns true if the service is to be run in a terminal.

- terminalOptions ( )

  returns QString

  Returns any options associated with the terminal the service runs in, if it requires a terminal.

  The service must be a tty-oriented program. Returns the terminal options, or QString() if not set

- type ( )

  returns QString

  Returns the type of the service. Returns the type of the service ("Application" or "Service") Deprecated use isApplication()

- untranslatedGenericName ( )

  returns QString

  Returns the untranslated (US English) generic name for the service, if there is one (e.g. "Mail Client"). Returns the generic name, or QString() if not set

- username ( )

  returns QString

  Returns the user name, if the service runs with a different user id. Returns the username under which the service has to be run, or QString() if not set

  See also substututeUid()a

### enums - detail

- DBusStartupType { DBusNone, DBusUnique, DBusMulti, DBusWait }

  Describes the DBUS Startup type of the service.

- None - This service has no DBUS support
- Unique - This service provides a unique DBUS service.
The service name is equal to the desktopEntryName.
- Multi - This service provides a DBUS service which can be run
with multiple instances in parallel. The service name of an instance is equal to the desktopEntryName + "-" + the PID of the process.
- Wait - This service has no DBUS support, the launcher will wait
till it is finished.

| DBusNone | - 0 | - |
| DBusUnique | - | - |
| DBusMulti | - | - |
| DBusWait | - | - |