KDE 4.5 PyKDE API Reference

- KDE's Python API

# KFilterDev Class Reference

`from PyKDE4.kdecore import *`

Inherits: QIODevice → QObject

## Detailed Description

A class for reading and writing compressed data onto a device (e.g. file, but other usages are possible, like a buffer or a socket).

To simply read/write compressed files, see deviceForFile.

Author:
  David Faure <faure@kde.org>

## Methods
| __init__ (self, KFilterBase filter, bool autoDeleteFilterBase=0)
bool | atEnd (self)
| close (self)
bool | open (self, QIODevice.OpenMode mode)
long | readData (self, QString data, long maxlen)
bool | seek (self, long a0)
| setOrigFileName (self, QByteArray fileName)
| setSkipHeaders (self)
long | writeData (self, QString data, long len)
## Static Methods
QIODevice | device (QIODevice inDevice, QString mimetype, bool autoDeleteInDevice=1)
QIODevice | deviceForFile (QString fileName, QString mimetype=QString(), bool forceFilter=0)

## Method Documentation

__init__ | ( | self, |
|  | KFilterBase | filter,
|  | bool | autoDeleteFilterBase=0
| ) |  |  |

Constructs a KFilterDev for a given filter (e.g. gzip, bzip2 etc.).

Parameters:

  | filter | the KFilterBase to use
  | autoDeleteFilterBase | when true this object will become the owner of filter.

bool atEnd | ( |  | self ) |

close | ( |  | self ) |

Close after reading or writing. If the KFilterBase's device was opened by open(), it will be closed.

bool open | ( | self, |
|  | QIODevice.OpenMode | mode
| ) |  |  |

Open for reading or writing. If the KFilterBase's device is not opened, it will be opened.

long readData | ( | self, |
|  | QString | data,
|  | long | maxlen
| ) |  |  |

bool seek | ( | self, |
|  | long | a0
| ) |  |  |

That one can be quite slow, when going back. Use with care.

setOrigFileName | ( | self, |
|  | QByteArray | fileName
| ) |  |  |

For writing gzip compressed files only: set the name of the original file, to be used in the gzip header.

Parameters:

  | fileName | the name of the original file

setSkipHeaders | ( |  | self ) |

Call this let this device skip the gzip headers when reading/writing. This way KFilterDev (with gzip filter) can be used as a direct wrapper around zlib - this is used by KZip.

long writeData | ( | self, |
|  | QString | data,
|  | long | len
| ) |  |  |

## Static Method Documentation

QIODevice device | ( | QIODevice | inDevice,
|  | QString | mimetype,
|  | bool | autoDeleteInDevice=1
| ) |  |  |

Creates an i/o device that is able to read from the QIODevice inDevice, whether the data is compressed or not. Available compression filters (gzip/bzip2 etc.) will automatically be used.

The compression filter to be used is determined mimetype . Pass "application/x-gzip" or "application/x-bzip" to use the corresponding decompression filter.

Warning: application/x-bzip may not be available. In that case 0 will be returned !

The returned QIODevice has to be deleted after using.

Parameters:

  | inDevice | input device. Won't be deleted if autoDeleteInDevice = false
  | mimetype | the mime type for the filter
  | autoDeleteInDevice | if true, inDevice will be deleted automatically

Returns:
  a KFilterDev that filters the original stream. Must be deleted after using

QIODevice deviceForFile | ( | QString | fileName,
|  | QString | mimetype=QString(),
|  | bool | forceFilter=0
| ) |  |  |

Creates an i/o device that is able to read from fileName, whether it's compressed or not. Available compression filters (gzip/bzip2 etc.) will automatically be used.

The compression filter to be used is determined from the fileName if mimetype is empty. Pass "application/x-gzip" or "application/x-bzip" to force the corresponding decompression filter, if available.

Warning: application/x-bzip may not be available. In that case a QFile opened on the compressed data will be returned ! Use KFilterBase.findFilterByMimeType and code similar to what deviceForFile is doing, to better control what's happening.

The returned QIODevice has to be deleted after using.

Parameters:

  | fileName | the name of the file to filter
  | mimetype | the mime type of the file to filter, or QString() if unknown
  | forceFilter | if true, the function will either find a compression filter, or return 0. If false, it will always return a QIODevice. If no filter is available it will return a simple QFile. This can be useful if the file is usable without a filter.

Returns:
  if a filter has been found, the QIODevice for the filter. If the filter does not exist, the return value depends on forceFilter. The returned QIODevice has to be deleted after using.