KMimeType Class Reference

`#include <kmimetype.h>`

Inheritance diagram for KMimeType:

## Public Types

typedef KSharedPtr< KMimeType > | Ptr
typedef QValueList< Ptr > | List
Public Types inherited from KServiceType
typedef KSharedPtr< KServiceType > | Ptr
typedef QValueList< Ptr > | List

## Public Member Functions

| KMimeType (const QString &_fullpath, const QString &_type, const QString &_icon, const QString &_comment, const QStringList &_patterns)
| KMimeType (const QString &_fullpath)
| KMimeType (KDesktopFile *config)
| KMimeType (QDataStream &_str, int offset)
virtual QString | icon (const QString &, bool) const
virtual QString | icon (const KURL &, bool) const
virtual QPixmap | pixmap (KIcon::Group group, int force_size=0, int state=0, QString *path=0L) const
virtual QPixmap | pixmap (const KURL &_url, KIcon::Group _group, int _force_size=0, int _state=0, QString *_path=0L) const
QString | comment () const
virtual QString | comment (const QString &, bool) const
virtual QString | comment (const KURL &, bool) const
const QStringList & | patterns () const
virtual void | load (QDataStream &qs)
virtual void | save (QDataStream &qs)
virtual QVariant | property (const QString &_name) const
virtual QStringList | propertyNames () const
QString | parentMimeType () const
bool | is (const QString &mimeTypeName) const
Public Member Functions inherited from KServiceType
| KServiceType (const QString &_fullpath, const QString &_name, const QString &_icon, const QString &_comment)
| KServiceType (const QString &_fullpath)
| KServiceType (KDesktopFile *config)
| KServiceType (QDataStream &_str, int offset)
QString | icon () const
QString | comment () const
QString | name () const
QString | desktopEntryPath () const
bool | isDerived () const
QString | parentServiceType () const
bool | inherits (const QString &servTypeName) const
bool | isValid () const
virtual QVariant::Type | propertyDef (const QString &_name) const
virtual QStringList | propertyDefNames () const
virtual const QMap< QString, QVariant::Type > & | propertyDefs () const
Ptr | parentType ()
void | addService (KService::Ptr service)
KService::List | services ()

## Static Public Member Functions

static QPixmap | pixmapForURL (const KURL &_url, mode_t _mode=0, KIcon::Group _group=KIcon::Desktop, int _force_size=0, int _state=0, QString *_path=0L)
static QString | iconForURL (const KURL &_url, mode_t _mode=0)
static QString | favIconForURL (const KURL &url)
static Ptr | mimeType (const QString &_name)
static Ptr | findByURL (const KURL &_url, mode_t _mode=0, bool _is_local_file=false, bool _fast_mode=false)
static Ptr | findByURL (const KURL &_url, mode_t _mode, bool _is_local_file, bool _fast_mode, bool *accurate)
static Ptr | findByPath (const QString &path, mode_t mode=0, bool fast_mode=false)
static Ptr | findByContent (const QByteArray &data, int *accuracy=0)
static Ptr | findByFileContent (const QString &fileName, int *accuracy=0)
static Format | findFormatByFileContent (const QString &fileName)
static List | allMimeTypes ()
static const QString & | defaultMimeType ()
static KMimeType::Ptr | defaultMimeTypePtr ()
static KMimeType::Ptr | diagnoseFileName (const QString &file, QString &pattern)
Static Public Member Functions inherited from KServiceType
static Ptr | serviceType (const QString &_name)
static KService::List | offers (const QString &_servicetype)
static List | allServiceTypes ()

## Protected Member Functions

void | loadInternal (QDataStream &)
void | init (KDesktopFile *)
int | patternsAccuracy () const
virtual void | virtual_hook (int id, void *data)
Protected Member Functions inherited from KServiceType
void | init (KDesktopFile *config)

## Static Protected Member Functions

static void | errorMissingMimeType (const QString &_type)
static void | buildDefaultType ()
static void | checkEssentialMimeTypes ()

## Protected Attributes

