#include "searchcriterionvalue.h"
+#include <kdatewidget.h>
#include <klineedit.h>
#include <klocale.h>
+#include <nepomuk/kratingwidget.h>
#include <nepomuk/tag.h>
#include <QComboBox>
-#include <QDateEdit>
+#include <QDate>
+#include <QIntValidator>
#include <QLabel>
#include <QHBoxLayout>
#include <QShowEvent>
{
}
+void SearchCriterionValue::initializeValue(const QString& valueType)
+{
+ Q_UNUSED(valueType);
+}
+
// -------------------------------------------------------------------------
DateValue::DateValue(QWidget* parent) :
SearchCriterionValue(parent),
- m_dateEdit(0)
+ m_dateWidget(0)
{
- m_dateEdit = new QDateEdit(this);
+ m_dateWidget = new KDateWidget(QDate::currentDate(), this);
QHBoxLayout* layout = new QHBoxLayout(this);
layout->setMargin(0);
- layout->addWidget(m_dateEdit);
+ layout->addWidget(m_dateWidget);
}
DateValue::~DateValue()
{
}
-QString DateValue::value() const
+Nepomuk::Query::LiteralTerm DateValue::value() const
+{
+ const QDateTime dateTime(m_dateWidget->date());
+ return Nepomuk::Query::LiteralTerm(dateTime);
+}
+
+void DateValue::initializeValue(const QString& valueType)
{
- return QString();
+ QDate date;
+ if (valueType.isEmpty() || (valueType == "today")) {
+ date = QDate::currentDate();
+ } else if (valueType == "thisWeek") {
+ const QDate today = QDate::currentDate();
+ const int dayOfWeek = today.dayOfWeek();
+ date = today.addDays(-dayOfWeek);
+ } else if (valueType == "thisMonth") {
+ const QDate today = QDate::currentDate();
+ date = QDate(today.year(), today.month(), 1);
+ } else if (valueType == "thisYear") {
+ date = QDate(QDate::currentDate().year(), 1, 1);
+ } else {
+ // unknown value-type
+ Q_ASSERT(false);
+ }
+ m_dateWidget->setDate(date);
}
// -------------------------------------------------------------------------
QHBoxLayout* layout = new QHBoxLayout(this);
layout->setMargin(0);
layout->addWidget(m_tags);
+
+ connect(m_tags, SIGNAL(activated(QString)),
+ this, SIGNAL(valueChanged(QString)));
}
TagValue::~TagValue()
{
}
-QString TagValue::value() const
+Nepomuk::Query::LiteralTerm TagValue::value() const
{
- return QString();
+ return Nepomuk::Query::LiteralTerm(m_tags->currentText());
}
void TagValue::showEvent(QShowEvent* event)
{
m_lineEdit = new KLineEdit(this);
m_lineEdit->setClearButtonShown(true);
+ m_lineEdit->setValidator(new QIntValidator(this));
+ m_lineEdit->setAlignment(Qt::AlignRight);
m_units = new QComboBox(this);
// TODO: check the KByte vs. KiByte dilemma :-/
m_units->addItem(i18nc("@label", "MByte"));
m_units->addItem(i18nc("@label", "GByte"));
+ // set 1 MByte as default
+ m_lineEdit->setText("1");
+ m_units->setCurrentIndex(2);
+
QHBoxLayout* layout = new QHBoxLayout(this);
layout->setMargin(0);
layout->addWidget(m_lineEdit);
{
}
-QString SizeValue::value() const
+Nepomuk::Query::LiteralTerm SizeValue::value() const
+{
+ return Nepomuk::Query::LiteralTerm(); // TODO
+}
+
+// -------------------------------------------------------------------------
+
+RatingValue::RatingValue(QWidget* parent) :
+ SearchCriterionValue(parent),
+ m_ratingWidget(0)
+{
+ m_ratingWidget = new KRatingWidget(this);
+
+ QHBoxLayout* layout = new QHBoxLayout(this);
+ layout->setMargin(0);
+ layout->addWidget(m_ratingWidget);
+}
+
+RatingValue::~RatingValue()
+{
+}
+
+Nepomuk::Query::LiteralTerm RatingValue::value() const
{
- return QString();
+ return Nepomuk::Query::LiteralTerm(m_ratingWidget->rating());
}
#include "searchcriterionvalue.moc"