┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2009-11-25 21:38:47 +0000
committerPeter Penz <[email protected]>2009-11-25 21:38:47 +0000
commit4491e38760e29f9cc5b491112cf43e36df09acb9 (patch)
tree8fbaa5e4b7229b01db64abe752c258c0f01c6ff1
parentd324e790d62c8a341abd06e845f8fe8d64aa8ef3 (diff)
adopt internal interfaces to the new Nepomuk search API
svn path=/trunk/KDE/kdebase/apps/; revision=1054327
-rw-r--r--src/search/dolphinsearchoptionsconfigurator.cpp29
-rw-r--r--src/search/searchcriteriondescription.cpp4
-rw-r--r--src/search/searchcriteriondescription.h34
-rw-r--r--src/search/searchcriterionselector.cpp52
-rw-r--r--src/search/searchcriterionvalue.cpp16
-rw-r--r--src/search/searchcriterionvalue.h17
6 files changed, 76 insertions, 76 deletions
diff --git a/src/search/dolphinsearchoptionsconfigurator.cpp b/src/search/dolphinsearchoptionsconfigurator.cpp
index 150a71210..3b43b8a01 100644
--- a/src/search/dolphinsearchoptionsconfigurator.cpp
+++ b/src/search/dolphinsearchoptionsconfigurator.cpp
@@ -177,28 +177,21 @@ DolphinSearchOptionsConfigurator::~DolphinSearchOptionsConfigurator()
KUrl DolphinSearchOptionsConfigurator::nepomukUrl() const
{
- Nepomuk::Query::AndTerm andTerm;
- foreach (const SearchCriterionSelector* criterion, m_criteria) {
- const Nepomuk::Query::Term term = criterion->queryTerm();
- andTerm.addSubTerm(term);
+ Nepomuk::Query::Query query;
+ if (m_criteria.size() == 1) {
+ query.setTerm(m_criteria.first()->queryTerm());
+ } else {
+ Nepomuk::Query::AndTerm andTerm;
+ foreach (const SearchCriterionSelector* criterion, m_criteria) {
+ const Nepomuk::Query::Term term = criterion->queryTerm();
+ andTerm.addSubTerm(term);
+ }
+ query.setTerm(andTerm);
}
// TODO: respect m_customSearchQuery
- Nepomuk::Query::Query query;
- query.setTerm(andTerm);
return query.toSearchUrl();
-
- /*QString searchOptions;
- QString searchString = m_customSearchQuery;
- if (!searchString.isEmpty() && !searchOptions.isEmpty()) {
- searchString += ' ' + searchOptions;
- } else if (!searchOptions.isEmpty()) {
- searchString += searchOptions;
- }
-
- searchString.insert(0, QLatin1String("nepomuksearch:/"));
- return KUrl(searchString);*/
}
void DolphinSearchOptionsConfigurator::setCustomSearchQuery(const QString& searchQuery)
@@ -326,7 +319,7 @@ bool DolphinSearchOptionsConfigurator::hasSearchParameters() const
// there is no need to call the (quite expensive) method nepomukUrl()
return true;
}
- return nepomukUrl().path() != QLatin1String("/");
+ return true; //nepomukUrl().path() != QLatin1String("/");
}
#include "dolphinsearchoptionsconfigurator.moc"
diff --git a/src/search/searchcriteriondescription.cpp b/src/search/searchcriteriondescription.cpp
index bad53e851..25639df0c 100644
--- a/src/search/searchcriteriondescription.cpp
+++ b/src/search/searchcriteriondescription.cpp
@@ -21,7 +21,7 @@
#include "searchcriteriondescription.h"
SearchCriterionDescription::SearchCriterionDescription(const QString& name,
- const QString& identifier,
+ const QUrl& identifier,
const QList<Comparator>& comparators,
SearchCriterionValue* valueWidget) :
m_name(name),
@@ -40,7 +40,7 @@ QString SearchCriterionDescription::name() const
return m_name;
}
-QString SearchCriterionDescription::identifier() const
+QUrl SearchCriterionDescription::identifier() const
{
return m_identifier;
}
diff --git a/src/search/searchcriteriondescription.h b/src/search/searchcriteriondescription.h
index 98211793e..7739be890 100644
--- a/src/search/searchcriteriondescription.h
+++ b/src/search/searchcriteriondescription.h
@@ -21,8 +21,12 @@
#ifndef SEARCHCRITERIONDESCRIPTION_H
#define SEARCHCRITERIONDESCRIPTION_H
+#define DISABLE_NEPOMUK_LEGACY
+#include <nepomuk/comparisonterm.h>
+
#include <QList>
#include <QString>
+#include <QUrl>
class SearchCriterionValue;
class QWidget;
@@ -38,30 +42,44 @@ class SearchCriterionDescription
public:
struct Comparator
{
- Comparator(const QString& n, const QString& o = QString(),
- const QString& p = QString(), const QString& a = QString()) :
- name(n), operation(o), prefix(p), autoValueType(a) {}
+ Comparator(const QString& n) :
+ name(n),
+ isActive(false),
+ value(Nepomuk::Query::ComparisonTerm::Smaller),
+ autoValueType()
+ {
+ }
+
+ Comparator(const QString& n, Nepomuk::Query::ComparisonTerm::Comparator c,
+ const QString& a = QString()) :
+ name(n),
+ isActive(true),
+ value(c),
+ autoValueType(a)
+ {
+ }
+
QString name; // user visible and translated name
- QString operation; // Nepomuk operation that represents the comparator
- QString prefix; // prefix like "+" or "-" that is part of the Nepomuk query
+ bool isActive;
+ Nepomuk::Query::ComparisonTerm::Comparator value;
QString autoValueType; // type for an automatically calculated value of the value widget
};
SearchCriterionDescription(const QString& name,
- const QString& identifier,
+ const QUrl& identifier,
const QList<Comparator>& comparators,
SearchCriterionValue* valueWidget);
virtual ~SearchCriterionDescription();
QString name() const;
- QString identifier() const;
+ QUrl identifier() const;
const QList<Comparator>& comparators() const;
SearchCriterionValue* valueWidget() const;
private:
QString m_name; // user visible name that gets translated
- QString m_identifier; // internal Nepomuk identifier
+ QUrl m_identifier; // internal Nepomuk identifier URL
QList<Comparator> m_comparators;
SearchCriterionValue* m_valueWidget;
};
diff --git a/src/search/searchcriterionselector.cpp b/src/search/searchcriterionselector.cpp
index addbb6b9f..bb6389aa2 100644
--- a/src/search/searchcriterionselector.cpp
+++ b/src/search/searchcriterionselector.cpp
@@ -93,28 +93,14 @@ Nepomuk::Query::Term SearchCriterionSelector::queryTerm() const
const int compIndex = m_comparatorBox->currentIndex();
const SearchCriterionDescription::Comparator& comp = descr.comparators()[compIndex];
- if (comp.operation.isEmpty()) {
+ if (!comp.isActive) {
return Nepomuk::Query::Term();
}
- Nepomuk::Query::LiteralTerm literalTerm(Soprano::LiteralValue("dummy"));
- Nepomuk::Query::ComparisonTerm term(Soprano::Vocabulary::NAO::lastModified(),
- literalTerm,
- Nepomuk::Query::ComparisonTerm::Smaller);
+ const Nepomuk::Query::ComparisonTerm term(descr.identifier(),
+ m_valueWidget->value(),
+ comp.value);
return term;
-/*
- QString criterion = comp.prefix + descr.identifier() + comp.operation;
- if (!m_valueWidget->value().isEmpty()) {
- const QString value = m_valueWidget->value();
- if (value.contains(' ')) {
- criterion += '"' + value + '"';
- } else {
- // Don't surround the value by " if no space is part of the value.
- // This increases the readability of the search-URL.
- criterion += value;
- }
- }
- return criterion;*/
}
SearchCriterionSelector::Type SearchCriterionSelector::type() const
@@ -162,7 +148,7 @@ void SearchCriterionSelector::slotComparatorChanged(int index)
m_valueWidget->initializeValue(comp.autoValueType);
// only show the value widget, if an operation is defined
// and no automatic calculation is provided
- m_valueWidget->setVisible(!comp.operation.isEmpty() && comp.autoValueType.isEmpty());
+ m_valueWidget->setVisible(comp.isActive && comp.autoValueType.isEmpty());
emit criterionChanged();
}
@@ -175,18 +161,18 @@ void SearchCriterionSelector::createDescriptions()
// TODO: maybe this creation should be forwarded to a factory if
// the number of items increases in future
QList<SearchCriterionDescription::Comparator> defaultComps;
- defaultComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Greater Than"), ">", "+"));
- defaultComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Greater Than or Equal to"), ">=", "+"));
- defaultComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Less Than"), "<", "+"));
- defaultComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Less Than or Equal to"), "<=", "+"));
+ defaultComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Greater Than"), Nepomuk::Query::ComparisonTerm::Greater));
+ defaultComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Greater Than or Equal to"), Nepomuk::Query::ComparisonTerm::GreaterOrEqual));
+ defaultComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Less Than"), Nepomuk::Query::ComparisonTerm::Smaller));
+ defaultComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Less Than or Equal to"), Nepomuk::Query::ComparisonTerm::SmallerOrEqual));
// add "Date" description
QList<SearchCriterionDescription::Comparator> dateComps;
dateComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Anytime")));
- dateComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Today"), ":", "+", "today"));
- dateComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "This Week"), ">=", "+", "thisWeek"));
- dateComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "This Month"), ">=", "+", "thisMonth"));
- dateComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "This Year"), ">=", "+", "thisYear"));
+ dateComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Today"), Nepomuk::Query::ComparisonTerm::Equal, "today"));
+ dateComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "This Week"), Nepomuk::Query::ComparisonTerm::GreaterOrEqual, "thisWeek"));
+ dateComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "This Month"), Nepomuk::Query::ComparisonTerm::GreaterOrEqual, "thisMonth"));
+ dateComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "This Year"), Nepomuk::Query::ComparisonTerm::GreaterOrEqual, "thisYear"));
foreach (const SearchCriterionDescription::Comparator& comp, defaultComps) {
dateComps.append(comp);
}
@@ -194,7 +180,7 @@ void SearchCriterionSelector::createDescriptions()
DateValue* dateValue = new DateValue(this);
dateValue->hide();
SearchCriterionDescription date(i18nc("@label", "Date:"),
- "lastModified",
+ Soprano::Vocabulary::NAO::lastModified(),
dateComps,
dateValue);
Q_ASSERT(static_cast<int>(SearchCriterionSelector::Date) == 0);
@@ -207,7 +193,7 @@ void SearchCriterionSelector::createDescriptions()
SizeValue* sizeValue = new SizeValue(this);
sizeValue->hide();
SearchCriterionDescription size(i18nc("@label", "Size:"),
- "contentSize",
+ Soprano::Vocabulary::NAO::lastModified(), // TODO
sizeComps,
sizeValue);
Q_ASSERT(static_cast<int>(SearchCriterionSelector::Size) == 1);
@@ -216,13 +202,13 @@ void SearchCriterionSelector::createDescriptions()
// add "Tag" description
QList<SearchCriterionDescription::Comparator> tagComps;
tagComps.append(SearchCriterionDescription::Comparator(i18nc("@label All (tags)", "All")));
- tagComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Equal to"), ":", "+"));
- tagComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Not Equal to"), ":", "-"));
+ tagComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Equal to"), Nepomuk::Query::ComparisonTerm::Equal));
+ tagComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Not Equal to"), Nepomuk::Query::ComparisonTerm::Equal)); // TODO
TagValue* tagValue = new TagValue(this);
tagValue->hide();
SearchCriterionDescription tag(i18nc("@label", "Tag:"),
- "tag",
+ Soprano::Vocabulary::NAO::Tag(),
tagComps,
tagValue);
Q_ASSERT(static_cast<int>(SearchCriterionSelector::Tag) == 2);
@@ -235,7 +221,7 @@ void SearchCriterionSelector::createDescriptions()
RatingValue* ratingValue = new RatingValue(this);
ratingValue->hide();
SearchCriterionDescription rating(i18nc("@label", "Rating:"),
- "rating",
+ Soprano::Vocabulary::NAO::rating(),
ratingComps,
ratingValue);
Q_ASSERT(static_cast<int>(SearchCriterionSelector::Rating) == 3);
diff --git a/src/search/searchcriterionvalue.cpp b/src/search/searchcriterionvalue.cpp
index 9db19364b..eda297b83 100644
--- a/src/search/searchcriterionvalue.cpp
+++ b/src/search/searchcriterionvalue.cpp
@@ -65,9 +65,9 @@ DateValue::~DateValue()
{
}
-QString DateValue::value() const
+Nepomuk::Query::LiteralTerm DateValue::value() const
{
- return m_dateWidget->date().toString(Qt::ISODate);
+ return Nepomuk::Query::LiteralTerm(m_dateWidget->date());
}
void DateValue::initializeValue(const QString& valueType)
@@ -112,9 +112,9 @@ TagValue::~TagValue()
{
}
-QString TagValue::value() const
+Nepomuk::Query::LiteralTerm TagValue::value() const
{
- return m_tags->currentText();
+ return Nepomuk::Query::LiteralTerm(m_tags->currentText());
}
void TagValue::showEvent(QShowEvent* event)
@@ -165,9 +165,9 @@ SizeValue::~SizeValue()
{
}
-QString SizeValue::value() const
+Nepomuk::Query::LiteralTerm SizeValue::value() const
{
- return QString();
+ return Nepomuk::Query::LiteralTerm(); // TODO
}
// -------------------------------------------------------------------------
@@ -187,9 +187,9 @@ RatingValue::~RatingValue()
{
}
-QString RatingValue::value() const
+Nepomuk::Query::LiteralTerm RatingValue::value() const
{
- return QString::number(m_ratingWidget->rating());
+ return Nepomuk::Query::LiteralTerm(m_ratingWidget->rating());
}
#include "searchcriterionvalue.moc"
diff --git a/src/search/searchcriterionvalue.h b/src/search/searchcriterionvalue.h
index cabe75cf2..f3dc19e6f 100644
--- a/src/search/searchcriterionvalue.h
+++ b/src/search/searchcriterionvalue.h
@@ -21,6 +21,9 @@
#ifndef SEARCHCRITERIONVALUE_H
#define SEARCHCRITERIONVALUE_H
+#define DISABLE_NEPOMUK_LEGACY
+#include <nepomuk/literalterm.h>
+
#include <QWidget>
class QComboBox;
@@ -42,9 +45,9 @@ public:
/**
* Must be overwritten by derived classes and returns
- * the string representation of the search criterion value.
+ * the literal term of the search criterion value.
*/
- virtual QString value() const = 0;
+ virtual Nepomuk::Query::LiteralTerm value() const = 0;
/**
* Initializes the widget on the base of the given value-type.
@@ -56,7 +59,7 @@ public:
virtual void initializeValue(const QString& valueType);
signals:
- void valueChanged(const QString& value);
+ void valueChanged(const Nepomuk::Query::LiteralTerm& value);
};
@@ -69,7 +72,7 @@ class DateValue : public SearchCriterionValue
public:
DateValue(QWidget* parent = 0);
virtual ~DateValue();
- virtual QString value() const;
+ virtual Nepomuk::Query::LiteralTerm value() const;
virtual void initializeValue(const QString& valueType);
private:
@@ -86,7 +89,7 @@ class TagValue : public SearchCriterionValue
public:
TagValue(QWidget* parent = 0);
virtual ~TagValue();
- virtual QString value() const;
+ virtual Nepomuk::Query::LiteralTerm value() const;
protected:
virtual void showEvent(QShowEvent* event);
@@ -105,7 +108,7 @@ class SizeValue : public SearchCriterionValue
public:
SizeValue(QWidget* parent = 0);
virtual ~SizeValue();
- virtual QString value() const;
+ virtual Nepomuk::Query::LiteralTerm value() const;
private:
KLineEdit* m_lineEdit;
@@ -120,7 +123,7 @@ class RatingValue : public SearchCriterionValue
public:
RatingValue(QWidget* parent = 0);
virtual ~RatingValue();
- virtual QString value() const;
+ virtual Nepomuk::Query::LiteralTerm value() const;
private:
KRatingWidget* m_ratingWidget;