From 7e14b7ced92b5f64fd9118a578d953a4c6b3713084b25b66c28123d7538d43ff Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Tue, 18 Aug 2015 16:14:41 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/kio?expand=0&rev=88 --- kio.changes | 5 ++ kio.spec | 3 + show-custom-folder-icons-sgain.patch | 92 ++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+) create mode 100644 show-custom-folder-icons-sgain.patch diff --git a/kio.changes b/kio.changes index cae8b18..b905298 100644 --- a/kio.changes +++ b/kio.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Aug 18 16:16:22 UTC 2015 - hrvoje.senjan@gmail.com + +- Added show-custom-folder-icons-sgain.patch (kde#350612) + ------------------------------------------------------------------- Tue Aug 4 19:20:31 UTC 2015 - hrvoje.senjan@gmail.com diff --git a/kio.spec b/kio.spec index 2185336..4146937 100644 --- a/kio.spec +++ b/kio.spec @@ -75,6 +75,8 @@ Source: http://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-% Source1: baselibs.conf # PATCH-FIX-OPENSUSE kio_help-fallback-to-kde4-docs.patch -- allow kio_help to see into kde4 documentation, needed especially for khelpcenter5 Patch0: kio_help-fallback-to-kde4-docs.patch +# PATCH-FIX-UPSTREAM show-custom-folder-icons-sgain.patch +Patch1: show-custom-folder-icons-sgain.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -121,6 +123,7 @@ Development files. %prep %setup -q %patch0 -p1 +%patch1 -p1 %build %cmake_kf5 -d build diff --git a/show-custom-folder-icons-sgain.patch b/show-custom-folder-icons-sgain.patch new file mode 100644 index 0000000..584ee36 --- /dev/null +++ b/show-custom-folder-icons-sgain.patch @@ -0,0 +1,92 @@ +From: Emmanuel Pescosta +Date: Tue, 11 Aug 2015 18:13:52 +0000 +Subject: Show custom folder icons again +--- +Show custom folder icons again + +Set mimetype as known when we assign the mime type for inode/directory + +This bug was introduced by commit 46cd152f + +BUG: 350612 +FIXED-IN: 5.14 +REVIEW: 124690 +--- + + +--- a/autotests/kfileitemtest.cpp ++++ b/autotests/kfileitemtest.cpp +@@ -25,6 +25,8 @@ + #include + #include + #include ++#include ++#include + + QTEST_MAIN(KFileItemTest) + +@@ -472,6 +474,25 @@ + QCOMPARE(fileItem.currentMimeType().name(), udsMimeType); + } + ++void KFileItemTest::testIconNameForCustomFolderIcons() ++{ ++ // Custom folder icons should be displayed (bug 350612) ++ ++ const QString iconName = QStringLiteral("folder-music"); ++ ++ QTemporaryDir tempDir; ++ const QUrl url = QUrl::fromLocalFile(tempDir.path()); ++ KDesktopFile cfg(tempDir.path() + QString::fromLatin1("/.directory")); ++ cfg.desktopGroup().writeEntry("Icon", iconName); ++ cfg.sync(); ++ ++ KIO::UDSEntry entry; ++ entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR); ++ KFileItem fileItem(entry, url); ++ ++ QCOMPARE(fileItem.iconName(), iconName); ++} ++ + #ifndef Q_OS_WIN // user/group/other write permissions are not handled on windows + + void KFileItemTest::testIsReadable_data() + +--- a/autotests/kfileitemtest.h ++++ b/autotests/kfileitemtest.h +@@ -41,6 +41,7 @@ + void testMimetypeForRemoteFolderWithFileType(); + void testCurrentMimetypeForRemoteFolder(); + void testCurrentMimetypeForRemoteFolderWithFileType(); ++ void testIconNameForCustomFolderIcons(); + + #ifndef Q_OS_WIN + void testIsReadable_data(); + +--- a/src/core/kfileitem.cpp ++++ b/src/core/kfileitem.cpp +@@ -732,15 +732,15 @@ + QMimeDatabase db; + if (isDir()) { + d->m_mimeType = db.mimeTypeForName("inode/directory"); +- return d->m_mimeType; +- } +- bool isLocalUrl; +- const QUrl url = mostLocalUrl(&isLocalUrl); +- d->m_mimeType = db.mimeTypeForUrl(url); +- // was: d->m_mimeType = KMimeType::findByUrl( url, d->m_fileMode, isLocalUrl ); +- // => we are no longer using d->m_fileMode for remote URLs. +- Q_ASSERT(d->m_mimeType.isValid()); +- //qDebug() << d << "finding final mimetype for" << url << ":" << d->m_mimeType.name(); ++ } else { ++ bool isLocalUrl; ++ const QUrl url = mostLocalUrl(&isLocalUrl); ++ d->m_mimeType = db.mimeTypeForUrl(url); ++ // was: d->m_mimeType = KMimeType::findByUrl( url, d->m_fileMode, isLocalUrl ); ++ // => we are no longer using d->m_fileMode for remote URLs. ++ Q_ASSERT(d->m_mimeType.isValid()); ++ //qDebug() << d << "finding final mimetype for" << url << ":" << d->m_mimeType.name(); ++ } + d->m_bMimeTypeKnown = true; + } +