diff -r 7516d6d86cf5 -r ed14f46c0e55 src/hbwidgets/editors/hbdatetimeedit.cpp --- a/src/hbwidgets/editors/hbdatetimeedit.cpp Mon Oct 04 17:49:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,248 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (developer.feedback@nokia.com) -** -** This file is part of the HbWidgets module of the UI Extensions for Mobile. -** -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this file. -** Please review the following information to ensure the GNU Lesser General -** Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at developer.feedback@nokia.com. -** -****************************************************************************/ - -#include -#include - -#include "hblineedit.h" -#include "hbdatetimevalidator_p.h" -#include "hbdatetimeedit.h" -#include "hbdatetimeedit_p.h" -#include "hbevent.h" - -/*! - @alpha - @hbwidgets - \brief The HbDateTimeEdit class provides a widget for editing dates and times. - - - - \sa QDateTime - - */ - -/*! - Constructs datetime edit widget. - */ -HbDateTimeEdit::HbDateTimeEdit (QGraphicsItem *parent) : - HbLineEdit(*new HbDateTimeEditPrivate, parent) -{ - Q_D(HbDateTimeEdit); - d->q_ptr = this; - - d->init(); -} - -/*! - Constructs date time editor to display \a date using default locale. - - */ -HbDateTimeEdit::HbDateTimeEdit (const QDate &date, QGraphicsItem *parent) : - HbLineEdit(*new HbDateTimeEditPrivate, parent) -{ - Q_D(HbDateTimeEdit); - d->q_ptr = this; - - d->init(date); -} - -/*! - Constructs date time editor to display \a time using default locale. - */ -HbDateTimeEdit::HbDateTimeEdit (const QTime &time, QGraphicsItem *parent) : - HbLineEdit(*new HbDateTimeEditPrivate, parent) -{ - Q_D(HbDateTimeEdit); - d->q_ptr = this; - - d->init(time); -} - -/*! - Constructs date time editor to display \a dateTime using default locale. - */ -HbDateTimeEdit::HbDateTimeEdit (const QDateTime &dateTime, QGraphicsItem *parent) : - HbLineEdit(*new HbDateTimeEditPrivate, parent) -{ - Q_D(HbDateTimeEdit); - d->q_ptr = this; - - d->init(dateTime); -} - -/* - for internal use only - */ -HbDateTimeEdit::HbDateTimeEdit (HbDateTimeEditPrivate &dd, QGraphicsItem *parent) : - HbLineEdit(dd, parent) -{ - Q_D(HbDateTimeEdit); - d->q_ptr = this; - - d->init(); -} - -/*! - Destructor. - */ -HbDateTimeEdit::~HbDateTimeEdit () -{ -} - -/*! - \reimp - */ -int HbDateTimeEdit::type () const -{ - return Type; -} - -/*! - Sets the current value. - - \sa dateTime() - */ -void HbDateTimeEdit::setDateTime (const QDateTime& dateTime) -{ - Q_D(HbDateTimeEdit); - d->dateTime = dateTime; - d->isSetDateTimeActive = true; - setPlainText(dateTime.toString(d->validator->displayFormat())); - d->isSetDateTimeActive = false; -} - -/*! - Returns the current value as a QDateTime. - - /sa setDateTime() - */ -QDateTime HbDateTimeEdit::dateTime () const -{ - Q_D(const HbDateTimeEdit); - return d->dateTime; -} - -/*! - Returns the current display format. - - /sa setDisplayFormat() and QDateTime::toString - */ -QString HbDateTimeEdit::displayFormat () const -{ - Q_D(const HbDateTimeEdit); - return d->validator->displayFormat(); -} - -/*! - Sets editor to display date and/or time in custom \a format. - - \sa displayFormat() - \sa QDateTime::toString - */ -void HbDateTimeEdit::setDisplayFormat (const QString& format) -{ - Q_D(HbDateTimeEdit); - - QString suportedFormat = format; - - static const char KNotSupportedDayLongNameFormat[] = "dddd"; - static const char KNotSupportedDayShortNameFormat[] = "ddd"; - static const char KNotSupportedMonthLongNameFormat[] = "MMMM"; - static const char KNotSupportedMonthShortNameFormat[] = "MMM"; - static const char KSupportedMonthFormat[] = "MM"; - - suportedFormat.remove(KNotSupportedDayLongNameFormat); - suportedFormat.remove(KNotSupportedDayShortNameFormat); - - suportedFormat.replace(KNotSupportedMonthLongNameFormat, KSupportedMonthFormat); - suportedFormat.replace(KNotSupportedMonthShortNameFormat, KSupportedMonthFormat); - - if(suportedFormat!=format) { - qWarning() << "Names of days and months are not suported. Replacing format string: " - << format << " by a format string: " - << suportedFormat; - } else { - // to save memory - suportedFormat = format; - } - d->validator->setDisplayFormat(suportedFormat); - setPlainText(d->dateTime.toString(d->validator->displayFormat())); -} - -/*! - Sets editor to display date in format described by \a locale - - \sa QLocale::dateFormat - */ -void HbDateTimeEdit::setDateFormat(const QLocale& locale) -{ - setDisplayFormat(locale.dateFormat(QLocale::ShortFormat)); -} - -/*! - Sets editor to display time in format described by \a locale - - \sa QLocale::timeFormat - */ -void HbDateTimeEdit::setTimeFormat(const QLocale& locale) -{ - setDisplayFormat(locale.timeFormat(QLocale::ShortFormat)); -} - -/*! - Sets editor to display date and time in format described by \a locale - - \sa QLocale::dateTimeFormat - */ -void HbDateTimeEdit::setDateTimeFormat(const QLocale& locale) -{ - setDisplayFormat(locale.dateTimeFormat(QLocale::ShortFormat)); -} - - -void HbDateTimeEdit::setMaxLength (int length) -{ - HbLineEdit::setMaxLength(length); -} - -void HbDateTimeEdit::setText (const QString &text) -{ - HbLineEdit::setText(text); -} - -/*! - \reimp -*/ -bool HbDateTimeEdit::event(QEvent* event) -{ - Q_D(HbDateTimeEdit); - - if (event->type() == HbEvent::InputMethodFocusOut) { - d->validator->fixDate(&d->cursor, true); - } - - return HbLineEdit::event(event); -} -