// SPDX-FileCopyrightText: 2021 Noah Davis // SPDX-License-Identifier: LicenseRef-KDE-Accepted-LGPL #include "filetype.h" #include #include static QStringList byteArrayListToStringList(const QByteArrayList &byteArrayList) { QStringList stringList; for (const QByteArray &byteArray : byteArrayList) { stringList.append(QString::fromLocal8Bit(byteArray)); } return stringList; } class FileTypePrivate { Q_DECLARE_PUBLIC(FileType) Q_DISABLE_COPY(FileTypePrivate) public: FileTypePrivate(FileType *qq); FileType *const q_ptr; QMimeDatabase mimetypeDatabase; QStringList supportedImageFormats = byteArrayListToStringList(QImageReader::supportedImageFormats()); QStringList supportedAnimatedImageFormats = byteArrayListToStringList(QMovie::supportedFormats()); }; FileTypePrivate::FileTypePrivate(FileType *qq) : q_ptr(qq) { } FileType::FileType(QObject *parent) : QObject(parent) , d_ptr(new FileTypePrivate(this)) { } FileType::~FileType() noexcept { } QMimeType FileType::mimeTypeForName(const QString &nameOrAlias) const { Q_D(const FileType); return d->mimetypeDatabase.mimeTypeForName(nameOrAlias); } QMimeType FileType::mimeTypeForFile(const QString &fileName, MatchMode mode) const { Q_D(const FileType); return d->mimetypeDatabase.mimeTypeForFile(fileName, static_cast(mode)); } QMimeType FileType::mimeTypeForFile(const QFileInfo &fileInfo, MatchMode mode) const { Q_D(const FileType); return d->mimetypeDatabase.mimeTypeForFile(fileInfo, static_cast(mode)); } QList FileType::mimeTypesForFileName(const QString &fileName) const { Q_D(const FileType); return d->mimetypeDatabase.mimeTypesForFileName(fileName); } QMimeType FileType::mimeTypeForData(const QByteArray &data) const { Q_D(const FileType); return d->mimetypeDatabase.mimeTypeForData(data); } QMimeType FileType::mimeTypeForData(QIODevice *device) const { Q_D(const FileType); return d->mimetypeDatabase.mimeTypeForData(device); } QMimeType FileType::mimeTypeForUrl(const QUrl &url) const { Q_D(const FileType); return d->mimetypeDatabase.mimeTypeForUrl(url); } QMimeType FileType::mimeTypeForFileNameAndData(const QString &fileName, QIODevice *device) const { Q_D(const FileType); return d->mimetypeDatabase.mimeTypeForFileNameAndData(fileName, device); } QMimeType FileType::mimeTypeForFileNameAndData(const QString &fileName, const QByteArray &data) const { Q_D(const FileType); return d->mimetypeDatabase.mimeTypeForFileNameAndData(fileName, data); } QString FileType::suffixForFileName(const QString &fileName) const { Q_D(const FileType); return d->mimetypeDatabase.suffixForFileName(fileName); } QStringList FileType::supportedImageFormats() const { Q_D(const FileType); return d->supportedImageFormats; } QStringList FileType::supportedAnimatedImageFormats() const { Q_D(const FileType); return d->supportedAnimatedImageFormats; } #include "moc_filetype.cpp"