kio Library API Documentation

KMimeType Class Reference

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

#include <kmimetype.h>

Inheritance diagram for KMimeType:

KServiceType KSycocaEntry KShared KDEDesktopMimeType KExecMimeType KFolderType List of all members.

Public Types

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

Public Methods

 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.

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 QStringListpatterns () 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 Methods

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 QStringdefaultMimeType ()

Protected Methods

void init (KDesktopFile *)
virtual void virtual_hook (int id, void *data)

Static Protected Methods

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.


Static Protected Attributes

bool s_bChecked = false
 Returns true if check for vital mime types has been done.


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(), KIcon::Group, 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(), KIcon::Group, 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(), KIcon::Group, iconForURL(), KGlobal::iconLoader(), QPixmap::isNull(), KIconLoader::loadIcon(), and pixmap().

Referenced by KURLComboBox::getPixmap(), KFileDialog::init(), KURLPixmapProvider::pixmapFor(), KIO::RenameDlg::RenameDlg(), 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(), 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().

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(), and KGlobal::staticQString().

Referenced by KFileItem::determineMimeType(), findByPath(), iconForURL(), KFileItem::init(), KFileMetaInfo::KFileMetaInfo(), 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(), 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(), KFilePropsPlugin::KFilePropsPlugin(), and KIO::RenameDlg::RenameDlg().

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(), KMimeType(), 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:
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.0.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Oct 8 12:21:36 2003 by doxygen 1.2.18 written by Dimitri van Heesch, © 1997-2001