# class KMimeType

###

Module | kdecore
Namespace |
Class | KMimeType
Inherits | KServiceType

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

### enums

- FindByNameOption { DontResolveAlias, ResolveAliases }

enum details

### methods

- KMimeType (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

- KMimeType (fullpath, name, comment)

  returns ctor

  Argument | Type | Default
  --- | --- | ---
  fullpath | QString |
  name | QString |
  comment | QString |

  Construct a mimetype and take all information from an XML file.

  fullpath - the path to the xml that describes the mime type

  name - the name of the mimetype (usually the end of the path)

  comment - the comment associated with the mimetype

- KMimeType (dd)

  returns ctor
  Not implemented

  Argument | Type | Default
  --- | --- | ---
  dd | KMimeTypePrivate |

  Internal Construct a service from a stream.

  The stream must already be positioned at the correct offset

- KMimeType (dd, name, comment)

  returns ctor
  Not implemented

  Argument | Type | Default
  --- | --- | ---
  dd | KMimeTypePrivate |
  name | QString |
  comment | QString |

  Construct a mimetype and take all information from an XML file.

  fullpath - the path to the xml that describes the mime type

  name - the name of the mimetype (usually the end of the path)

  comment - the comment associated with the mimetype

- allMimeTypes ( )

  returns KMimeType.List
  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

- allParentMimeTypes ( )

  returns QStringList
  KDE 4.1.0 and later only

  Return all parent mimetypes of this mimetype, direct or indirect. This includes the parent(s) of its parent(s), etc. If this mimetype is an alias, the list also contains the canonical name for this mimetype.

  The usual reason to use this method is to look for a setting which is stored per mimetype (like PreviewJob does). @since 4.1

- comment (url)

  returns QString

  Argument | Type | Default
  --- | --- | ---
  url | KUrl | KUrl()

  Returns the descriptive comment associated with the MIME type. The url argument is unused, but provided so that KMimeType derived classes can use it.

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

- defaultMimeType ( )

  returns QString
  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"

- defaultMimeTypePtr ( )

  returns KMimeType.Ptr
  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.

- extractKnownExtension (fileName)

  returns QString
  static

  Argument | Type | Default
  --- | --- | ---
  fileName | QString |

  Determines the extension from a filename (or full path) using the mimetype database. This allows to extract "tar.bz2" for foo.tar.bz2 but still return "txt" for my.doc.with.dots.txt

- favIconForUrl (url)

  returns QString
  static

  Argument | Type | Default
  --- | --- | ---
  url | KUrl |

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

  url - the URL of the favicon Returns the name of the favicon, or QString()

- findByContent (data)

  returns KMimeType.Ptr, int (accuracy)
  static

  Argument | Type | Default
  --- | --- | ---
  data | QByteArray |

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

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

- findByFileContent (fileName)

  returns KMimeType.Ptr, int (accuracy)
  static

  Argument | Type | Default
  --- | --- | ---
  fileName | QString |

  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.

  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, or the default mimetype (application/octet-stream) if the file cannot be opened.

- findByNameAndContent (name, data, mode)

  returns KMimeType.Ptr, int (accuracy)
  static

  Argument | Type | Default
  --- | --- | ---
  name | QString |
  data | QByteArray |
  mode | mode_t | 0

  Tries to find out the MIME type of filename/url and a data chunk. Whether to trust the extension or the data depends on the results of both approaches, and is determined automatically.

  This method is useful for instance in the get() method of kioslaves, and anywhere else where a filename is associated with some data which is available immediately.

  name - the filename or url representing this data. Only used for the extension, not used as a local filename.

  data - the data to examine when the extension isn't conclusive in itself

  mode - the mode of the file (used, for example, to identify executables)

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

- findByPath (path, mode, fast_mode)

  returns KMimeType.Ptr, int (accuracy)
  static

  Argument | Type | Default
  --- | --- | ---
  path | QString |
  mode | mode_t | 0
  fast_mode | bool | 0

  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 contents will be examined if the URL is a local file, or "application/octet-stream" is returned otherwise.

  Equivalent to

      KUrl u;
      u.setPath(path);
      return findByUrl( u, mode, true, fast_mode );

  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.

  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 matching mimetype. 0 is never returned.

- findByUrl (url, mode, is_local_file, fast_mode)

  returns KMimeType.Ptr, int (accuracy)
  static

  Argument | Type | Default
  --- | --- | ---
  url | KUrl |
  mode | mode_t | 0
  is_local_file | bool | 0
  fast_mode | bool | 0

  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 contents will be examined if the URL is a local file, or "application/octet-stream" is returned otherwise.

  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; false if not, or if you don't know.

  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.

  accuracy - if set, the accuracy of the result, between 0 and 100. For instance, when the extension was used to determine the mimetype, the accuracy is set to 80, as per the shared-mime spec. Some 'magic' rules (used when !fast_mode) have an accuracy > 80 (and have priority over the filename, others are < 80).

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

- iconName (url)

  returns QString

  Argument | Type | Default
  --- | --- | ---
  url | KUrl | KUrl()

  Return the filename of the icon associated with the mimetype. Use KIconLoader.loadMimeTypeIcon to load the icon.

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

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

- iconNameForUrl (url, mode)

  returns QString
  static

  Argument | Type | Default
  --- | --- | ---
  url | KUrl |
  mode | mode_t | 0

  Return the filename of the icon associated with the mimetype, for a given url. Use KIconLoader.loadMimeTypeIcon to load the icon.

  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

- internalClearData ( )

  returns Nothing

  Internal for kbuildsycoca. Don't ever use this, or else...

- is (mimeTypeName)

  returns bool

  Argument | Type | Default
  --- | --- | ---
  mimeTypeName | QString |

  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! is() also supports mimetype aliases.

- isBinaryData (fileName)

  returns bool
  static

  Argument | Type | Default
  --- | --- | ---
  fileName | QString |

  Returns whether a file has an internal format that is not human readable. This is much more generic than "not mime->is(text/plain)". Many application file formats (like rtf and postscript) are based on text, but text that the user should rarely ever see.

- isBufferBinaryData (data)

  returns bool
  static

  Argument | Type | Default
  --- | --- | ---
  data | QByteArray |

  Returns whether a buffer has an internal format that is not human readable. This is much more generic than "not mime->is(text/plain)". Many application file formats (like rtf and postscript) are based on text, but text that the user should rarely ever see.

- isDefault ( )

  returns bool

  Return true if this mimetype is the default mimetype

- mimeType (name, options)

  returns KMimeType.Ptr
  static

  Argument | Type | Default
  --- | --- | ---
  name | QString |
  options | KMimeType.FindByNameOption | KMimeType.DontResolveAlias

  Retrieve a pointer to the mime type name .

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

  Also note that you get a new KMimeType pointer every time you call this. Don't ever write code that compares mimetype pointers, compare names instead.

  name - the name of the mime type Returns the pointer to the KMimeType with the given name, or 0 if not found

  See also KServiceType.serviceType

- parentMimeType ( )

  returns QString

  If this mimetype is a subclass of another mimetype, return the name of the parent.

  Returns the parent mime type, or QString() if not set

  Deprecated this method does not support multiple inheritance, which is actually part of the shared-mime-info standard. Use is(), parentMimeTypes(), or allParentMimeTypes() instead of parentMimeType()

- parentMimeTypes ( )

  returns QStringList
  KDE 4.1.0 and later only

  If this mimetype is a subclass of one or more other mimetypes, return the list of those mimetypes.

  For instance a application/javascript is a special kind of text/plain, so the definition of application/javascript says sub-class-of type="text/plain"

  Another example: application/x-shellscript is a subclass of two other mimetypes, application/x-executable and text/plain.

  (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 list of parent mimetypes @since 4.1

- patterns ( )

  returns QStringList

  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

- setParentMimeType (parent)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  parent | QString |

  Internal for kbuildsycoca. Don't ever use this, or else...

- setPatterns (patterns)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  patterns | QStringList |

  Internal for kbuildsycoca. Don't ever use this, or else...

### enums - detail

- FindByNameOption { DontResolveAlias, ResolveAliases }

  | DontResolveAlias | - | - |
  | ResolveAliases | - 1 | - |