[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/apps/dolphin/src/search
From:       Sebastian Trueg <sebastian () trueg ! de>
Date:       2010-02-17 21:01:29
Message-ID: 1266440489.902011.18537.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1091902 by trueg:

Implemented search restriction to filenames.

 M  +20 -6     dolphinsearchoptionsconfigurator.cpp  


--- trunk/KDE/kdebase/apps/dolphin/src/search/dolphinsearchoptionsconfigurator.cpp \
#1091901:1091902 @@ -28,7 +28,7 @@
 #include <nepomuk/orterm.h>
 #include <nepomuk/queryparser.h>
 #include <nepomuk/resourcetypeterm.h>
-#include <nepomuk/term.h>
+#include <nepomuk/literalterm.h>
 
 #include "nfo.h"
 
@@ -318,11 +318,7 @@
         andTerm.addSubTerm(term);
     }
 
-    // add custom query term from the searchbar
-    const Nepomuk::Query::Query customQuery = \
                Nepomuk::Query::QueryParser::parseQuery(m_customSearchQuery);
-    if (customQuery.isValid()) {
-        andTerm.addSubTerm(customQuery.term());
-    }
+    bool addCustomQuery = true;
 
     // filter result by the "What" filter
     switch (m_whatBox->currentIndex()) {
@@ -338,9 +334,27 @@
         andTerm.addSubTerm(textDocument);
         break;
     }
+    case 3: {
+        // Filenames
+        // trueg: Restriction to filename differs a bit from restriction to a type \
of file since it does not add a condition +        // on the query but influences the \
text edited in the search bar directly. +        // This is a bit tricky as we need \
to use the search bar text as plain text value for filename searches +        // We \
do it the ugly way assuming the user only entered a literal value. +        \
Nepomuk::Query::ComparisonTerm filenameTerm(Nepomuk::Vocabulary::NFO::fileName(), \
Nepomuk::Query::LiteralTerm(m_customSearchQuery)); +        \
andTerm.addSubTerm(filenameTerm); +        addCustomQuery = false;
+    }
     default: break;
     }
 
+    if (addCustomQuery) {
+        // add custom query term from the searchbar
+        const Nepomuk::Query::Query customQuery = \
Nepomuk::Query::QueryParser::parseQuery(m_customSearchQuery); +        if \
(customQuery.isValid()) { +            andTerm.addSubTerm(customQuery.term());
+        }
+    }
+
     Nepomuk::Query::FileQuery fileQuery;
     if ((m_locationBox->currentIndex() == 1) && m_directory.isValid()) {
         // "From Here" is selected as location filter


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic