KArchive 5.109.0
kfilterdev.h
1/* This file is part of the KDE libraries
2 SPDX-FileCopyrightText: 2000 David Faure <faure@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6#ifndef __kfilterdev_h
7#define __kfilterdev_h
8
9#include <karchive_export.h>
10#include <kcompressiondevice.h>
11
12#include <QString>
13
14#if KARCHIVE_ENABLE_DEPRECATED_SINCE(5, 85)
15
16class QFile;
17class KFilterBase;
18
33class KARCHIVE_EXPORT KFilterDev : public KCompressionDevice
34{
35 Q_OBJECT
36public:
43 KFilterDev(const QString &fileName);
44
50 KARCHIVE_DEPRECATED_VERSION(5, 85, "Use KCompressionDevice::compressionTypeForMimeType(const QString &)")
51 static CompressionType compressionTypeForMimeType(const QString &mimetype);
52
53#if KARCHIVE_ENABLE_DEPRECATED_SINCE(5, 0)
93 KARCHIVE_DEPRECATED_VERSION(5, 0, "See API docs")
94 static KCompressionDevice *deviceForFile(const QString &fileName, const QString &mimetype = QString(), bool forceFilter = false)
95 {
96 KCompressionDevice *device;
97 if (mimetype.isEmpty()) {
98 device = new KFilterDev(fileName);
99 } else {
100 device = new KCompressionDevice(fileName, compressionTypeForMimeType(mimetype));
101 }
102 if (device->compressionType() == KCompressionDevice::None && forceFilter) {
103 delete device;
104 return nullptr;
105 } else {
106 return device;
107 }
108 }
109#endif
110
111#if KARCHIVE_ENABLE_DEPRECATED_SINCE(5, 0)
138 KARCHIVE_DEPRECATED_VERSION(5, 0, "See API docs")
139 static KCompressionDevice *device(QIODevice *inDevice, const QString &mimetype, bool autoDeleteInDevice = true)
140 {
141 if (inDevice == nullptr) {
142 return nullptr;
143 }
144 CompressionType type = compressionTypeForMimeType(mimetype);
145 KCompressionDevice *device = new KCompressionDevice(inDevice, autoDeleteInDevice, type);
146 return device;
147 }
148#endif
149};
150
151#endif // KARCHIVE_ENABLE_DEPRECATED_SINCE(5, 85)
152
153#endif
A class for reading and writing compressed data onto a device (e.g.
Definition kcompressiondevice.h:31
CompressionType compressionType() const
The compression actually used by this device.
This is the base class for compression filters such as gzip and bzip2.
Definition kfilterbase.h:27