QStringList | m_lstPatterns
Protected Attributes inherited from KServiceType
QString | m_strName
QString | m_strIcon
QString | m_strComment
QMap< QString, QVariant > | m_mapProps
QMap< QString, QVariant::Type > | m_mapPropDefs
bool | m_bValid:1
bool | m_bDerived:1

## Static Protected Attributes

static bool | s_bChecked = false
static Ptr | s_pDefaultType = 0L

## Friends

class | KServiceTypeFactory

## Detailed Description

Represent a mime type, like "text/plain", and the data that is associated with it.

The starting point you need is often the static methods.

KMimeType inherits KServiceType because "text/plain" can be used to find services (apps and components) "which can open text/plain".

See also
  KServiceType

Definition at line 47 of file kmimetype.h.

## Constructor & Destructor Documentation

KMimeType::KMimeType | ( | const QString & | _fullpath,
|  | const QString & | _type,
|  | const QString & | _icon,
|  | const QString & | _comment,
|  | const QStringList & | _patterns
| ) |  |

Constructor.

You may pass in arguments to create a mimetype with specific properties.

Parameters

  _fullpath | the path to the configuration file (.desktop)
  _type | the mime type itself
  _icon | the name of the icon that represens the mime type
  _comment | a comment describing the mime type
  _patterns | a list of file globs that describes the names (or extensions) of the files with this mime type

Definition at line 355 of file kmimetype.cpp.

KMimeType::KMimeType | ( | const QString & | _fullpath | ) |

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

Parameters

  _fullpath | the path to the configuration file (.desktop)

Definition at line 362 of file kmimetype.cpp.

KMimeType::KMimeType | ( | KDesktopFile * | config | ) |

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

Parameters

  config | the desktop configuration file that describes the mime type

Definition at line 371 of file kmimetype.cpp.

## Member Function Documentation

KMimeType::List KMimeType::allMimeTypes | ( |  | ) |

static

Get all the mimetypes.

Useful for showing the list of available mimetypes. More memory consuming than the ones above, don't use unless really necessary.

Returns
  the list of all existing KMimeTypes

Definition at line 160 of file kmimetype.cpp.

void KMimeType::buildDefaultType | ( |  | ) |

static protected

This function makes sure that the default mime type exists.

Definition at line 68 of file kmimetype.cpp.

void KMimeType::checkEssentialMimeTypes | ( |  | ) |

static protected

This function makes sure that vital mime types are installed.

Definition at line 97 of file kmimetype.cpp.

QString KMimeType::comment | ( |  | ) | const

inline

Returns the descriptive comment associated with the MIME type.

Returns
  the descriptive comment associated with the MIME type

Definition at line 202 of file kmimetype.h.

virtual QString KMimeType::comment | ( | const QString & | ,
|  | bool |
| ) |  | const

inline virtual

Returns the descriptive comment associated with the MIME type.

The arguments are unused, but provided so that KMimeType derived classes can use them.

Returns
  The descriptive comment associated with the MIME type, if any.

Reimplemented in KDEDesktopMimeType, and KFolderType.

Definition at line 211 of file kmimetype.h.

virtual QString KMimeType::comment | ( | const KURL & | ,
|  | bool |
| ) |  | const

inline virtual

Returns the descriptive comment associated with the MIME type.

The arguments are unused, but provided so that KMimeType derived classes can use them.

Returns
  The descriptive comment associated with the MIME type, if any.

Reimplemented in KDEDesktopMimeType, and KFolderType.

Definition at line 220 of file kmimetype.h.

const QString & KMimeType::defaultMimeType | ( |  | ) |

static

Returns the name of the default mimetype.

Always application/octet-stream, but this method exists for performance purposes.

Returns
  the name of the default mime type, always "application/octet-stream"

Definition at line 1154 of file kmimetype.cpp.

KMimeType::Ptr KMimeType::defaultMimeTypePtr | ( |  | ) |

static

Returns the default mimetype.

Always application/octet-stream. This can be used to check the result of mimeType(name).

