m_searchOptionsConfigurator->hide();
connect(m_searchOptionsConfigurator, SIGNAL(searchOptionsChanged()),
this, SLOT(searchItems()));
+ connect(this, SIGNAL(urlChanged(KUrl)), m_searchOptionsConfigurator, SLOT(setDirectory(KUrl)));
#endif
m_tabBar = new KTabBar(this);
#define DISABLE_NEPOMUK_LEGACY
#include <nepomuk/andterm.h>
+#include <nepomuk/filequery.h>
#include <nepomuk/orterm.h>
#include <nepomuk/queryparser.h>
#include <nepomuk/resourcetypeterm.h>
DolphinSearchOptionsConfigurator::DolphinSearchOptionsConfigurator(QWidget* parent) :
QWidget(parent),
m_initialized(false),
+ m_directory(),
m_locationBox(0),
m_whatBox(0),
m_addSelectorButton(0),
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();
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) {
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"
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
*/
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();
private:
bool m_initialized;
+ KUrl m_directory;
KComboBox* m_locationBox;
KComboBox* m_whatBox;
QPushButton* m_addSelectorButton;