From 3d7b54b21a47e98d1d02c7d21061a6bd43b8d1c7 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Fri, 13 Nov 2009 22:48:07 +0000 Subject: Implemented initialization of value-widgets. This allows e.g. to apply dates like "today", "last week", ... to the date-value-widgets just by specifying a search criterion. svn path=/trunk/KDE/kdebase/apps/; revision=1048771 --- src/search/searchcriterionvalue.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/search/searchcriterionvalue.cpp') diff --git a/src/search/searchcriterionvalue.cpp b/src/search/searchcriterionvalue.cpp index 7bf83e94f..7d8e2d8cd 100644 --- a/src/search/searchcriterionvalue.cpp +++ b/src/search/searchcriterionvalue.cpp @@ -42,6 +42,11 @@ SearchCriterionValue::~SearchCriterionValue() { } +void SearchCriterionValue::initializeValue(const QString& valueType) +{ + Q_UNUSED(valueType); +} + // ------------------------------------------------------------------------- DateValue::DateValue(QWidget* parent) : @@ -64,6 +69,31 @@ QString DateValue::value() const return m_dateWidget->date().toString(Qt::ISODate); } +void DateValue::initializeValue(const QString& valueType) +{ + if (valueType.isEmpty()) { + return; + } + + QDate date; + if (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); +} + // ------------------------------------------------------------------------- TagValue::TagValue(QWidget* parent) : -- cgit v1.3