# kio Library API Documentation

Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Source Files

# KMimeType Class Reference

Represent a mime type, like "text/plain". More...

`#include <kmimetype.h>`

Inheritance diagram for KMimeType:

[legend]
Collaboration diagram for KMimeType:

[legend]
List of all members.

## Public Types

typedef KSharedPtr< KMimeType > | Ptr
typedef QValueList< Ptr > | List

## Public Member Functions

| KMimeType (const QString &_fullpath, const QString &_type, const QString &_icon, const QString &_comment, const QStringList &_patterns)
| Constructor.
| KMimeType (const QString &_fullpath)
| Construct a mimetype and take all information from a config file.
| KMimeType (KDesktopFile *config)
| Construct a mimetype and take all information from a desktop file.
| KMimeType (QDataStream &_str, int offset)
virtual QString | icon (const QString &, bool) const
| Return the filename of the icon associated with the mimetype.
virtual QString | icon (const KURL &, bool) const
| This function differs from the above only in that a KURL may be provided instead of a QString for convenience.
virtual QPixmap | pixmap (KIcon::Group _group, int _force_size=0, int _state=0, QString *_path=0L) const
| Use this function only if you don't have a special URL for which you search a pixmap.
virtual QPixmap | pixmap (const KURL &_url, KIcon::Group _group, int _force_size=0, int _state=0, QString *_path=0L) const
| Find the pixmap for a given file of this mimetype.
QString | comment () const
virtual QString | comment (const QString &, bool) const
| The arguments are unused, but provided so that KMimeType derived classes can use them.
virtual QString | comment (const KURL &, bool) const
| This function differs from the above only in that a KURL may be provided instead of a QString for convenience.
const QStringList & | patterns () const
| Retrieve the list of patterns associated with the MIME Type.
virtual void | load (QDataStream &)
| Load the mimetype from a stream.
virtual void | save (QDataStream &)
| Save the mimetype to a stream.
virtual QVariant | property (const QString &_name) const
virtual QStringList | propertyNames () const

## Static Public Member Functions

QPixmap | pixmapForURL (const KURL &_url, mode_t _mode=0, KIcon::Group _group=KIcon::Desktop, int _force_size=0, int _state=0, QString *_path=0L)
| Convenience method to find the pixmap for a URL.
QString | iconForURL (const KURL &_url, mode_t _mode=0)
| The same functionality as pixmapForURL, but this method returns the name of the icon to load.
QString | favIconForURL (const KURL &url)
Ptr | mimeType (const QString &_name)
| Retrieve a pointer to the mime type `_name` or a pointer to the default mime type "application/octet-stream".
Ptr | findByURL (const KURL &_url, mode_t _mode=0, bool _is_local_file=false, bool _fast_mode=false)
| This function looks at mode_t first.
Ptr | findByPath (const QString &path, mode_t mode=0, bool fast_mode=false)
| Same as findByURL but for local files only - convenience method.
Ptr | findByContent (const QByteArray &data, int *accuracy=0)
| Tries to find out the MIME type of a data chunk by looking for certain magic numbers and characteristic strings in it.
Ptr | findByFileContent (const QString &fileName, int *accuracy=0)
| Tries to find out the MIME type of a file by looking for certain magic numbers and characteristic strings in it.
List | allMimeTypes ()
| Get all the mimetypes.
const QString & | defaultMimeType ()

## Protected Member Functions

void | loadInternal (QDataStream &)
void | init (KDesktopFile *)
virtual void | virtual_hook (int id, void *data)

## Static Protected Member Functions

void | errorMissingMimeType (const QString &_type)
| Signal a missing mime type.
void | buildDefaultType ()
| This function makes sure that the default mime type exists.
void | checkEssentialMimeTypes ()
| This function makes sure that vital mime types are installed.

## Protected Attributes

QStringList | m_lstPatterns

## Static Protected Attributes

bool | s_bChecked = false
| Returns `true` if check for vital mime types has been done.
Ptr | s_pDefaultType = 0L

## Detailed Description

Represent a mime type, like "text/plain".

The starting point you need is often the static methods. See also KServiceType.

Definition at line 43 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. Definition at line 280 of file kmimetype.cpp. Referenced by buildDefaultType().

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

| Construct a mimetype and take all information from a config file. Definition at line 287 of file kmimetype.cpp. References KSycocaEntry::isValid().

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

| Construct a mimetype and take all information from a desktop file. Definition at line 296 of file kmimetype.cpp. References KSycocaEntry::isValid().

## Member Function Documentation

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 KFolderType, and KDEDesktopMimeType.

