summaryrefslogtreecommitdiff
path: root/user/kfilemetadata/add-mimeutils.patch
diff options
context:
space:
mode:
Diffstat (limited to 'user/kfilemetadata/add-mimeutils.patch')
-rw-r--r--user/kfilemetadata/add-mimeutils.patch186
1 files changed, 0 insertions, 186 deletions
diff --git a/user/kfilemetadata/add-mimeutils.patch b/user/kfilemetadata/add-mimeutils.patch
deleted file mode 100644
index 5ea2cef37..000000000
--- a/user/kfilemetadata/add-mimeutils.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-From 69c25514cf6a08ceaaacbc4092cc02ff40853228 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
-Date: Mon, 25 Mar 2019 17:40:41 +0100
-Subject: Add helper function to determine mime type based on content and
- extension
-
-Summary:
-The QMimeDatabase::MatchDefault only falls back to content matching
-if the extension is not known. This fails for e.g. Matroska files, where
-the content allows to distinguish between audio and video files.
-
-CCBUG: 403902
-
-Reviewers: #baloo, #frameworks, astippich, ngraham, poboiko
-
-Reviewed By: #baloo, astippich, ngraham
-
-Subscribers: kde-frameworks-devel
-
-Tags: #frameworks, #baloo
-
-Differential Revision: https://phabricator.kde.org/D20045
----
- src/CMakeLists.txt | 1 +
- src/mimeutils.cpp | 50 +++++++++++++++++++++++++++++++++++++++++++++++++
- src/mimeutils.h | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 106 insertions(+)
- create mode 100644 src/mimeutils.cpp
- create mode 100644 src/mimeutils.h
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index c3cbe8c..fc4ce19 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -14,6 +14,7 @@ set(KF5FileMetaData_SRCS
- writercollection.cpp
- externalwriter.cpp
- formatstrings.cpp
-+ mimeutils.cpp
- )
- ecm_qt_declare_logging_category(KF5FileMetaData_SRCS HEADER kfilemetadata_debug.h IDENTIFIER KFILEMETADATA_LOG CATEGORY_NAME kf5.kfilemetadata)
-
-diff --git a/src/mimeutils.cpp b/src/mimeutils.cpp
-new file mode 100644
-index 0000000..7ea4dc8
---- /dev/null
-+++ b/src/mimeutils.cpp
-@@ -0,0 +1,50 @@
-+/*
-+ * This file is part of KFileMetaData
-+ * Copyright (C) 2019 Stefan Brüns <stefan.bruens@rwth-aachen.de>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2.1 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+ *
-+ */
-+
-+#include "mimeutils.h"
-+
-+namespace KFileMetaData {
-+namespace MimeUtils {
-+
-+QMimeType strictMimeType(const QString& filePath, const QMimeDatabase& db)
-+{
-+ auto extensionMimes = db.mimeTypesForFileName(filePath);
-+ auto contentMime = db.mimeTypeForFile(filePath, QMimeDatabase::MatchContent);
-+
-+ if (extensionMimes.contains(contentMime)) {
-+ // content based mime type is one of the types for the file extension, e.g.:
-+ // *.ogg -> [ audio/ogg, audio/x-vorbis+ogg, ...]
-+ // content -> audio/x-vorbis+ogg
-+ return contentMime;
-+ }
-+
-+ for (auto mime : extensionMimes) {
-+ // check if the content is generic and the extension is more specific, e.g.:
-+ // *.mkv -> [ video/matroska ]
-+ // content -> application/matroska
-+ if (mime.inherits(contentMime.name())) {
-+ return mime;
-+ }
-+ }
-+ // content mime type does not match the extension, trust the content
-+ return contentMime;
-+}
-+
-+}} // namespace KFileMetaData::MimeUtils
-diff --git a/src/mimeutils.h b/src/mimeutils.h
-new file mode 100644
-index 0000000..f33e100
---- /dev/null
-+++ b/src/mimeutils.h
-@@ -0,0 +1,55 @@
-+/*
-+ * This file is part of KFileMetaData
-+ * Copyright (C) 2019 Stefan Brüns <stefan.bruens@rwth-aachen.de>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2.1 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+ *
-+ */
-+
-+#ifndef KFILEMETADATA_MIMEUTILS
-+#define KFILEMETADATA_MIMEUTILS
-+
-+#include <QMimeDatabase>
-+#include "kfilemetadata_export.h"
-+
-+namespace KFileMetaData
-+{
-+namespace MimeUtils
-+{
-+
-+/**
-+ * Returns the mimetype for a file
-+ *
-+ * The function uses both content and filename to determine the
-+ * \c QMimeType. In case the extension mimetype is more specific
-+ * than the content mimetype, and the first inherits the latter,
-+ * the extension mimetype is preferred.
-+ * If the extension does not match the content, the content has
-+ * higher priority.
-+ * The file must exist and be readable.
-+ *
-+ * @since 5.57
-+ *
-+ * \sa QMimeDatabase::mimeTypesForFileName
-+ * \sa QMimeType::inherits
-+ */
-+KFILEMETADATA_EXPORT
-+QMimeType strictMimeType(const QString& filePath, const QMimeDatabase& db);
-+
-+
-+} // namespace MimeUtils
-+} // namespace KFileMetaData
-+
-+#endif // KFILEMETADATA_MIMEUTILS
---
-cgit v1.1
-
-From b56d0cb5b90baeef2ada6ba0cbaea91506df1270 Mon Sep 17 00:00:00 2001
-From: Alexander Stippich <a.stippich@gmx.net>
-Date: Wed, 27 Mar 2019 20:41:49 +0100
-Subject: Generate header for new MimeUtils
-
----
- src/CMakeLists.txt | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index fc4ce19..73bf7d0 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -75,6 +75,7 @@ ecm_generate_headers(KF5FileMetaData_CamelCase_HEADERS
- WriterPlugin
- WriterCollection
- EmbeddedImageData
-+ MimeUtils
-
- PREFIX kfilemetadata
- REQUIRED_HEADERS KF5FileMetaData_HEADERS
---
-cgit v1.1
-