8#include <QMimeDatabase>
13#include <klocalizedstring.h>
17static QString sanitizeSuffix(
const QString &suffix)
19 return suffix.split(QLatin1Char(
' ')).first();
27 QString suffix = fi.suffix().toLower();
34 suffix = sanitizeSuffix(suffix);
40 if (mimeType.
suffixes.contains(suffix)) {
41 dbgPlugins <<
"mimeTypeForFile(). KisMimeDatabase returned" << mimeType.
mimeType <<
"for" << file;
48 if (checkExistingFiles && fi.size() > 0) {
49 mime = db.mimeTypeForFile(file, QMimeDatabase::MatchContent);
50 if (mime.name() !=
"application/octet-stream" && mime.name() !=
"application/zip") {
51 dbgPlugins <<
"mimeTypeForFile(). QMimeDatabase returned" << mime.name() <<
"for" << file;
57 QString basename = fi.baseName();
59 mime = db.mimeTypeForFile(basename +
"." + suffix);
61 mime = db.mimeTypeForFile(file);
63 if (mime.name() !=
"application/octet-stream") {
64 dbgPlugins <<
"mimeTypeForFile(). QMimeDatabase returned" << mime.name() <<
"for" << file;
75 QString s = suffix.toLower();
79 dbgPlugins <<
"mimeTypeForSuffix(). KisMimeDatabase returned" << mimeType.
mimeType <<
"for" << s;
94 QMimeType mtp = db.mimeTypeForData(ba);
95 dbgPlugins <<
"mimeTypeForData(). QMimeDatabase returned" << mtp.name();
105 dbgPlugins <<
"descriptionForMimeType. KisMimeDatabase returned" << m.
description <<
"for" << mimeType;
111 QMimeType mime = db.mimeTypeForName(mimeType);
112 if (mime.name() !=
"application/octet-stream") {
113 dbgPlugins <<
"descriptionForMimeType. QMimeDatabase returned" << mime.comment() <<
"for" << mimeType;
114 return mime.comment();
131 QMimeType mime = db.mimeTypeForName(mimeType);
132 if (mime.name() !=
"application/octet-stream" && !mime.suffixes().isEmpty()) {
133 QString preferredSuffix = mime.preferredSuffix();
134 if (mimeType ==
"image/x-tga") {
135 preferredSuffix =
"tga";
137 if (mimeType ==
"image/jpeg") {
138 preferredSuffix =
"jpg";
141 if (preferredSuffix != suffixes.first()) {
142 suffixes.removeAll(preferredSuffix);
143 suffixes.prepend(preferredSuffix);
146 dbgPlugins <<
"suffixesForMimeType. QMimeDatabase returned" << suffixes;
155 QMimeType mime = db.mimeTypeForName(mimeType);
156 dbgPlugins <<
"iconNameForMimeType" << mime.iconName();
157 return mime.iconName();
168 mimeType.
mimeType =
"image/x-gimp-brush";
169 mimeType.
description = i18nc(
"description of a file type",
"Gimp Brush");
173 mimeType.
mimeType =
"image/x-gimp-brush-animated";
174 mimeType.
description = i18nc(
"description of a file type",
"Gimp Image Hose Brush");
178 mimeType.
mimeType =
"image/x-adobe-brushlibrary";
179 mimeType.
description = i18nc(
"description of a file type",
"Adobe Brush Library");
183 mimeType.
mimeType =
"application/x-krita-paintoppreset";
184 mimeType.
description = i18nc(
"description of a file type",
"Krita Brush Preset");
188 mimeType.
mimeType =
"application/x-mypaint-brush";
189 mimeType.
description = i18nc(
"description of a file type",
"MyPaint Brush");
193 mimeType.
mimeType =
"application/x-krita-assistant";
194 mimeType.
description = i18nc(
"description of a file type",
"Krita Assistant");
199 mimeType.
description = i18nc(
"description of a file type",
"R32 Heightmap");
204 mimeType.
description = i18nc(
"description of a file type",
"R16 Heightmap");
209 mimeType.
description = i18nc(
"description of a file type",
"R8 Heightmap");
213 mimeType.
mimeType =
"application/x-spriter";
214 mimeType.
description = i18nc(
"description of a file type",
"Spriter SCML");
219 mimeType.
description = i18nc(
"description of a file type",
"Starview Metafile");
223 mimeType.
mimeType =
"image/openraster";
224 mimeType.
description = i18nc(
"description of a file type",
"OpenRaster Image");
228 mimeType.
mimeType =
"application/x-photoshop-style-library";
229 mimeType.
description = i18nc(
"description of a file type",
"Photoshop Layer Style Library");
233 mimeType.
mimeType =
"application/x-gimp-color-palette";
234 mimeType.
description = i18nc(
"description of a file type",
"Color Palette");
235 mimeType.
suffixes =
QStringList() <<
"gpl" <<
"pal" <<
"act" <<
"aco" <<
"colors" <<
"xml" <<
"sbz" <<
"acb" <<
"ase" <<
"css";
238 mimeType.
mimeType =
"application/x-krita-palette";
239 mimeType.
description = i18nc(
"description of a file type",
"Krita Color Palette");
243 mimeType.
mimeType =
"application/x-opencolorio-configuration";
244 mimeType.
description = i18nc(
"description of a file type",
"OpenColorIO Configuration");
248 mimeType.
mimeType =
"application/x-gimp-gradient";
249 mimeType.
description = i18nc(
"description of a file type",
"GIMP Gradients");
253 mimeType.
mimeType =
"image/x-gimp-pat";
254 mimeType.
description = i18nc(
"description of a file type",
"GIMP Patterns");
258 mimeType.
mimeType =
"application/x-krita-bundle";
259 mimeType.
description = i18nc(
"description of a file type",
"Krita Resource Bundle");
263 mimeType.
mimeType =
"application/x-krita-workspace";
264 mimeType.
description = i18nc(
"description of a file type",
"Krita Workspace");
268 mimeType.
mimeType =
"application/x-krita-windowlayout";
269 mimeType.
description = i18nc(
"description of a file type",
"Krita Window Layout");
273 mimeType.
mimeType =
"application/x-krita-session";
274 mimeType.
description = i18nc(
"description of a file type",
"Krita Session");
278 mimeType.
mimeType =
"application/x-krita-taskset";
279 mimeType.
description = i18nc(
"description of a file type",
"Krita Taskset");
283 mimeType.
mimeType =
"application/x-krita-reference-images";
284 mimeType.
description = i18nc(
"description of a file type",
"Krita Reference Image Collection");
288 mimeType.
mimeType =
"application/x-krita-gamutmasks";
289 mimeType.
description = i18nc(
"description of a file type",
"Krita Gamut Mask");
293 mimeType.
mimeType =
"application/x-krita-shortcuts";
294 mimeType.
description = i18nc(
"description of a file type",
"Krita Shortcut Scheme");
298 mimeType.
mimeType =
"image/x-krita-raw";
299 mimeType.
description = i18nc(
"description of a file type",
"Camera Raw Files");
300 mimeType.
suffixes =
QStringList() <<
"bay" <<
"bmq" <<
"cr2" <<
"crw" <<
"cs1" <<
"dc2" <<
"dcr" <<
"dng" <<
"erf" <<
"fff" <<
"k25" <<
"kdc" <<
"mdc" <<
"mos" <<
"mrw" <<
"nef" <<
"orf" <<
"pef" <<
"pxn" <<
"raf" <<
"raw" <<
"rdc" <<
"sr2" <<
"srf" <<
"x3f" <<
"arw" <<
"3fr" <<
"cine" <<
"ia" <<
"kc2" <<
"mef" <<
"nrw" <<
"qtk" <<
"rw2" <<
"sti" <<
"rwl" <<
"srw";
303 mimeType.
mimeType =
"application/x-extension-exr";
304 mimeType.
description = i18nc(
"description of a file type",
"OpenEXR (Extended)");
309 mimeType.
description = i18nc(
"description of a file type",
"Photoshop Image (Large)");
314 mimeType.
description = i18nc(
"description of a file type",
"HEIC/HEIF Image");
319 mimeType.
description = i18nc(
"description of a file type",
"AVIF Image");
328 mimeType.
mimeType =
"application/x-krita-seexpr-script";
329 mimeType.
description = i18nc(
"description of a file type",
"SeExpr script package");
333 mimeType.
mimeType =
"application/x-krita-archive";
334 mimeType.
description = i18nc(
"description of a file type",
"Krita Archival Image Format");
339 mimeType.
description = i18nc(
"description of a file type",
"Animated PNG Image");
344 mimeType.
description = i18nc(
"description of a file type",
"JPEG-XL Image");
349 mimeType.
description = i18nc(
"description of a file type",
"CSV Document");
353 mimeType.
mimeType =
"image/vnd.radiance";
354 mimeType.
description = i18nc(
"description of a file type",
"Radiance RGBE Image");
QList< QString > QStringList
static QStringList suffixesForMimeType(const QString &mimeType)
static QList< KisMimeType > s_mimeDatabase
static QString mimeTypeForData(const QByteArray ba)
static QString mimeTypeForFile(const QString &file, bool checkExistingFiles=true)
Find the mimetype for the given filename. The filename must include a suffix.
static QString mimeTypeForSuffix(const QString &suffix)
Find the mimetype for a given extension. The extension may have the form "*.xxx" or "xxx".
static QString iconNameForMimeType(const QString &mimeType)
The default icon name for the given mimetype.
static QString descriptionForMimeType(const QString &mimeType)
Find the user-readable description for the given mimetype.
static void fillMimeData()