From 9ed732fc63786319c7f09838a6c8a588ad20026f Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Wed, 16 Jun 2021 09:57:29 +0300 Subject: [PATCH] generic: bump minimim shared-mime-info requirement to v0.70 Signed-off-by: Ivailo Monev --- CMakeLists.txt | 2 +- kdecore/services/kmimeglobsfileparser.cpp | 6 ----- kdecore/services/kmimetype.cpp | 29 ++++------------------- kdecore/tests/kmimetypetest.cpp | 4 +--- kdeui/tests/kiconloader_unittest.cpp | 4 +--- 5 files changed, 7 insertions(+), 38 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8daacadc..bf8e0a76 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,7 +60,7 @@ set_package_properties(ZLIB PROPERTIES PURPOSE "Required by the core KDE libraries and some critical kioslaves" ) -find_package(SharedMimeInfo 0.60) +find_package(SharedMimeInfo 0.70) set_package_properties(SharedMimeInfo PROPERTIES DESCRIPTION "Shared Mime Info" URL "http://freedesktop.org/wiki/Software/shared-mime-info" diff --git a/kdecore/services/kmimeglobsfileparser.cpp b/kdecore/services/kmimeglobsfileparser.cpp index aaaa1252..01dabb43 100644 --- a/kdecore/services/kmimeglobsfileparser.cpp +++ b/kdecore/services/kmimeglobsfileparser.cpp @@ -73,9 +73,6 @@ bool KMimeGlobsFileParser::parseGlobFile(QIODevice* file, Format format, AllGlob if (!file->open(QIODevice::ReadOnly)) return false; - // If we're not going to get the "cs" flag because smi is too old, then we need to emulate it for *.C at least. - const bool caseSensitiveHackNeeded = (KMimeType::sharedMimeInfoVersion() <= KDE_MAKE_VERSION(0, 60, 0)); - QTextStream stream(file); //stream.setCodec("UTF-8"); // should be all latin1 QString lastMime, lastPattern; @@ -120,9 +117,6 @@ bool KMimeGlobsFileParser::parseGlobFile(QIODevice* file, Format format, AllGlob bool caseSensitive = flagList.contains(QLatin1String("cs")); - if (caseSensitiveHackNeeded && (pattern == QLatin1String("*.C") || pattern == QLatin1String("*.c") || pattern == QLatin1String("core"))) - caseSensitive = true; - if (pattern == QLatin1String("__NOGLOBS__")) { //kDebug() << "removing" << mimeTypeName; globs.removeMime(mimeTypeName); diff --git a/kdecore/services/kmimetype.cpp b/kdecore/services/kmimetype.cpp index 649230b6..a16c4f25 100644 --- a/kdecore/services/kmimetype.cpp +++ b/kdecore/services/kmimetype.cpp @@ -685,16 +685,10 @@ void KMimeTypePrivate::ensureXmlDataLoaded() const } m_strComment = comment; - const bool globsInXml = (KMimeType::sharedMimeInfoVersion() >= KDE_MAKE_VERSION(0, 70, 0)); - if (globsInXml) { - if (!mainPattern.isEmpty() && m_lstPatterns.first() != mainPattern) { - // ensure it's first in the list of patterns - m_lstPatterns.removeAll(mainPattern); - m_lstPatterns.prepend(mainPattern); - } - } else { - // Fallback: get the patterns from the globs file - m_lstPatterns = KMimeTypeRepository::self()->patternsForMimetype(m_strName); + if (!mainPattern.isEmpty() && m_lstPatterns.first() != mainPattern) { + // ensure it's first in the list of patterns + m_lstPatterns.removeAll(mainPattern); + m_lstPatterns.prepend(mainPattern); } } @@ -714,21 +708,6 @@ QString KMimeType::mainExtension() const { Q_D(const KMimeType); -#if 1 // HACK START - can be removed once shared-mime-info >= 0.70 is used/required. - // The idea was: first usable pattern from m_lstPatterns. - // But update-mime-database makes a mess of the order of the patterns, - // because it uses a hash internally. - static const struct { const char* mime; const char* extension; } s_hardcodedMimes[] = { - { "text/plain", ".txt" } }; - if (d->m_lstPatterns.count() > 1) { - const QByteArray me = name().toLatin1(); - for (uint i = 0; i < sizeof(s_hardcodedMimes)/sizeof(*s_hardcodedMimes); ++i) { - if (me == s_hardcodedMimes[i].mime) - return QString::fromLatin1(s_hardcodedMimes[i].extension); - } - } -#endif // HACK END - Q_FOREACH(const QString& pattern, patterns()) { // Skip if if looks like: README or *. or *.* // or *.JP*G or *.JP? diff --git a/kdecore/tests/kmimetypetest.cpp b/kdecore/tests/kmimetypetest.cpp index 6a07d1ae..08daee54 100644 --- a/kdecore/tests/kmimetypetest.cpp +++ b/kdecore/tests/kmimetypetest.cpp @@ -748,9 +748,7 @@ void KMimeTypeTest::testPatterns_data() QTest::addColumn("mainExtension"); QTest::newRow("mimetype with a single pattern") << "application/pdf" << "*.pdf" << ".pdf"; QTest::newRow("mimetype with multiple patterns") << "application/x-kpresenter" << "*.kpr;*.kpt" << ".kpr"; - if (KMimeType::sharedMimeInfoVersion() > KDE_MAKE_VERSION(0, 60, 0)) { - QTest::newRow("mimetype with many patterns") << "application/vnd.wordperfect" << "*.wp;*.wp4;*.wp5;*.wp6;*.wpd;*.wpp" << ".wp"; - } + QTest::newRow("mimetype with many patterns") << "application/vnd.wordperfect" << "*.wp;*.wp4;*.wp5;*.wp6;*.wpd;*.wpp" << ".wp"; QTest::newRow("oasis text mimetype") << "application/vnd.oasis.opendocument.text" << "*.odt" << ".odt"; QTest::newRow("oasis presentation mimetype") << "application/vnd.oasis.opendocument.presentation" << "*.odp" << ".odp"; QTest::newRow("mimetype with multiple patterns, *.doc added by kde") << "text/plain" << "*.asc;*.txt;*.doc;*,v" << ".txt"; diff --git a/kdeui/tests/kiconloader_unittest.cpp b/kdeui/tests/kiconloader_unittest.cpp index a0f5d588..acd889be 100644 --- a/kdeui/tests/kiconloader_unittest.cpp +++ b/kdeui/tests/kiconloader_unittest.cpp @@ -214,9 +214,7 @@ private Q_SLOTS: QTest::newRow("#184852") << "audio/x-tuxguitar" << "audio-x-generic.png"; QTest::newRow("#178847") << "image/x-compressed-xcf" << "image-x-generic.png"; - if (sharedMimeInfoVersion >= KDE_MAKE_VERSION(0, 40, 0)) { - QTest::newRow("mimetype generic icon") << "application-x-fluid" << "x-office-document.png"; - } + QTest::newRow("mimetype generic icon") << "application-x-fluid" << "x-office-document.png"; } void testLoadMimeTypeIcon()