Changeset View
Changeset View
Standalone View
Standalone View
filter/filter.cc
Context not available. | |||||
23 | */ | 23 | */ | ||
---|---|---|---|---|---|
24 | 24 | | |||
25 | #include "filter.h" | 25 | #include "filter.h" | ||
26 | | ||||
27 | #include <QCoreApplication> | ||||
26 | #include <QFileInfo> | 28 | #include <QFileInfo> | ||
27 | #include <QFile> | 29 | #include <QFile> | ||
30 | #include <QDebug> | ||||
31 | #include <QUrl> | ||||
32 | #include <QMimeType> | ||||
33 | #include <QMimeDatabase> | ||||
28 | 34 | | |||
29 | #include <kcomponentdata.h> | | |||
30 | #include <kdebug.h> | | |||
31 | #include <kmimetype.h> | | |||
32 | #include <kfilterbase.h> | 35 | #include <kfilterbase.h> | ||
33 | #include <kcompressiondevice.h> | 36 | #include <kcompressiondevice.h> | ||
34 | #include <kfilterdev.h> | 37 | #include <kfilterdev.h> | ||
35 | #include <QUrl> | 38 | | ||
39 | #include "loggingcategory.h" | ||||
36 | 40 | | |||
37 | extern "C" { Q_DECL_EXPORT int kdemain(int argc, char **argv); } | 41 | extern "C" { Q_DECL_EXPORT int kdemain(int argc, char **argv); } | ||
38 | 42 | | |||
39 | int kdemain( int argc, char ** argv) | 43 | int kdemain( int argc, char ** argv) | ||
40 | { | 44 | { | ||
41 | KComponentData componentData( "kio_filter" ); | 45 | QCoreApplication app(argc, argv); | ||
46 | app.setApplicationName("kio_filter"); | ||||
42 | 47 | | |||
43 | kDebug(7110) << "Starting"; | 48 | qDebug(KIO_FILTER_DEBUG) << "Starting"; | ||
44 | 49 | | |||
45 | if (argc != 4) | 50 | if (argc != 4) | ||
46 | { | 51 | { | ||
Context not available. | |||||
51 | FilterProtocol slave(argv[1], argv[2], argv[3]); | 56 | FilterProtocol slave(argv[1], argv[2], argv[3]); | ||
52 | slave.dispatchLoop(); | 57 | slave.dispatchLoop(); | ||
53 | 58 | | |||
54 | kDebug(7110) << "Done"; | 59 | qDebug(KIO_FILTER_DEBUG) << "Done"; | ||
55 | return 0; | 60 | return 0; | ||
56 | } | 61 | } | ||
57 | 62 | | |||
Context not available. | |||||
113 | #else | 118 | #else | ||
114 | result = localFile.read(inputBuffer.data(), inputBuffer.size()); | 119 | result = localFile.read(inputBuffer.data(), inputBuffer.size()); | ||
115 | #endif | 120 | #endif | ||
116 | kDebug(7110) << "requestData: got " << result; | 121 | qDebug(KIO_FILTER_DEBUG) << "requestData: got " << result; | ||
117 | if (result <= 0) | 122 | if (result <= 0) | ||
118 | { | 123 | { | ||
119 | bError = true; | 124 | bError = true; | ||
Context not available. | |||||
131 | result = filter->uncompress(); | 136 | result = filter->uncompress(); | ||
132 | if ((filter->outBufferAvailable() == 0) || (result == KFilterBase::End)) | 137 | if ((filter->outBufferAvailable() == 0) || (result == KFilterBase::End)) | ||
133 | { | 138 | { | ||
134 | kDebug(7110) << "avail_out = " << filter->outBufferAvailable(); | 139 | qDebug(KIO_FILTER_DEBUG) << "avail_out = " << filter->outBufferAvailable(); | ||
135 | if (filter->outBufferAvailable() != 0) | 140 | if (filter->outBufferAvailable() != 0) | ||
136 | { | 141 | { | ||
137 | // Discard unused space :-) | 142 | // Discard unused space :-) | ||
Context not available. | |||||
140 | if (bNeedMimetype) { | 145 | if (bNeedMimetype) { | ||
141 | // Can we use the "base" filename? E.g. foo.txt.bz2 | 146 | // Can we use the "base" filename? E.g. foo.txt.bz2 | ||
142 | const QString extension = QFileInfo(subURL.path()).suffix(); | 147 | const QString extension = QFileInfo(subURL.path()).suffix(); | ||
143 | KMimeType::Ptr mime; | 148 | QMimeDatabase db; | ||
149 | QMimeType mime; | ||||
144 | if (extension == "gz" || extension == "bz" || extension == "bz2") { | 150 | if (extension == "gz" || extension == "bz" || extension == "bz2") { | ||
145 | QString baseName = subURL.path(); | 151 | QString baseName = subURL.path(); | ||
146 | baseName.truncate(baseName.length() - extension.length() - 1 /*the dot*/); | 152 | baseName.truncate(baseName.length() - extension.length() - 1 /*the dot*/); | ||
147 | kDebug(7110) << "baseName=" << baseName; | 153 | qDebug(KIO_FILTER_DEBUG) << "baseName=" << baseName; | ||
148 | mime = KMimeType::findByNameAndContent(baseName, outputBuffer); | 154 | mime = db.mimeTypeForFileNameAndData(baseName, outputBuffer); | ||
149 | } else { | 155 | } else { | ||
150 | mime = KMimeType::findByContent(outputBuffer); | 156 | mime = db.mimeTypeForData(outputBuffer); | ||
151 | } | 157 | } | ||
152 | kDebug(7110) << "Emitting mimetype " << mime->name(); | 158 | qDebug(KIO_FILTER_DEBUG) << "Emitting mimetype " << mime.name(); | ||
153 | mimeType( mime->name() ); | 159 | mimeType( mime.name() ); | ||
154 | bNeedMimetype = false; | 160 | bNeedMimetype = false; | ||
155 | } | 161 | } | ||
156 | data( outputBuffer ); // Send data | 162 | data( outputBuffer ); // Send data | ||
Context not available. | |||||
172 | #else | 178 | #else | ||
173 | result = localFile.read(inputBuffer.data(), inputBuffer.size()); | 179 | result = localFile.read(inputBuffer.data(), inputBuffer.size()); | ||
174 | #endif | 180 | #endif | ||
175 | kDebug(7110) << "requestData: got" << result << "(expecting 0)"; | 181 | qDebug(KIO_FILTER_DEBUG) << "requestData: got" << result << "(expecting 0)"; | ||
176 | data(QByteArray()); // Send EOF | 182 | data(QByteArray()); // Send EOF | ||
177 | } | 183 | } | ||
178 | 184 | | |||
Context not available. |