Definition at line 87 of file kmimetype.h.

virtual QString KMimeType::icon | ( | const KURL & | ,
|  | bool |
| ) | const`[inline, virtual]`

| This function differs from the above only in that a KURL may be provided instead of a QString for convenience. Reimplemented in KFolderType, and KDEDesktopMimeType. Definition at line 93 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.
  _state | The icon state, one of: `KIcon::DefaultState`, `KIcon::ActiveState` or `KIcon::DisabledState`.
  _path | Output parameter to get the full path. Seldom needed.

Reimplemented in KDEDesktopMimeType.

Definition at line 361 of file kmimetype.cpp.

References KIconLoader::addExtraDesktopThemes(), KIconLoader::extraDesktopThemesAdded(), KServiceType::icon(), KGlobal::iconLoader(), QPixmap::isNull(), KIconLoader::loadIcon(), and pixmap().

Referenced by KDEDesktopMimeType::pixmap(), pixmap(), and pixmapForURL().

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.
  _state | The icon state, one of: KIcon::DefaultState, KIcon::ActiveState or KIcon::DisabledState.
  _path | Output parameter to get the full path. Seldom needed.

Reimplemented in KDEDesktopMimeType.

Definition at line 377 of file kmimetype.cpp.

References KIconLoader::addExtraDesktopThemes(), KIconLoader::extraDesktopThemesAdded(), KServiceType::icon(), KGlobal::iconLoader(), KURL::isLocalFile(), QPixmap::isNull(), KIconLoader::loadIcon(), and pixmap().

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.
  _group | The icon group where the icon is going to be used.
  _force_size | Override globally configured icon size.
  _state | The icon state, one of: KIcon::DefaultState, KIcon::ActiveState or KIcon::DisabledState.
  _path | Output parameter to get the full path. Seldom needed.

Definition at line 393 of file kmimetype.cpp.

References KIconLoader::addExtraDesktopThemes(), KIconLoader::extraDesktopThemesAdded(), iconForURL(), KGlobal::iconLoader(), QPixmap::isNull(), KIconLoader::loadIcon(), and pixmap().

Referenced by KURLComboBox::getPixmap(), KFileDialog::init(), KURLPixmapProvider::pixmapFor(), and KURLBarItem::setIcon().

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.

Definition at line 411 of file kmimetype.cpp.

References defaultMimeType(), favIconForURL(), findByURL(), KProtocolInfo::icon(), QString::isEmpty(), KURL::isLocalFile(), KURL::protocol(), and KGlobal::staticQString().

Referenced by KRecentDocument::add(), KBookmarkGroup::addBookmark(), KURIFilterData::iconName(), KFilePropsPlugin::KFilePropsPlugin(), KURLBarItemDialog::KURLBarItemDialog(), and pixmapForURL().

QString KMimeType::favIconForURL | ( | const KURL & | url | ) | `[static]`

Returns:
  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.

Definition at line 428 of file kmimetype.cpp.

References KGlobal::config(), KURL::isLocalFile(), KURL::protocol(), KConfigBase::readBoolEntry(), and QString::startsWith().

Referenced by iconForURL().

QString KMimeType::comment | ( |  | ) | const`[inline]`

Returns:
  The desriptive comment associated with the MIME type.

Reimplemented from KServiceType.

Definition at line 164 of file kmimetype.h.

Referenced by KDEDesktopMimeType::comment(), and KFolderType::comment().

virtual QString KMimeType::comment | ( | const QString & | ,
|  | bool |
| ) | const`[inline, virtual]`

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 KFolderType, and KDEDesktopMimeType.

Definition at line 172 of file kmimetype.h.

virtual QString KMimeType::comment | ( | const KURL & | ,
|  | bool |
| ) | const`[inline, virtual]`

| This function differs from the above only in that a KURL may be provided instead of a QString for convenience. Reimplemented in KFolderType, and KDEDesktopMimeType. Definition at line 178 of file kmimetype.h.

const QStringList& KMimeType::patterns | ( |  | ) | const`[inline]`

| Retrieve the list of patterns associated with the MIME Type. Definition at line 183 of file kmimetype.h.

void KMimeType::load | ( | QDataStream & |  | ) | `[virtual]`

| Load the mimetype from a stream. Reimplemented from KServiceType. Definition at line 321 of file kmimetype.cpp. References KServiceType::load().

void KMimeType::save | ( | QDataStream & |  | ) | `[virtual]`

| Save the mimetype to a stream. Reimplemented from KServiceType. Definition at line 333 of file kmimetype.cpp. References KServiceType::save().

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* !

See also:
  KServiceType::serviceType

