]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/search/dolphinsearchinformation.cpp
Merge branch 'KDE/4.11' into KDE/4.12
[dolphin.git] / src / search / dolphinsearchinformation.cpp
index 31f6fcc7bdfa8289a9140fab14cea695c2eaf095..b723f1ec00a4547b99760ede1a6fe8919f6895b6 100644 (file)
@@ -28,6 +28,8 @@
 
 #include <KGlobal>
 #include <KUrl>
+#include <QFileInfo>
+#include <QDir>
 
 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) {