From 8344c3e53d1ef13faae80de313ab2959012faf45 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Fri, 5 Mar 2010 10:20:29 +1000 Subject: Remove NumberFormatter and DateTimeFormatter. Functions have been added to QML's global Qt object for date/time formatting. Number formatting will not be supported for 4.7. Task-number: QT-2821 --- doc/src/declarative/elements.qdoc | 2 - .../util/qdeclarativedatetimeformatter.cpp | 373 --------------------- .../util/qdeclarativedatetimeformatter_p.h | 117 ------- .../util/qdeclarativenumberformatter.cpp | 261 -------------- .../util/qdeclarativenumberformatter_p.h | 93 ----- src/declarative/util/qdeclarativeutilmodule.cpp | 6 - src/declarative/util/qnumberformat.cpp | 224 ------------- src/declarative/util/qnumberformat_p.h | 174 ---------- src/declarative/util/util.pri | 6 - tests/auto/declarative/declarative.pro | 2 - .../qdeclarativedatetimeformatter.pro | 5 - .../tst_qdeclarativedatetimeformatter.cpp | 150 --------- .../qdeclarativenumberformatter.pro | 5 - .../tst_qdeclarativenumberformatter.cpp | 224 ------------- 14 files changed, 1642 deletions(-) delete mode 100644 src/declarative/util/qdeclarativedatetimeformatter.cpp delete mode 100644 src/declarative/util/qdeclarativedatetimeformatter_p.h delete mode 100644 src/declarative/util/qdeclarativenumberformatter.cpp delete mode 100644 src/declarative/util/qdeclarativenumberformatter_p.h delete mode 100644 src/declarative/util/qnumberformat.cpp delete mode 100644 src/declarative/util/qnumberformat_p.h delete mode 100644 tests/auto/declarative/qdeclarativedatetimeformatter/qdeclarativedatetimeformatter.pro delete mode 100644 tests/auto/declarative/qdeclarativedatetimeformatter/tst_qdeclarativedatetimeformatter.cpp delete mode 100644 tests/auto/declarative/qdeclarativenumberformatter/qdeclarativenumberformatter.pro delete mode 100644 tests/auto/declarative/qdeclarativenumberformatter/tst_qdeclarativenumberformatter.cpp diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc index 22810e3..83adcb3 100644 --- a/doc/src/declarative/elements.qdoc +++ b/doc/src/declarative/elements.qdoc @@ -93,8 +93,6 @@ The following table lists the QML elements provided by the Qt Declarative module \o \l Package \o \l XmlListModel and XmlRole \o \l WorkerListModel -\o \l DateTimeFormatter -\o \l NumberFormatter \endlist \o diff --git a/src/declarative/util/qdeclarativedatetimeformatter.cpp b/src/declarative/util/qdeclarativedatetimeformatter.cpp deleted file mode 100644 index 4087091..0000000 --- a/src/declarative/util/qdeclarativedatetimeformatter.cpp +++ /dev/null @@ -1,373 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, 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 qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qdeclarativedatetimeformatter_p.h" - -#include - -#include - -QT_BEGIN_NAMESPACE - -//TODO: may need optimisation as the QDateTime member may not be needed? -// be able to set a locale? - -class QDeclarativeDateTimeFormatterPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QDeclarativeDateTimeFormatter) -public: - QDeclarativeDateTimeFormatterPrivate() : locale(QLocale::system()), longStyle(false), componentComplete(true) {} - - void updateText(); - - QDateTime dateTime; - QDate date; - QTime time; - QLocale locale; - QString dateTimeText; - QString dateText; - QString timeText; - QString dateTimeFormat; //set for convienience? - QString dateFormat; - QString timeFormat; - bool longStyle; - bool componentComplete; -}; - -/*! - \qmlclass DateTimeFormatter QDeclarativeDateTimeFormatter - \since 4.7 - \brief The DateTimeFormatter allows you to control the format of a date string. - - \code - DateTimeFormatter { id: formatter; date: System.date } - Text { text: formatter.dateText } - \endcode - - By default, the text properties (dateText, timeText, and dateTimeText) will return the - date and time using the current system locale's format. -*/ - -/*! - \internal - \class QDeclarativeDateTimeFormatter - \ingroup group_utility - \brief The QDeclarativeDateTimeFormatter class allows you to format a date string. -*/ - -QDeclarativeDateTimeFormatter::QDeclarativeDateTimeFormatter(QObject *parent) -: QObject(*(new QDeclarativeDateTimeFormatterPrivate), parent) -{ -} - -QDeclarativeDateTimeFormatter::~QDeclarativeDateTimeFormatter() -{ -} - -/*! - \qmlproperty string DateTimeFormatter::dateText - \qmlproperty string DateTimeFormatter::timeText - \qmlproperty string DateTimeFormatter::dateTimeText - - Formatted text representations of the \c date, \c time, - and \c {date and time}, respectively. - - If there is no explictly specified format the DateTimeFormatter - will use the system locale's default 'short' setting. - - \code - // specify source date (assuming today is February 19, 2009) - DateTimeFormatter { id: formatter; dateTime: Today.date } - - // display the full date and time - Text { text: formatter.dateText } - \endcode - - Would be equivalent to the following for a US English locale: - - \code - // display the date - Text { text: "2/19/09" } - \endcode -*/ -QString QDeclarativeDateTimeFormatter::dateTimeText() const -{ - Q_D(const QDeclarativeDateTimeFormatter); - return d->dateTimeText; -} - -QString QDeclarativeDateTimeFormatter::dateText() const -{ - Q_D(const QDeclarativeDateTimeFormatter); - return d->dateText; -} - -QString QDeclarativeDateTimeFormatter::timeText() const -{ - Q_D(const QDeclarativeDateTimeFormatter); - return d->timeText; -} - -/*! - \qmlproperty date DateTimeFormatter::date - \qmlproperty time DateTimeFormatter::time - \qmlproperty datetime DateTimeFormatter::dateTime - - The source date and time to be used by the formatter. - - \code - // setting the date and time - DateTimeFormatter { date: System.date; time: System.time } - \endcode - - For convienience it is possible to set the datetime property to set both the date and the time. - \code - // setting the datetime - DateTimeFormatter { dateTime: System.dateTime } - \endcode - - There can only be one instance of date and time per formatter; if date, time, and dateTime are all - set the actual date and time used is not guaranteed. - - \note If no date is set, dateTimeText will be just the date; - If no time is set, the dateTimeText will be just the time. - -*/ -QDate QDeclarativeDateTimeFormatter::date() const -{ - Q_D(const QDeclarativeDateTimeFormatter); - return d->date; -} - -QTime QDeclarativeDateTimeFormatter::time() const -{ - Q_D(const QDeclarativeDateTimeFormatter); - return d->time; -} - -QDateTime QDeclarativeDateTimeFormatter::dateTime() const -{ - Q_D(const QDeclarativeDateTimeFormatter); - return d->dateTime; -} - -/*! - \qmlproperty string DateTimeFormatter::dateFormat - \qmlproperty string DateTimeFormatter::timeFormat - \qmlproperty string DateTimeFormatter::dateTimeFormat - - Specifies a custom format which the DateTime Formatter can use. - - If there is no explictly specified format the DateTimeFormatter - will use the system locale's default 'short' setting. - - The text's format may be modified by setting: - \list - \i \c dateFormat - \i \c timeFormat - \i \c dateTimeFormat - \endlist - - If only the format for date is defined, the time and dateTime formats will be defined - as the system locale default and likewise for the others. - - Syntax for the format is based on the QDateTime::toString() formatting options. - - \code - // Format the date such that the dateText is: '1997-12-12' - DateTimeFormatter { id: formatter; dateTime: Today.dateTime; formatDate: "yyyy-MM-d" } - \endcode - - Assigning an empty string to a particular format will reset it. -*/ -QString QDeclarativeDateTimeFormatter::dateTimeFormat() const -{ - Q_D(const QDeclarativeDateTimeFormatter); - return d->dateTimeFormat; -} - -QString QDeclarativeDateTimeFormatter::dateFormat() const -{ - Q_D(const QDeclarativeDateTimeFormatter); - return d->dateFormat; -} - -QString QDeclarativeDateTimeFormatter::timeFormat() const -{ - Q_D(const QDeclarativeDateTimeFormatter); - return d->timeFormat; -} - -/*! - \qmlproperty bool DateTimeFormatter::longStyle - - This property causes the formatter to use the system locale's long format rather than short format - by default. - - This setting is off by default. -*/ -bool QDeclarativeDateTimeFormatter::longStyle() const -{ - Q_D(const QDeclarativeDateTimeFormatter); - return d->longStyle; -} - -void QDeclarativeDateTimeFormatter::setDateTime(const QDateTime &dateTime) -{ - Q_D(QDeclarativeDateTimeFormatter); - if (d->dateTime == dateTime) - return; - d->dateTime = dateTime; - d->date = d->dateTime.date(); - d->time = d->dateTime.time(); - d->updateText(); -} - -void QDeclarativeDateTimeFormatter::setTime(const QTime &time) -{ - Q_D(QDeclarativeDateTimeFormatter); - if (d->dateTime.time() == time) - return; - d->time = time; - d->dateTime.setTime(time); - d->updateText(); -} - -void QDeclarativeDateTimeFormatter::setDate(const QDate &date) -{ - Q_D(QDeclarativeDateTimeFormatter); - if (d->dateTime.date() == date) - return; - d->date = date; - bool clearTime = d->dateTime.time().isValid() ? false : true; //because setting date generates default time - d->dateTime.setDate(date); - if (clearTime) - d->dateTime.setTime(QTime()); - d->updateText(); -} - -//DateTime formatting may be a combination of date and time? -void QDeclarativeDateTimeFormatter::setDateTimeFormat(const QString &format) -{ - Q_D(QDeclarativeDateTimeFormatter); - //no format checking - d->dateTimeFormat = format; - d->updateText(); -} - -void QDeclarativeDateTimeFormatter::setDateFormat(const QString &format) -{ - Q_D(QDeclarativeDateTimeFormatter); - //no format checking - d->dateFormat = format; - d->updateText(); -} - -void QDeclarativeDateTimeFormatter::setTimeFormat(const QString &format) -{ - Q_D(QDeclarativeDateTimeFormatter); - //no format checking - d->timeFormat = format; - d->updateText(); -} - -void QDeclarativeDateTimeFormatter::setLongStyle(bool longStyle) -{ - Q_D(QDeclarativeDateTimeFormatter); - d->longStyle = longStyle; - d->updateText(); -} - -void QDeclarativeDateTimeFormatterPrivate::updateText() -{ - Q_Q(QDeclarativeDateTimeFormatter); - if (!componentComplete) - return; - - QString str; - QString str1; - QString str2; - - Qt::DateFormat defaultFormat = longStyle ? Qt::SystemLocaleLongDate : Qt::SystemLocaleShortDate; - - if (dateFormat.isEmpty()) - str1 = date.toString(defaultFormat); - else - str1 = date.toString(dateFormat); - - if (timeFormat.isEmpty()) - str2 = time.toString(defaultFormat); - else - str2 = time.toString(timeFormat); - - if (dateTimeFormat.isEmpty()) - str = dateTime.toString(defaultFormat); - //else if (!formatTime.isEmpty() && !formatDate.isEmpty()) - // str = str1 + QLatin1Char(' ') + str2; - else - str = dateTime.toString(dateTimeFormat); - - if (dateTimeText == str && dateText == str1 && timeText == str2) - return; - - dateTimeText = str; - dateText = str1; - timeText = str2; - - emit q->textChanged(); -} - -void QDeclarativeDateTimeFormatter::classBegin() -{ - Q_D(QDeclarativeDateTimeFormatter); - d->componentComplete = false; -} - -void QDeclarativeDateTimeFormatter::componentComplete() -{ - Q_D(QDeclarativeDateTimeFormatter); - d->componentComplete = true; - d->updateText(); -} - - - -QT_END_NAMESPACE diff --git a/src/declarative/util/qdeclarativedatetimeformatter_p.h b/src/declarative/util/qdeclarativedatetimeformatter_p.h deleted file mode 100644 index da900be..0000000 --- a/src/declarative/util/qdeclarativedatetimeformatter_p.h +++ /dev/null @@ -1,117 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, 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 qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QDECLARATIVEDATETIMEFORMATTER_H -#define QDECLARATIVEDATETIMEFORMATTER_H - -#include - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QDeclarativeDateTimeFormatterPrivate; -class Q_DECLARATIVE_EXPORT QDeclarativeDateTimeFormatter : public QObject, public QDeclarativeParserStatus -{ - Q_OBJECT - Q_INTERFACES(QDeclarativeParserStatus) - - Q_PROPERTY(QString dateText READ dateText NOTIFY textChanged) - Q_PROPERTY(QString timeText READ timeText NOTIFY textChanged) - Q_PROPERTY(QString dateTimeText READ dateTimeText NOTIFY textChanged) - Q_PROPERTY(QDate date READ date WRITE setDate) - Q_PROPERTY(QTime time READ time WRITE setTime) - Q_PROPERTY(QDateTime dateTime READ dateTime WRITE setDateTime) - Q_PROPERTY(QString dateFormat READ dateFormat WRITE setDateFormat) - Q_PROPERTY(QString timeFormat READ timeFormat WRITE setTimeFormat) - Q_PROPERTY(QString dateTimeFormat READ dateTimeFormat WRITE setDateTimeFormat) - Q_PROPERTY(bool longStyle READ longStyle WRITE setLongStyle) -public: - QDeclarativeDateTimeFormatter(QObject *parent=0); - ~QDeclarativeDateTimeFormatter(); - - QString dateTimeText() const; - QString dateText() const; - QString timeText() const; - - QDate date() const; - void setDate(const QDate &); - - QTime time() const; - void setTime(const QTime &); - - QDateTime dateTime() const; - void setDateTime(const QDateTime &); - - QString dateTimeFormat() const; - void setDateTimeFormat(const QString &); - - QString dateFormat() const; - void setDateFormat(const QString &); - - QString timeFormat() const; - void setTimeFormat(const QString &); - - bool longStyle() const; - void setLongStyle(bool); - - virtual void classBegin(); - virtual void componentComplete(); - -Q_SIGNALS: - void textChanged(); - -private: - Q_DISABLE_COPY(QDeclarativeDateTimeFormatter) - Q_DECLARE_PRIVATE(QDeclarativeDateTimeFormatter) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QDeclarativeDateTimeFormatter) - -QT_END_HEADER - -#endif diff --git a/src/declarative/util/qdeclarativenumberformatter.cpp b/src/declarative/util/qdeclarativenumberformatter.cpp deleted file mode 100644 index 5d81958..0000000 --- a/src/declarative/util/qdeclarativenumberformatter.cpp +++ /dev/null @@ -1,261 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, 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 qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qdeclarativenumberformatter_p.h" - -#include - -QT_BEGIN_NAMESPACE - -//TODO: set locale -// docs -// this is a wrapper around qnumberformat (test integration) -// if number or format haven't been explictly set, text should be an empty string - -class QDeclarativeNumberFormatterPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QDeclarativeNumberFormatter) -public: - QDeclarativeNumberFormatterPrivate() : locale(QLocale::system()), number(0), componentComplete(true) {} - - void updateText(); - - QLocale locale; - QString format; - QNumberFormat numberFormat; - QString text; - qreal number; - bool componentComplete; -}; -/*! - \qmlclass NumberFormatter - \since 4.7 - \brief The NumberFormatter allows you to control the format of a number string. - - The format property documentation has more details on how the format can be manipulated. - - In the following example, the text element will display the text "1,234.57". - \code - NumberFormatter { id: formatter; number: 1234.5678; format: "##,##0.##" } - Text { text: formatter.text } - \endcode - - */ -/*! - \internal - \class QDeclarativeNumberFormatter - \ingroup group_utility - \brief The QDeclarativeNumberFormatter class allows you to format a number to a particular string format/locale specific number format. -*/ - -QDeclarativeNumberFormatter::QDeclarativeNumberFormatter(QObject *parent) -: QObject(*(new QDeclarativeNumberFormatterPrivate), parent) -{ -} - -QDeclarativeNumberFormatter::~QDeclarativeNumberFormatter() -{ -} - -/*! - \qmlproperty string NumberFormatter::text - - The number in the specified format. - - If no format is specified the text will be empty. -*/ - -QString QDeclarativeNumberFormatter::text() const -{ - Q_D(const QDeclarativeNumberFormatter); - return d->text; -} - -/*! - \qmlproperty real NumberFormatter::number - - A single point precision number. (Doubles are not yet supported) - -*/ -qreal QDeclarativeNumberFormatter::number() const -{ - Q_D(const QDeclarativeNumberFormatter); - return d->number; -} - -/*! - \qmlproperty string NumberFormatter::format - - The particular format the number will adhere to during the conversion to text. - - The format syntax follows a style similar to the Unicode Standard (UTS35). - - The table below shows the characters, patterns that can be used in the format. - - \table - \header - \o Character - \o Meaning - \row - \o # - \o Any digit(s), zero shows as absent (for leading/trailing zeroes). - \row - \o 0 - \o Implicit digit. Zero will show in the case that the input number is too small. - \row - \o . - \o Decimal separator. Output decimal seperator will be dependant on system locale. - \row - \o , - \o Grouping separator. The number of digits (either #, or 0) between the grouping separator and the decimal (or the rightmost digit) will determine the groupingSize). - \row - \o other - \o Any other character will be taken as a string literal and placed directly into the output string. - \endtable - - Invalid formats will not guarantee a meaningful text output. - - \note Input numbers that are too long for the given format will be rounded dependent on precison based on the position of the decimal point. - - The following table illustrates the output text created by applying some examples of numeric formats to the formatter. - - \table - \header - \o Format - \o Number - \o Output - \row - \o ### - \o 123456 - \o 123456 - \row - \o 000 - \o 123456 - \o 123456 - \row - \o ###### - \o 1234 - \o 1234 - \row - \o 000000 - \o 1234 - \o 001234 - \row - \o ##,##0.## - \o 1234.456 - \o 1,234.46 (for US locale) - \codeline 1 234,46 (for FR locale) - \row - \o 000000,000.# - \o 123456 - \o 000,123,456 (for US locale) - \codeline 000 123 456 (for FR locale) - \row - \o 0.0### - \o 0.999997 - \o 1.0 - \row - \o (000) 000 - 000 - \o 12345678 - \o (012) 345 - 678 - \row - \o #A - \o 12 - \o 12A - \endtable - -*/ -QString QDeclarativeNumberFormatter::format() const -{ - Q_D(const QDeclarativeNumberFormatter); - return d->format; -} - -void QDeclarativeNumberFormatter::setNumber(const qreal &number) -{ - Q_D(QDeclarativeNumberFormatter); - if (d->number == number) - return; - d->number = number; - d->updateText(); -} - -void QDeclarativeNumberFormatter::setFormat(const QString &format) -{ - Q_D(QDeclarativeNumberFormatter); - //no format checking - if (format.isEmpty()) - d->format = QString::null; - else - d->format = format; - d->updateText(); -} - -void QDeclarativeNumberFormatterPrivate::updateText() -{ - Q_Q(QDeclarativeNumberFormatter); - if (!componentComplete) - return; - - QNumberFormat tempFormat; - tempFormat.setFormat(format); - tempFormat.setNumber(number); - - text = tempFormat.text(); - - emit q->textChanged(); -} - -void QDeclarativeNumberFormatter::classBegin() -{ - Q_D(QDeclarativeNumberFormatter); - d->componentComplete = false; -} - -void QDeclarativeNumberFormatter::componentComplete() -{ - Q_D(QDeclarativeNumberFormatter); - d->componentComplete = true; - d->updateText(); -} - - -QT_END_NAMESPACE diff --git a/src/declarative/util/qdeclarativenumberformatter_p.h b/src/declarative/util/qdeclarativenumberformatter_p.h deleted file mode 100644 index 3b8c7e1..0000000 --- a/src/declarative/util/qdeclarativenumberformatter_p.h +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, 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 qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QDECLARATIVENUMBERFORMATTER_H -#define QDECLARATIVENUMBERFORMATTER_H - -#include "qnumberformat_p.h" - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QDeclarativeNumberFormatterPrivate; -class Q_DECLARATIVE_EXPORT QDeclarativeNumberFormatter : public QObject, public QDeclarativeParserStatus -{ - Q_OBJECT - Q_INTERFACES(QDeclarativeParserStatus) - - Q_PROPERTY(QString text READ text NOTIFY textChanged) - Q_PROPERTY(QString format READ format WRITE setFormat) - Q_PROPERTY(qreal number READ number WRITE setNumber) -public: - QDeclarativeNumberFormatter(QObject *parent=0); - ~QDeclarativeNumberFormatter(); - - QString text() const; - - qreal number() const; - void setNumber(const qreal &); - - QString format() const; - void setFormat(const QString &); - - virtual void classBegin(); - virtual void componentComplete(); - -Q_SIGNALS: - void textChanged(); - -private: - Q_DISABLE_COPY(QDeclarativeNumberFormatter) - Q_DECLARE_PRIVATE(QDeclarativeNumberFormatter) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QDeclarativeNumberFormatter) - -QT_END_HEADER - -#endif diff --git a/src/declarative/util/qdeclarativeutilmodule.cpp b/src/declarative/util/qdeclarativeutilmodule.cpp index 1f85b89..65bfdc1 100644 --- a/src/declarative/util/qdeclarativeutilmodule.cpp +++ b/src/declarative/util/qdeclarativeutilmodule.cpp @@ -46,13 +46,11 @@ #include "qdeclarativebehavior_p.h" #include "qdeclarativebind_p.h" #include "qdeclarativeconnections_p.h" -#include "qdeclarativedatetimeformatter_p.h" #include "qdeclarativeeasefollow_p.h" #include "qdeclarativefontloader_p.h" #include "qdeclarativelistaccessor_p.h" #include "qdeclarativelistmodel_p.h" #include "qdeclarativenullablevalue_p_p.h" -#include "qdeclarativenumberformatter_p.h" #include "qdeclarativeopenmetaobject_p.h" #include "qdeclarativepackage_p.h" #include "qdeclarativepixmapcache_p.h" @@ -73,7 +71,6 @@ #ifndef QT_NO_XMLPATTERNS #include "qdeclarativexmllistmodel_p.h" #endif -#include "qnumberformat_p.h" #include "qperformancelog_p_p.h" void QDeclarativeUtilModule::defineModule() @@ -83,12 +80,10 @@ void QDeclarativeUtilModule::defineModule() QML_REGISTER_TYPE(Qt,4,6,Binding,QDeclarativeBind); QML_REGISTER_TYPE(Qt,4,6,ColorAnimation,QDeclarativeColorAnimation); QML_REGISTER_TYPE(Qt,4,6,Connections,QDeclarativeConnections); - QML_REGISTER_TYPE(Qt,4,6,DateTimeFormatter,QDeclarativeDateTimeFormatter); QML_REGISTER_TYPE(Qt,4,6,EaseFollow,QDeclarativeEaseFollow);; QML_REGISTER_TYPE(Qt,4,6,FontLoader,QDeclarativeFontLoader); QML_REGISTER_TYPE(Qt,4,6,ListElement,QDeclarativeListElement); QML_REGISTER_TYPE(Qt,4,6,NumberAnimation,QDeclarativeNumberAnimation); - QML_REGISTER_TYPE(Qt,4,6,NumberFormatter,QDeclarativeNumberFormatter);; QML_REGISTER_TYPE(Qt,4,6,Package,QDeclarativePackage); QML_REGISTER_TYPE(Qt,4,6,ParallelAnimation,QDeclarativeParallelAnimation); QML_REGISTER_TYPE(Qt,4,6,ParentAction,QDeclarativeParentAction); @@ -116,7 +111,6 @@ void QDeclarativeUtilModule::defineModule() QML_REGISTER_NOCREATE_TYPE(QDeclarativeAnchors); QML_REGISTER_NOCREATE_TYPE(QDeclarativeAbstractAnimation); QML_REGISTER_NOCREATE_TYPE(QDeclarativeStateOperation); - QML_REGISTER_NOCREATE_TYPE(QNumberFormat); QML_REGISTER_CUSTOM_TYPE(Qt, 4,6, ListModel, QDeclarativeListModel, QDeclarativeListModelParser); QML_REGISTER_CUSTOM_TYPE(Qt, 4,6, PropertyChanges, QDeclarativePropertyChanges, QDeclarativePropertyChangesParser); diff --git a/src/declarative/util/qnumberformat.cpp b/src/declarative/util/qnumberformat.cpp deleted file mode 100644 index 81d0b90..0000000 --- a/src/declarative/util/qnumberformat.cpp +++ /dev/null @@ -1,224 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, 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 qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qnumberformat_p.h" -#include - -QT_BEGIN_NAMESPACE - -QNumberFormat::QNumberFormat(QObject *parent) : QObject(parent), _number(0), _type(Decimal), - _groupingSize(0) -{ - _locale = QLocale::system(); - _groupingSeparator = _locale.groupSeparator(); - _decimalSeparator = _locale.decimalPoint(); - _currencySymbol = QLatin1Char('$'); -} - -QNumberFormat::~QNumberFormat() -{ - -} - -void QNumberFormat::updateText() -{ - QTime t; - t.start(); - static int totalTime; - - handleFormat(); - - totalTime += t.elapsed(); - emit textChanged(); -} - -void QNumberFormat::handleFormat() -{ - // ### is extremely messy - if (_format.isEmpty()) { - _text = QString::number(_number, 'f', -1); - return; - } - - QString inputString; - - // ### possible to use the following parsed data in the future - - int remainingLength = _format.size(); - int currentIndex = _format.size()-1; - - int maxDigits = 0; - int minDigits = 0; - int decimalLength = 0; - - while (remainingLength > 0) { - switch(_format.at(currentIndex).unicode()) { - case ',': - if (decimalLength && !_groupingSize) - setGroupingSize(maxDigits - decimalLength); - else if (!_groupingSize) - setGroupingSize(maxDigits); - break; - case '.': - if (!decimalLength) - decimalLength = maxDigits; - break; - case '0': - minDigits++; - case '#': - maxDigits++; - break; - default: - break; - } - currentIndex--; - remainingLength--; - } - - // round given the decimal length/precision - inputString = QString::number(_number, 'f', decimalLength); - - QStringList parts = inputString.split(QLatin1Char('.')); - QStringList formatParts = _format.split(QLatin1Char('.')); - - if (formatParts.size() > 2 || parts.size() > 2 ) - return; - - QString formatInt = formatParts.at(0); - - QString formatDec; - if (formatParts.size() == 2) - formatDec = formatParts.at(1); - - QString integer = parts.at(0); - - QString decimal; - if (parts.size() == 2) - decimal = parts.at(1); - - QString outputDecimal = formatDecimal(formatDec, decimal); - QString outputInteger = formatInteger(formatInt, integer); - - // insert separators - if (_groupingSize) { - unsigned int count = 0; - for (int i = outputInteger.size()-1; i > 0; i--) { - if (outputInteger.at(i).digitValue() >= 0) { - if (count == _groupingSize - 1) { - count = 0; - outputInteger.insert(i, _groupingSeparator); - } - else - count++; - } - } - } - if (!outputDecimal.isEmpty()) - _text = outputInteger + _decimalSeparator + outputDecimal; - else - _text = outputInteger; -} - -QString QNumberFormat::formatInteger(const QString &formatInt, const QString &integer) -{ - if (formatInt.isEmpty() || integer.isEmpty()) - return QString(); - - QString outputInteger; - int formatIndex = formatInt.size()-1; - - //easier for carry? - for (int index= integer.size()-1; index >= 0; index--) { - if (formatIndex < 0) { - outputInteger.push_front(integer.at(index)); - } - else { - switch(formatInt.at(formatIndex).unicode()) { - case '0': - if (index > integer.size()-1) { - outputInteger.push_front(QLatin1Char('0')); - break; - } - case '#': - outputInteger.push_front(integer.at(index)); - break; - case ',': - index++; - break; - default: - outputInteger.push_front(formatInt.at(formatIndex)); - index++; - break; - } - formatIndex--; - } - } - while (formatIndex >= 0) { - if (formatInt.at(formatIndex).unicode() != '#' && formatInt.at(formatIndex).unicode() != ',') - outputInteger.push_front(formatInt.at(formatIndex)); - formatIndex--; - } - return outputInteger; -} - -QString QNumberFormat::formatDecimal(const QString &formatDec, const QString &decimal) -{ - QString outputDecimal; - - // up to max 6 decimal places - for (int index=formatDec.size()-1; index >= 0; index--) { - switch(formatDec.at(index).unicode()) { - case '0': - outputDecimal.push_front(decimal.at(index)); - break; - case '#': - if (decimal.at(index) != QLatin1Char('0') || outputDecimal.size() > 0) - outputDecimal.push_front(decimal.at(index)); - break; - default: - outputDecimal.push_front(formatDec.at(index)); - break; - } - } - return outputDecimal; -} - -QT_END_NAMESPACE diff --git a/src/declarative/util/qnumberformat_p.h b/src/declarative/util/qnumberformat_p.h deleted file mode 100644 index ced4442..0000000 --- a/src/declarative/util/qnumberformat_p.h +++ /dev/null @@ -1,174 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, 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 qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef NUMBERFORMAT_H -#define NUMBERFORMAT_H - -#include - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -// TODO -// be able to set Locale, instead of default system for dynamic formatting -// add currency support -// add additional syntax, extend to format scientific, percentiles, significant digits etc - - -class QNumberFormat : public QObject -{ - Q_OBJECT - Q_ENUMS(NumberType) -public: - QNumberFormat(QObject *parent=0); - ~QNumberFormat(); - - enum NumberType { - Percent, - Scientific, - Currency, - Decimal - }; - - //external property, only visible - Q_PROPERTY(QString text READ text NOTIFY textChanged) - - //mutatable properties to modify the output (text) - Q_PROPERTY(qreal number READ number WRITE setNumber) - Q_PROPERTY(QString format READ format WRITE setFormat) - Q_PROPERTY(QLocale locale READ locale WRITE setLocale) - - //Format specific settings - Q_PROPERTY(unsigned short groupingSeparator READ groupingSeparator WRITE setGroupingSeparator) - Q_PROPERTY(unsigned short decimalSeperator READ decimalSeparator WRITE setDecimalSeparator) - Q_PROPERTY(unsigned int groupingSize READ groupingSize WRITE setGroupingSize) - Q_PROPERTY(unsigned short currencySymbol READ currencySymbol WRITE setCurrencySymbol) - - - QString text() const { return _text; } - - qreal number() const { return _number; } - void setNumber(qreal n) { - if (_number == n) - return; - _number = n; - updateText(); - } - - QString format() const { return _format; } - void setFormat(const QString &format) { - if (format.isEmpty()) - _format = QString::null; - else if (_format == format) - return; - - _format = format; - updateText(); - } - - QLocale locale() const { return _locale; } - void setLocale(const QLocale &locale) { _locale = locale; updateText(); } - - //Do we deal with unicode standard? or create our own - // ### since this is the backend for the number conversions, we will use the unicode - // the front-end will handle the QChar/QString -> short int - - unsigned short groupingSeparator() { return _groupingSeparator.unicode(); } - void setGroupingSeparator(unsigned short unicodeSymbol) - { - _groupingSeparator = QChar(unicodeSymbol); - } - - unsigned short decimalSeparator() { return _decimalSeparator.unicode(); } - void setDecimalSeparator(unsigned short unicodeSymbol) - { - _decimalSeparator = QChar(unicodeSymbol); - } - - unsigned short currencySymbol() { return _currencySymbol.unicode(); } - void setCurrencySymbol(unsigned short unicodeSymbol) - { - _currencySymbol = QChar(unicodeSymbol); - } - - unsigned int groupingSize() { return _groupingSize; } - void setGroupingSize(unsigned int size) - { - _groupingSize = size; - } - -Q_SIGNALS: - void textChanged(); - -private: - void updateText(); - void handleFormat(); - QString formatInteger(const QString &formatInt, const QString &integer); - QString formatDecimal(const QString &formatDec, const QString &decimal); - - qreal _number; - NumberType _type; - QChar _groupingSeparator; - QChar _decimalSeparator; - QChar _currencySymbol; - unsigned int _groupingSize; - - QLocale _locale; - QString _format; - - // only hooked member at the moment - QString _text; - -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QNumberFormat) - -QT_END_HEADER - -#endif diff --git a/src/declarative/util/util.pri b/src/declarative/util/util.pri index 198e9e5..26edecc 100644 --- a/src/declarative/util/util.pri +++ b/src/declarative/util/util.pri @@ -25,9 +25,6 @@ SOURCES += \ $$PWD/qdeclarativebind.cpp \ $$PWD/qdeclarativepropertymap.cpp \ $$PWD/qdeclarativepixmapcache.cpp \ - $$PWD/qnumberformat.cpp \ - $$PWD/qdeclarativenumberformatter.cpp \ - $$PWD/qdeclarativedatetimeformatter.cpp \ $$PWD/qdeclarativebehavior.cpp \ $$PWD/qdeclarativefontloader.cpp \ $$PWD/qdeclarativestyledtext.cpp @@ -60,9 +57,6 @@ HEADERS += \ $$PWD/qdeclarativebind_p.h \ $$PWD/qdeclarativepropertymap.h \ $$PWD/qdeclarativepixmapcache_p.h \ - $$PWD/qnumberformat_p.h \ - $$PWD/qdeclarativenumberformatter_p.h \ - $$PWD/qdeclarativedatetimeformatter_p.h \ $$PWD/qdeclarativebehavior_p.h \ $$PWD/qdeclarativefontloader_p.h \ $$PWD/qdeclarativestyledtext_p.h diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro index 99a32d9..143fbad 100644 --- a/tests/auto/declarative/declarative.pro +++ b/tests/auto/declarative/declarative.pro @@ -10,7 +10,6 @@ SUBDIRS += \ qdeclarativecomponent \ # Cover qdeclarativeconnection \ # Cover qdeclarativecontext \ # Cover - qdeclarativedatetimeformatter \ # Cover qdeclarativedebug \ # Cover qdeclarativedebugclient \ # Cover qdeclarativedebugservice \ # Cover @@ -45,7 +44,6 @@ SUBDIRS += \ qdeclarativeproperty \ # Cover qdeclarativemetatype \ # Cover qdeclarativemoduleplugin \ # Cover - qdeclarativenumberformatter \ # Cover qdeclarativepixmapcache \ # Cover qdeclarativepropertymap \ # Cover qdeclarativeqt \ # Cover diff --git a/tests/auto/declarative/qdeclarativedatetimeformatter/qdeclarativedatetimeformatter.pro b/tests/auto/declarative/qdeclarativedatetimeformatter/qdeclarativedatetimeformatter.pro deleted file mode 100644 index 22f53e6..0000000 --- a/tests/auto/declarative/qdeclarativedatetimeformatter/qdeclarativedatetimeformatter.pro +++ /dev/null @@ -1,5 +0,0 @@ -load(qttest_p4) -contains(QT_CONFIG,declarative): QT += declarative -macx:CONFIG -= app_bundle - -SOURCES += tst_qdeclarativedatetimeformatter.cpp diff --git a/tests/auto/declarative/qdeclarativedatetimeformatter/tst_qdeclarativedatetimeformatter.cpp b/tests/auto/declarative/qdeclarativedatetimeformatter/tst_qdeclarativedatetimeformatter.cpp deleted file mode 100644 index 69d7900..0000000 --- a/tests/auto/declarative/qdeclarativedatetimeformatter/tst_qdeclarativedatetimeformatter.cpp +++ /dev/null @@ -1,150 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, 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 qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include -#include -#include -#include -#include - -class tst_qdeclarativedatetimeformatter : public QObject -{ - Q_OBJECT -public: - tst_qdeclarativedatetimeformatter() {} - -private slots: - void date(); - void time(); - void dateTime(); -}; - -void tst_qdeclarativedatetimeformatter::date() -{ - QDeclarativeEngine engine; - QDeclarativeComponent formatterComponent(&engine); - formatterComponent.setData(QByteArray("import Qt 4.6\n DateTimeFormatter { date: \"2008-12-24\" }"), - QUrl::fromLocalFile("")); - QDeclarativeDateTimeFormatter *formatter = qobject_cast(formatterComponent.create()); - if(formatterComponent.isError()) - qDebug() << formatterComponent.errors(); - QVERIFY(formatter != 0); - - QDate date(2008,12,24); - QCOMPARE(formatter->date(), date); - QCOMPARE(formatter->dateTime().date(), date); - QCOMPARE(formatter->dateText(),date.toString(Qt::SystemLocaleShortDate)); - - formatter->setLongStyle(true); - QVERIFY(formatter->longStyle()); - QCOMPARE(formatter->dateText(),date.toString(Qt::SystemLocaleLongDate)); - - formatter->setDateFormat("ddd MMMM d yy"); - QCOMPARE(formatter->dateFormat(), QLatin1String("ddd MMMM d yy")); - QCOMPARE(formatter->dateText(),date.toString("ddd MMMM d yy")); - - QVERIFY(formatter->timeText().isEmpty()); - QVERIFY(formatter->dateTimeText().isEmpty()); - - delete formatter; -} - -void tst_qdeclarativedatetimeformatter::time() -{ - QDeclarativeEngine engine; - QDeclarativeComponent formatterComponent(&engine); - formatterComponent.setData("import Qt 4.6\n DateTimeFormatter { time: \"14:15:38.200\" }", QUrl::fromLocalFile("")); - QDeclarativeDateTimeFormatter *formatter = qobject_cast(formatterComponent.create()); - if(formatterComponent.isError()) - qDebug() << formatterComponent.errors(); - QVERIFY(formatter != 0); - - QTime time(14,15,38,200); - - QCOMPARE(formatter->time(),time); - QCOMPARE(formatter->dateTime().time(),time); - - QCOMPARE(formatter->timeText(),time.toString(Qt::SystemLocaleShortDate)); - - formatter->setLongStyle(true); - QCOMPARE(formatter->timeText(),time.toString(Qt::SystemLocaleLongDate)); - - formatter->setTimeFormat("H:m:s a"); - QCOMPARE(formatter->timeFormat(), QLatin1String("H:m:s a")); - QCOMPARE(formatter->timeText(),time.toString("H:m:s a")); - - formatter->setTimeFormat("hh:mm:ss.zzz"); - QCOMPARE(formatter->timeText(),time.toString("hh:mm:ss.zzz")); - - QVERIFY(formatter->dateText().isEmpty()); - QVERIFY(formatter->dateTimeText().isEmpty()); - - delete formatter; -} - -void tst_qdeclarativedatetimeformatter::dateTime() -{ - QDeclarativeEngine engine; - QDeclarativeComponent formatterComponent(&engine); - formatterComponent.setData("import Qt 4.6\n DateTimeFormatter { dateTime: \"1978-03-04T09:13:54\" }", QUrl::fromLocalFile("")); - QDeclarativeDateTimeFormatter *formatter = qobject_cast(formatterComponent.create()); - if(formatterComponent.isError()) - qDebug() << formatterComponent.errors(); - QVERIFY(formatter != 0); - - QDateTime dateTime(QDate(1978,03,04),QTime(9,13,54)); - QCOMPARE(formatter->dateTime(),dateTime); - QCOMPARE(formatter->date(),dateTime.date()); - QCOMPARE(formatter->time(),dateTime.time()); - QCOMPARE(formatter->dateTimeText(),dateTime.toString(Qt::SystemLocaleShortDate)); - - formatter->setLongStyle(true); - QCOMPARE(formatter->dateTimeText(),dateTime.toString(Qt::SystemLocaleLongDate)); - - formatter->setDateTimeFormat("M/d/yy H:m:s a"); - QCOMPARE(formatter->dateTimeFormat(), QLatin1String("M/d/yy H:m:s a")); - QCOMPARE(formatter->dateTimeText(),dateTime.toString("M/d/yy H:m:s a")); - - delete formatter; -} - -QTEST_MAIN(tst_qdeclarativedatetimeformatter) - -#include "tst_qdeclarativedatetimeformatter.moc" diff --git a/tests/auto/declarative/qdeclarativenumberformatter/qdeclarativenumberformatter.pro b/tests/auto/declarative/qdeclarativenumberformatter/qdeclarativenumberformatter.pro deleted file mode 100644 index 672e95c..0000000 --- a/tests/auto/declarative/qdeclarativenumberformatter/qdeclarativenumberformatter.pro +++ /dev/null @@ -1,5 +0,0 @@ -load(qttest_p4) -contains(QT_CONFIG,declarative): QT += declarative -macx:CONFIG -= app_bundle - -SOURCES += tst_qdeclarativenumberformatter.cpp diff --git a/tests/auto/declarative/qdeclarativenumberformatter/tst_qdeclarativenumberformatter.cpp b/tests/auto/declarative/qdeclarativenumberformatter/tst_qdeclarativenumberformatter.cpp deleted file mode 100644 index a9a0077..0000000 --- a/tests/auto/declarative/qdeclarativenumberformatter/tst_qdeclarativenumberformatter.cpp +++ /dev/null @@ -1,224 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, 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 qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include -#include -#include -#include -#include -#include - -class tst_qdeclarativenumberformatter : public QObject -{ - Q_OBJECT -public: - tst_qdeclarativenumberformatter(); - - void init() {} - void initTestCase() {} - - void cleanup() {} - void cleanupTestCase() {} - -private slots: - void text_data(); - void text(); - -private: - QStringList strings; - QStringList formats; - QStringList texts; -}; - -tst_qdeclarativenumberformatter::tst_qdeclarativenumberformatter() -{ - strings << "100.0" - << "12345" - << "1234567" - << "0.123" - << "0.9999" - << "0.989" - << "1" - << "1.0" - << "1.01"; - - formats << "" - << "0000" - << "0000.00" - << "##" - << "##.##" - << "#0.00#" - << "##,##0.##" - << "(000) 000 - 000" - << "00000,000.0000"; - - //US locale only. - texts << "100.000000" - << "12345.000000" - << "1234567.000000" - << "0.123000" - << "0.999900" - << "0.989000" - << "1.000000" - << "1.000000" - << "1.010000" //end "" - << "0100" - << "12345" - << "1234567" - << "0000" - << "0001" - << "0001" - << "0001" - << "0001" - << "0001" // end "0000" - << "0100.00" - << "12345.00" - << "1234567.00" - << "0000.12" - << "0001.00" - << "0000.99" - << "0001.00" - << "0001.00" - << "0001.01" // end "0000.00" - << "100" - << "12345" - << "1234567" - << "0" - << "1" - << "1" - << "1" - << "1" - << "1" // end "##" - << "100"//start "##.##" - << "12345" - << "1234567" - << "0.12" - << "1" - << "0.99" - << "1" - << "1" - << "1.01" // end "##.##" -- ### EXPECT FAIL ### QNumberFormat::formatDecimal() bug - << "100.00" //start "#0.00#" - << "12345.00" - << "1234567.00" - << "0.123" - << "1.00" - << "0.989" - << "1.00" - << "1.00" - << "1.01" //end "#0.00#" - << "100" //start "##,##0.##" - << "12,345" - << "1,234,567" - << "0.12" - << "1" - << "0.99" - << "1" - << "1" - << "1.01" //end "##,##0.##" -- ### EXPECT FAIL ### QNumberFormat::formatDecimal() bug - << "(000) 000 - 100" //start "(000) 000 - 000" - << "(000) 012 - 345" - << "(001) 234 - 567" - << "(000) 000 - 000" - << "(000) 000 - 001" - << "(000) 000 - 001" - << "(000) 000 - 001" - << "(000) 000 - 001" - << "(000) 000 - 001" // end "(000) 000 - 000" - << "00,000,100.0000" // start "00000,000.0000" - << "00,012,345.0000" - << "01,234,567.0000" - << "00,000,000.1230" - << "00,000,000.9999" - << "00,000,000.9890" - << "00,000,001.0000" - << "00,000,001.0000" - << "00,000,001.0100"; // end - - /* - qDebug() << "strings.size()" << strings.size() - << "\nformats.size()" << formats.size() - << "texts.size()" << texts.size(); - */ -} - -void tst_qdeclarativenumberformatter::text_data() -{ - QTest::addColumn("string"); - QTest::addColumn("format"); - QTest::addColumn("text"); - - for (int j=0; j < formats.size(); j++) - { - for (int i=0; i < strings.size(); i++) - { - QTest::newRow(QString("%1, %2").arg(strings.at(i)).arg(formats.at(j)).toAscii()) - << strings.at(i) << formats.at(j) << texts.at(j*formats.size()+i); - } - } - -} - -void tst_qdeclarativenumberformatter::text() -{ - QFETCH(QString, string); - QFETCH(QString, format); - QFETCH(QString, text); - - QString componentStr = QString("import Qt 4.6\nNumberFormatter { number: ") + string + QString("; format: \"") + format + QString("\" }"); - - QDeclarativeEngine engine; - QDeclarativeComponent formatterComponent(&engine); - formatterComponent.setData(componentStr.toUtf8(), QUrl::fromLocalFile("")); - if(formatterComponent.isError()) - qDebug() << formatterComponent.errors(); - QVERIFY(formatterComponent.isReady()); - QDeclarativeNumberFormatter *formatter = qobject_cast(formatterComponent.create()); - QVERIFY(formatter != 0); - - QCOMPARE(formatter->format(), format); - QCOMPARE(formatter->text(), text); - - delete formatter; -} - -QTEST_MAIN(tst_qdeclarativenumberformatter) - -#include "tst_qdeclarativenumberformatter.moc" -- cgit v0.12