From 780327f7d3652d4964933533ff6a856bb8aaea22 Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Tue, 28 May 2013 22:03:36 +0530 Subject: [PATCH] Dolphin Search: Do not use Nepomuk for hidden folders Nepomuk does not index hidden folders BUG: 318442 REVIEW: 110697 FIXED-IN: 4.11.0 --- src/search/dolphinsearchinformation.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/search/dolphinsearchinformation.cpp b/src/search/dolphinsearchinformation.cpp index 31f6fcc7b..b723f1ec0 100644 --- a/src/search/dolphinsearchinformation.cpp +++ b/src/search/dolphinsearchinformation.cpp @@ -28,6 +28,8 @@ #include #include +#include +#include struct DolphinSearchInformationSingleton { @@ -50,12 +52,35 @@ bool DolphinSearchInformation::isIndexingEnabled() const return m_indexingEnabled; } +namespace { + /// recursively check if a folder is hidden + bool isDirHidden( QDir& dir ) { + if (QFileInfo(dir.path()).isHidden()) { + return true; + } else if (dir.cdUp()) { + return isDirHidden(dir); + } else { + return false; + } + } + + bool isDirHidden(const QString& path) { + QDir dir(path); + return isDirHidden(dir); + } +} + bool DolphinSearchInformation::isPathIndexed(const KUrl& url) const { #ifdef HAVE_NEPOMUK const KConfig strigiConfig("nepomukstrigirc"); const QStringList indexedFolders = strigiConfig.group("General").readPathEntry("folders", QStringList()); + // Nepomuk does not index hidden folders + if (isDirHidden(url.toLocalFile())) { + return false; + } + // Check whether the path is part of an indexed folder bool isIndexed = false; foreach (const QString& indexedFolder, indexedFolders) { -- 2.47.3