┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/search
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2009-12-12 12:23:05 +0000
committerPeter Penz <[email protected]>2009-12-12 12:23:05 +0000
commit5e25098037571c8a43fd8c407c1758065e1a1548 (patch)
tree29dcad0e5ef565f58014e9046fa54f3a2e3cbbdd /src/search
parent1dbcada3764c9d04116672544e7d85aeb3146452 (diff)
allow to restrict the search results by the current folder (including all sub folders)
svn path=/trunk/KDE/kdebase/apps/; revision=1061589
Diffstat (limited to 'src/search')
-rw-r--r--src/search/dolphinsearchoptionsconfigurator.cpp30
-rw-r--r--src/search/dolphinsearchoptionsconfigurator.h11
2 files changed, 38 insertions, 3 deletions
diff --git a/src/search/dolphinsearchoptionsconfigurator.cpp b/src/search/dolphinsearchoptionsconfigurator.cpp
index 9fd07f6cb..b24c36b8e 100644
--- a/src/search/dolphinsearchoptionsconfigurator.cpp
+++ b/src/search/dolphinsearchoptionsconfigurator.cpp
@@ -24,6 +24,7 @@
#define DISABLE_NEPOMUK_LEGACY
#include <nepomuk/andterm.h>
+#include <nepomuk/filequery.h>
#include <nepomuk/orterm.h>
#include <nepomuk/queryparser.h>
#include <nepomuk/resourcetypeterm.h>
@@ -88,6 +89,7 @@ static const CriterionItem g_criterionItems[] = {
DolphinSearchOptionsConfigurator::DolphinSearchOptionsConfigurator(QWidget* parent) :
QWidget(parent),
m_initialized(false),
+ m_directory(),
m_locationBox(0),
m_whatBox(0),
m_addSelectorButton(0),
@@ -184,6 +186,17 @@ DolphinSearchOptionsConfigurator::~DolphinSearchOptionsConfigurator()
SearchSettings::self()->writeConfig();
}
+QString DolphinSearchOptionsConfigurator::customSearchQuery() const
+{
+ return m_customSearchQuery;
+}
+
+
+KUrl DolphinSearchOptionsConfigurator::directory() const
+{
+ return m_directory;
+}
+
KUrl DolphinSearchOptionsConfigurator::nepomukSearchUrl() const
{
const Nepomuk::Query::Query query = nepomukQuery();
@@ -196,6 +209,13 @@ void DolphinSearchOptionsConfigurator::setCustomSearchQuery(const QString& searc
updateButtons();
}
+void DolphinSearchOptionsConfigurator::setDirectory(const KUrl& dir)
+{
+ if (dir.protocol() != QString::fromLatin1("nepomuksearch")) {
+ m_directory = dir;
+ }
+}
+
void DolphinSearchOptionsConfigurator::showEvent(QShowEvent* event)
{
if (!event->spontaneous() && !m_initialized) {
@@ -342,9 +362,13 @@ Nepomuk::Query::Query DolphinSearchOptionsConfigurator::nepomukQuery() const
default: break;
}
- Nepomuk::Query::Query query;
- query.setTerm(andTerm);
- return query;
+ Nepomuk::Query::FileQuery fileQuery;
+ if ((m_locationBox->currentIndex() == 1) && m_directory.isValid()) {
+ // "From Here" is selected as location filter
+ fileQuery.addIncludeFolder(m_directory);
+ }
+ fileQuery.setTerm(andTerm);
+ return fileQuery;
}
#include "dolphinsearchoptionsconfigurator.moc"
diff --git a/src/search/dolphinsearchoptionsconfigurator.h b/src/search/dolphinsearchoptionsconfigurator.h
index 90adea736..e4f7718e2 100644
--- a/src/search/dolphinsearchoptionsconfigurator.h
+++ b/src/search/dolphinsearchoptionsconfigurator.h
@@ -43,6 +43,9 @@ public:
DolphinSearchOptionsConfigurator(QWidget* parent = 0);
virtual ~DolphinSearchOptionsConfigurator();
+ QString customSearchQuery() const;
+ KUrl directory() const;
+
/**
* Returns the sum of the configured options and the
* custom search query as Nepomuk conform search URL. If the
@@ -60,6 +63,13 @@ public slots:
*/
void setCustomSearchQuery(const QString& searchQuery);
+ /**
+ * Sets the directory that is used when the
+ * "From Here"-location-filter is used. URLs that represent
+ * already a Nepomuk search URL will be ignored.
+ */
+ void setDirectory(const KUrl& dir);
+
signals:
void searchOptionsChanged();
@@ -97,6 +107,7 @@ private:
private:
bool m_initialized;
+ KUrl m_directory;
KComboBox* m_locationBox;
KComboBox* m_whatBox;
QPushButton* m_addSelectorButton;