┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/search/dolphinsearchinformation.cpp25
1 files changed, 25 insertions, 0 deletions
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 <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) {