kio Library API Documentation

KMimeType Class Reference

Represent a mime type, like "text/plain", and the data that is associated with it. 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< PtrList

Public Methods

 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 ~KMimeType ()
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 QStringListpatterns () 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

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)
QString iconForURL (const KURL &_url, mode_t _mode=0)
QString favIconForURL (const KURL &url)
Ptr mimeType (const QString &_name)
Ptr findByURL (const KURL &_url, mode_t _mode=0, bool _is_local_file=false, bool _fast_mode=false)
Ptr findByURL (const KURL &_url, mode_t _mode, bool _is_local_file, bool _fast_mode, bool *accurate)
Ptr findByPath (const QString &path, mode_t mode=0, bool fast_mode=false)
Ptr findByContent (const QByteArray &data, int *accuracy=0)
Ptr findByFileContent (const QString &fileName, int *accuracy=0)
Format findFormatByFileContent (const QString &fileName)
List allMimeTypes ()
const QStringdefaultMimeType ()
KMimeType::Ptr defaultMimeTypePtr ()
KMimeType::Ptr diagnoseFileName (const QString &file, QString &pattern)

Protected Methods

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

Static Protected Methods

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

Protected Attributes

QStringList m_lstPatterns

Static Protected Attributes

bool s_bChecked = false
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 49 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 353 of file kmimetype.cpp.

Referenced by buildDefaultType().

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 360 of file kmimetype.cpp.

References KServiceType::isValid().

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 369 of file kmimetype.cpp.

References KServiceType::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 102 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 KFolderType, and KDEDesktopMimeType.

Definition at line 112 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 446 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. 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 462 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.
_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 478 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.

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 496 of file kmimetype.cpp.

References defaultMimeTypePtr(), 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]
 

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 513 of file kmimetype.cpp.

References DCOPRef::call(), KGlobal::config(), KURL::isLocalFile(), DCOPReply::isValid(), KURL::protocol(), and QString::startsWith().

Referenced by iconForURL().

QString KMimeType::comment   const [inline]
 

Returns the descriptive comment associated with the MIME type.

Returns:
the descriptive comment associated with the MIME type

Reimplemented from KServiceType.

Definition at line 204 of file kmimetype.h.

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

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

Definition at line 213 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 KFolderType, and KDEDesktopMimeType.

Definition at line 222 of file kmimetype.h.

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 229 of file kmimetype.h.

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 406 of file kmimetype.cpp.

References KSycocaEntry::load().

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 418 of file kmimetype.cpp.

References KSycocaEntry::save().

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 426 of file kmimetype.cpp.

References KServiceType::property().

Referenced by parentMimeType().

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 434 of file kmimetype.cpp.

References KServiceType::propertyNames().

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 140 of file kmimetype.cpp.

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

Referenced by KFileTreeView::addBranch(), checkEssentialMimeTypes(), KFileDialog::currentFilterMimeType(), KDirLister::doMimeFilter(), findByContent(), findByFileContent(), findByURL(), KService::hasServiceType(), KService::initialPreferenceForMimeType(), is(), KDesktopPropsPlugin::KDesktopPropsPlugin(), KFileItem::KFileItem(), KFileItem::pixmap(), and KFileDialog::updateAutoSelectExtension().

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 164 of file kmimetype.cpp.

References checkEssentialMimeTypes(), defaultMimeType(), KProtocolInfo::defaultMimetype(), defaultMimeTypePtr(), KProtocolInfo::determineMimetypeFromExtension(), QFile::encodeName(), QString::endsWith(), KURL::fileName(), KMimeMagic::findFileType(), QString::fromLatin1(), KURL::hasSubURL(), 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(), 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]
 

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 296 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.

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 if the type can not be found this way.

Definition at line 303 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.

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 if the type can not be found this way.

Definition at line 313 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.

Returns:
the list of all existing KMimeTypes

Definition at line 159 of file kmimetype.cpp.

Referenced by KApplicationPropsPlugin::KApplicationPropsPlugin().

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 1062 of file kmimetype.cpp.

References KGlobal::staticQString().

Referenced by buildDefaultType(), findByContent(), findByFileContent(), findByURL(), KFilePropsPlugin::KFilePropsPlugin(), and KIO::RenameDlg::RenameDlg().

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 88 of file kmimetype.cpp.

References buildDefaultType().

Referenced by findByURL(), KService::hasServiceType(), iconForURL(), KService::initialPreferenceForMimeType(), and KDesktopPropsPlugin::KDesktopPropsPlugin().

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 538 of file kmimetype.cpp.

References property(), and QVariant::toString().

Referenced by is().

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 544 of file kmimetype.cpp.

References QString::isEmpty(), mimeType(), KServiceType::name(), and parentMimeType().

void KMimeType::errorMissingMimeType const QString   _type [static, protected]
 

Signal a missing mime type.

Parameters:
_type  the missinf mime type

Definition at line 133 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 67 of file kmimetype.cpp.

References defaultMimeType(), errorMissingMimeType(), KSycocaEntry::isType(), KMimeType(), KSycocaEntry::Ptr, and KStandardDirs::resourceDirs().

Referenced by checkEssentialMimeTypes(), defaultMimeTypePtr(), and mimeType().

void KMimeType::checkEssentialMimeTypes   [static, protected]
 

This function makes sure that vital mime types are installed.

Definition at line 96 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]
 

true if check for vital mime types has been done.

Definition at line 65 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 kio Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sun May 16 22:03:33 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003