#include <KIcon>
#include <KLineEdit>
#include <KLocale>
-#include <kseparator.h>
+#include <KSeparator>
#include <QButtonGroup>
#include <QDir>
#include <config-nepomuk.h>
#ifdef HAVE_NEPOMUK
- #include <Nepomuk/Query/AndTerm>
#include <Nepomuk/Query/FileQuery>
#include <Nepomuk/Query/LiteralTerm>
+ #include <Nepomuk/Query/OrTerm>
#include <Nepomuk/Query/Query>
#include <Nepomuk/Query/QueryParser>
#include <Nepomuk/Query/ResourceTypeTerm>
void DolphinSearchBox::slotSearchTextChanged(const QString& text)
{
- if (text.isEmpty()) {
- m_startSearchTimer->stop();
- } else {
- m_startSearchTimer->start();
- }
+ m_startSearchTimer->start();
emit searchTextChanged(text);
}
KUrl DolphinSearchBox::nepomukUrlForSearching() const
{
#ifdef HAVE_NEPOMUK
- Nepomuk::Query::AndTerm andTerm;
+ Nepomuk::Query::OrTerm orTerm;
- // Add input from search filter
const QString text = m_searchInput->text();
- if (!text.isEmpty()) {
- if (m_fileNameButton->isChecked()) {
- QString regex = QRegExp::escape(text);
- regex.replace("\\*", QLatin1String(".*"));
- regex.replace("\\?", QLatin1String("."));
- regex.replace("\\", "\\\\");
- andTerm.addSubTerm(Nepomuk::Query::ComparisonTerm(
- Nepomuk::Vocabulary::NFO::fileName(),
- Nepomuk::Query::LiteralTerm(regex),
- Nepomuk::Query::ComparisonTerm::Regexp));
- } else {
- const Nepomuk::Query::Query customQuery = Nepomuk::Query::QueryParser::parseQuery(text, Nepomuk::Query::QueryParser::DetectFilenamePattern);
- if (customQuery.isValid()) {
- andTerm.addSubTerm(customQuery.term());
- }
+
+ // Search the text in the filename in any case
+ QString regex = QRegExp::escape(text);
+ regex.replace("\\*", QLatin1String(".*"));
+ regex.replace("\\?", QLatin1String("."));
+ regex.replace("\\", "\\\\");
+ orTerm.addSubTerm(Nepomuk::Query::ComparisonTerm(
+ Nepomuk::Vocabulary::NFO::fileName(),
+ Nepomuk::Query::LiteralTerm(regex),
+ Nepomuk::Query::ComparisonTerm::Regexp));
+
+ if (m_contentButton->isChecked()) {
+ // Search the text also in the content of the files
+ const Nepomuk::Query::Query customQuery = Nepomuk::Query::QueryParser::parseQuery(text, Nepomuk::Query::QueryParser::DetectFilenamePattern);
+ if (customQuery.isValid()) {
+ orTerm.addSubTerm(customQuery.term());
}
}
Nepomuk::Query::FileQuery fileQuery;
fileQuery.setFileMode(Nepomuk::Query::FileQuery::QueryFilesAndFolders);
- fileQuery.setTerm(andTerm);
+ fileQuery.setTerm(orTerm);
if (m_fromHereButton->isChecked()) {
const bool recursive = true;
fileQuery.addIncludeFolder(m_searchPath, recursive);