Returns
  the "application/octet-stream" mimetype pointer.

Since
  3.2

Definition at line 89 of file kmimetype.cpp.

void KMimeType::errorMissingMimeType | ( | const QString & | _type | ) |

static protected

Signal a missing mime type.

Parameters

  _type | the missinf mime type

Definition at line 134 of file kmimetype.cpp.

QString KMimeType::favIconForURL | ( | const KURL & | url | ) |

static

Return the "favicon" (see http://www.favicon.com) for the given `url`, if available.

Does NOT attempt to download the favicon, it only returns one that is already available.

If unavailable, returns QString::null.

Parameters

  url | the URL of the favicon

Returns
  the name of the favicon, or QString::null

Definition at line 528 of file kmimetype.cpp.

KMimeType::Ptr KMimeType::findByContent | ( | const QByteArray & | data,
|  | int * | accuracy = `0`
| ) |  |

static

Tries to find out the MIME type of a data chunk by looking for certain magic numbers and characteristic strings in it.

Parameters

  data | the data to examine
  accuracy | If not a null pointer, *accuracy is set to the accuracy of the match (which is in the range 0..100)

Returns
  a pointer to the KMimeType. application/octet-stream's KMimeType of the type can not be found this way.

Definition at line 311 of file kmimetype.cpp.

KMimeType::Ptr KMimeType::findByFileContent | ( | const QString & | fileName,
|  | int * | accuracy = `0`
| ) |  |

static

Tries to find out the MIME type of a file by looking for certain magic numbers and characteristic strings in it.

This function is similar to the previous one. Note that the file name is not used for determining the file type, it is just used for loading the file's contents.

Parameters

  fileName | the path to the file
  accuracy | If not a null pointer, *accuracy is set to the accuracy of the match (which is in the range 0..100)

Returns
  a pointer to the KMimeType. application/octet-stream's KMimeType of the type can not be found this way.

Definition at line 319 of file kmimetype.cpp.

KMimeType::Ptr KMimeType::findByPath | ( | const QString & | path,
|  | mode_t | mode = `0`,
|  | bool | fast_mode = `false`
| ) |  |

static

Finds a KMimeType with the given `_url`.

This function looks at mode_t first. If that does not help it looks at the extension. This is fine for FTP, FILE, TAR and friends, but is not for HTTP ( cgi scripts! ). You should use KRun instead, but this function returns immediately while KRun is async. If no extension matches, then the file will be examined if the URL a local file or "application/octet-stream" is returned otherwise.

Equivalent to

KURL u;
u.setPath(path);
return findByURL( u, mode, true, fast_mode );

Parameters

  path | the path to the file
  mode | the mode of the file (used, for example, to identify executables)
  fast_mode | If set to true no disk access is allowed to find out the mimetype. The result may be suboptimal, but it is fast.

Returns
  A pointer to the matching mimetype. 0L is never returned.

Definition at line 304 of file kmimetype.cpp.

KMimeType::Ptr KMimeType::findByURL | ( | const KURL & | _url,
|  | mode_t | _mode = `0`,
|  | bool | _is_local_file = `false`,
|  | bool | _fast_mode = `false`
| ) |  |

static

Finds a KMimeType with the given `_url`.

This function looks at mode_t first. If that does not help it looks at the extension. This is fine for FTP, FILE, TAR and friends, but is not for HTTP ( cgi scripts! ). You should use KRun instead, but this function returns immediately while KRun is async. If no extension matches, then the file will be examined if the URL a local file or "application/octet-stream" is returned otherwise.

Parameters

  _url | Is the right most URL with a filesystem protocol. It is up to you to find out about that if you have a nested URL. For example "http://localhost/mist.gz#gzip:/decompress" would have to pass the "http://..." URL part, while "file:/tmp/x.tar#tar:/src/test.gz#gzip:/decompress" would have to pass the "tar:/..." part of the URL, since gzip is a filter protocol and not a filesystem protocol.
  _mode | the mode of the file (used, for example, to identify executables)
  _is_local_file | true if the file is local
  _fast_mode | If set to true no disk access is allowed to find out the mimetype. The result may be suboptimal, but it is fast.

Returns
  A pointer to the matching mimetype. 0L is never returned. Very Important: Don't store the result in a KMimeType* !

Definition at line 165 of file kmimetype.cpp.

KMimeType::Format KMimeType::findFormatByFileContent | ( | const QString & | fileName | ) |

static

Returns whether a file has an internal format that is human readable, or that would be human readable after decompression.

Since
  3.2

Definition at line 330 of file kmimetype.cpp.

virtual QString KMimeType::icon | ( | const QString & | ,
|  | bool |
| ) |  | const

inline virtual

Return the filename of the icon associated with the mimetype.

The arguments are unused, but provided so that KMimeType-derived classes can use them (e.g. KFolderType uses the URL to return one out of 2 icons)

Returns
  The path to the icon associated with this MIME type.

Reimplemented in KDEDesktopMimeType, and KFolderType.

Definition at line 100 of file kmimetype.h.

virtual QString KMimeType::icon | ( | const KURL & | ,
|  | bool |
| ) |  | const

inline virtual

Return the filename of the icon associated with the mimetype.

The arguments are unused, but provided so that KMimeType-derived classes can use them (e.g. KFolderType uses the URL to return one out of 2 icons)

Returns
  The path to the icon associated with this MIME type.

Reimplemented in KDEDesktopMimeType, and KFolderType.

Definition at line 110 of file kmimetype.h.

QString KMimeType::iconForURL | ( | const KURL & | _url,
|  | mode_t | _mode = `0`
| ) |  |

static

The same functionality as pixmapForURL(), but this method returns the name of the icon to load.

You'll have to use KIconLoader to load the pixmap for it. The advantage of this method is that you can store the result, and then use it later on for any kind of size.

Parameters

  _url | URL for the file
  _mode | the mode of the file. The mode may modify the icon with overlays that show special properties of the icon. Use 0 for default

Returns
  the name of the icon. The name of a default icon if there is no icon for the mime type

Definition at line 503 of file kmimetype.cpp.

bool KMimeType::is | ( | const QString & | mimeTypeName | ) | const

Do not use name()=="somename" anymore, to check for a given mimetype.

For mimetype inheritance to work, use is("somename") instead. Warning, do not use inherits(), that's the servicetype inheritance concept!

Since
  3.2

Definition at line 559 of file kmimetype.cpp.

void KMimeType::load | ( | QDataStream & | qs | ) |

virtual

Load the mimetype from a stream.

Parameters

  qs | the stream to load from

Reimplemented from KServiceType.

Definition at line 413 of file kmimetype.cpp.

KMimeType::Ptr KMimeType::mimeType | ( | const QString & | _name | ) |

static

Retrieve a pointer to the mime type `_name` or a pointer to the default mime type "application/octet-stream".

0L is never returned.

Very important: Don't store the result in a KMimeType* !

Parameters

  _name | the name of the mime type

Returns
  the pointer to the KMimeType with the given `_name`, or a pointer to the application/octet-stream KMimeType if not found

See also
  KServiceType::serviceType

Definition at line 141 of file kmimetype.cpp.

QString KMimeType::parentMimeType | ( |  | ) | const

If this mimetype inherits from ("is also") another mimetype, return the name of the parent.

For instance a text/x-log is a special kind of text/plain, so the definition of text/x-log can say "X-KDE-IsAlso=text/plain". Or an smb-workgroup is a special kind of inode/directory, etc. This mechanism can also be used to rename mimetypes and preserve compat.

Note that this notion doesn't map to the servicetype inheritance mechanism, since an application that handles the specific type doesn't necessarily handle the base type. The opposite is true though.

Returns
  the parent mime type, or QString::null if not set

Since
  3.2

Definition at line 553 of file kmimetype.cpp.

const QStringList& KMimeType::patterns | ( |  | ) | const

inline

Retrieve the list of patterns associated with the MIME Type.

Returns
  a list of file globs that describe the file names (or, usually, the extensions) of files with this mime type

Definition at line 227 of file kmimetype.h.

QPixmap KMimeType::pixmap | ( | KIcon::Group | group,
|  | int | force_size = `0`,
|  | int | state = `0`,
|  | QString * | path = `0L`
| ) |  | const

virtual

Use this function only if you don't have a special URL for which you search a pixmap.

This function is useful to find out, which icon is usually chosen for a certain mime type. Since no URL is passed, it is impossible to obey icon hints in desktop entries for example.

Parameters

  group | The icon group where the icon is going to be used.
  force_size | Override globallly configured icon size. Use 0 for the default size
  state | The icon state, one of: `KIcon::DefaultState`, `KIcon::ActiveState` or `KIcon::DisabledState`.
  path | Output parameter to get the full path. Seldom needed. Ignored if 0

Returns
  the pixmap of the mime type, can be a default icon if not found

Reimplemented in KDEDesktopMimeType.

Definition at line 453 of file kmimetype.cpp.

QPixmap KMimeType::pixmap | ( | const KURL & | _url,
|  | KIcon::Group | _group,
|  | int | _force_size = `0`,
|  | int | _state = `0`,
|  | QString * | _path = `0L`
| ) |  | const

virtual

Find the pixmap for a given file of this mimetype.

Convenience method that uses icon(), but also locates and load the pixmap.

Parameters

  _url | URL for the file.
  _group | The icon group where the icon is going to be used.
  _force_size | Override globallly configured icon size. Use 0 for the default size
  _state | The icon state, one of: KIcon::DefaultState, KIcon::ActiveState or KIcon::DisabledState.
  _path | Output parameter to get the full path. Seldom needed. Ignored if 0

Returns
  the pixmap of the URL, can be a default icon if not found

Reimplemented in KDEDesktopMimeType.

Definition at line 469 of file kmimetype.cpp.

QPixmap KMimeType::pixmapForURL | ( | const KURL & | _url,
|  | mode_t | _mode = `0`,
|  | KIcon::Group | _group = `KIcon::Desktop`,
|  | int | _force_size = `0`,
|  | int | _state = `0`,
|  | QString * | _path = `0L`
| ) |  |

static

Convenience method to find the pixmap for a URL.

Call this one when you don't know the mimetype.

Parameters

  _url | URL for the file.
  _mode | the mode of the file. The mode may modify the icon with overlays that show special properties of the icon. Use 0 for default
  _group | The icon group where the icon is going to be used.
  _force_size | Override globally configured icon size. Use 0 for the default size
  _state | The icon state, one of: KIcon::DefaultState, KIcon::ActiveState or KIcon::DisabledState.
  _path | Output parameter to get the full path. Seldom needed. Ignored if 0

Returns
  the pixmap of the URL, can be a default icon if not found

Definition at line 485 of file kmimetype.cpp.

QVariant KMimeType::property | ( | const QString & | _name | ) | const

virtual

Returns the property with the given `_name`.

Parameters

  _name | the name of the property

Returns
  the value of the property

See also
  propertyNames()

Reimplemented from KServiceType.

Definition at line 433 of file kmimetype.cpp.

QStringList KMimeType::propertyNames | ( |  | ) | const

virtual

Retrieves a list of all properties associated with this KMimeType.

Returns
  a list of all property names

See also
  property()

Reimplemented from KServiceType.

Definition at line 441 of file kmimetype.cpp.

void KMimeType::save | ( | QDataStream & | qs | ) |

virtual

Save the mimetype to a stream.

Parameters

  qs | the stream to save to

Reimplemented from KServiceType.

Definition at line 425 of file kmimetype.cpp.

## Member Data Documentation

bool KMimeType::s_bChecked = false

static protected

true if check for vital mime types has been done.

Definition at line 459 of file kmimetype.h.

The documentation for this class was generated from the following files:

- kmimetype.h
- kmimetype.cpp

KDE Home | KDE Accessibility Home | Description of Access Keys