Definition at line 131 of file kmimetype.cpp.

References buildDefaultType(), KSycocaEntry::isType(), and KSycocaEntry::Ptr.

Referenced by KFileTreeView::addBranch(), checkEssentialMimeTypes(), KFileDialog::currentFilterMimeType(), findByContent(), findByFileContent(), findByURL(), KFileItem::KFileItem(), and KFileItem::pixmap().

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

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 KMimeMagic is used 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.
  _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 152 of file kmimetype.cpp.

References checkEssentialMimeTypes(), defaultMimeType(), KProtocolInfo::defaultMimetype(), KProtocolInfo::determineMimetypeFromExtension(), QFile::encodeName(), QString::endsWith(), KURL::fileName(), KMimeMagic::findFileType(), QString::fromLatin1(), QString::isEmpty(), KURL::isLocalFile(), QString::isNull(), KMimeMagicResult::isValid(), KMimeMagicResult::mimeType(), mimeType(), KURL::path(), KURL::protocol(), KMimeMagic::self(), KIO::stat(), and KGlobal::staticQString().

Referenced by KFileItem::determineMimeType(), findByPath(), iconForURL(), KFileItem::init(), KFilePropsPlugin::KFilePropsPlugin(), KImageIO::mimeType(), KFileItem::pixmap(), and KOpenWithDlg::setServiceType().

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

| Same as findByURL but for local files only - convenience method. Equivalent to KURL u; u.setPath(path); return findByURL( u, mode, true, fast_mode ); Definition at line 253 of file kmimetype.cpp. References findByURL(), and KURL::setPath(). Referenced by KFilterBase::findFilterByFileName(), KFileMetaInfo::KFileMetaInfo(), and KTar::KTar().

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.

Returns application/octet-stream of the type can not be found this way. If accuracy is not a null pointer, *accuracy is set to the accuracy of the match (which is in the range 0..100).

Definition at line 260 of file kmimetype.cpp.

References KMimeMagicResult::accuracy(), defaultMimeType(), KMimeMagic::findBufferType(), KMimeMagicResult::isValid(), mimeType(), KMimeMagicResult::mimeType(), and KMimeMagic::self().

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. If accuracy is not a null pointer, *accuracy is set to the accuracy of the match (which is in the range 0..100).

Definition at line 270 of file kmimetype.cpp.

References KMimeMagicResult::accuracy(), defaultMimeType(), KMimeMagic::findFileType(), KMimeMagicResult::isValid(), mimeType(), KMimeMagicResult::mimeType(), and KMimeMagic::self().

Referenced by KFilePropsPlugin::KFilePropsPlugin(), and KTar::KTar().

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. Definition at line 147 of file kmimetype.cpp. Referenced by KApplicationPropsPlugin::KApplicationPropsPlugin().

const QString & KMimeType::defaultMimeType | ( |  | ) | `[static]`

Returns:
  name of the default mimetype Always application/octet-stream, but this method exists for performance purposes.

Definition at line 948 of file kmimetype.cpp.

References KGlobal::staticQString().

Referenced by buildDefaultType(), findByContent(), findByFileContent(), findByURL(), iconForURL(), KFileItem::init(), and KFilePropsPlugin::KFilePropsPlugin().

void KMimeType::errorMissingMimeType | ( | const QString & | _type | ) | `[static, protected]`

| Signal a missing mime type. Definition at line 124 of file kmimetype.cpp. References KMessageBox::sorry(). Referenced by buildDefaultType(), and checkEssentialMimeTypes().

void KMimeType::buildDefaultType | ( |  | ) | `[static, protected]`

| This function makes sure that the default mime type exists. Definition at line 65 of file kmimetype.cpp. References defaultMimeType(), errorMissingMimeType(), KSycocaEntry::isType(), KMimeType(), KSycocaEntry::Ptr, and KStandardDirs::resourceDirs(). Referenced by checkEssentialMimeTypes(), and mimeType().

void KMimeType::checkEssentialMimeTypes | ( |  | ) | `[static, protected]`

| This function makes sure that vital mime types are installed. Definition at line 87 of file kmimetype.cpp. References buildDefaultType(), KMessageBox::error(), errorMissingMimeType(), mimeType(), and s_bChecked. Referenced by findByURL().

## Member Data Documentation

bool KMimeType::s_bChecked = false`[static, protected]`

| Returns `true` if check for vital mime types has been done. Definition at line 63 of file kmimetype.cpp. Referenced by checkEssentialMimeTypes().

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

- kmimetype.h
- kmimetype.cpp

This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 13:19:16 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001