Don't consider QLocale a value type.
This fixes a regression where all of the properties of Qt.inputMethod.locale were undefined. Change-Id: Id33890a78296709baad6aeda96d74ca8cb39c61d Task-number: QTBUG-47916 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
This commit is contained in:
parent
7059207546
commit
d1b2051379
|
@ -82,7 +82,8 @@ bool QQmlValueTypeFactoryImpl::isValueType(int idx)
|
||||||
&& idx != QVariant::StringList
|
&& idx != QVariant::StringList
|
||||||
&& idx != QMetaType::QObjectStar
|
&& idx != QMetaType::QObjectStar
|
||||||
&& idx != QMetaType::VoidStar
|
&& idx != QMetaType::VoidStar
|
||||||
&& idx != QMetaType::QVariant) {
|
&& idx != QMetaType::QVariant
|
||||||
|
&& idx != QMetaType::QLocale) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
import QtQuick 2.0
|
||||||
|
|
||||||
|
Item {
|
||||||
|
property string amText: Qt.inputMethod.locale.amText
|
||||||
|
property string decimalPoint: Qt.inputMethod.locale.decimalPoint
|
||||||
|
property string exponential: Qt.inputMethod.locale.exponential
|
||||||
|
property int firstDayOfWeek: Qt.inputMethod.locale.firstDayOfWeek
|
||||||
|
property string groupSeparator: Qt.inputMethod.locale.groupSeparator
|
||||||
|
property int measurementSystem: Qt.inputMethod.locale.measurementSystem
|
||||||
|
property string name: Qt.inputMethod.locale.name
|
||||||
|
property string nativeCountryName: Qt.inputMethod.locale.nativeCountryName
|
||||||
|
property string nativeLanguageName: Qt.inputMethod.locale.nativeLanguageName
|
||||||
|
property string negativeSign: Qt.inputMethod.locale.negativeSign
|
||||||
|
property string percent: Qt.inputMethod.locale.percent
|
||||||
|
property string pmText: Qt.inputMethod.locale.pmText
|
||||||
|
property string positiveSign: Qt.inputMethod.locale.positiveSign
|
||||||
|
property int textDirection: Qt.inputMethod.locale.textDirection
|
||||||
|
property var uiLanguages: Qt.inputMethod.locale.uiLanguages
|
||||||
|
property var weekDays: Qt.inputMethod.locale.weekDays
|
||||||
|
property string zeroDigit: Qt.inputMethod.locale.zeroDigit
|
||||||
|
}
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#include <QQmlComponent>
|
#include <QQmlComponent>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <private/qquickvaluetypes_p.h>
|
#include <private/qquickvaluetypes_p.h>
|
||||||
|
#include <private/qqmlglobal_p.h>
|
||||||
#include "../../shared/util.h"
|
#include "../../shared/util.h"
|
||||||
#include "testtypes.h"
|
#include "testtypes.h"
|
||||||
|
|
||||||
|
@ -67,6 +68,7 @@ private slots:
|
||||||
void font();
|
void font();
|
||||||
void color();
|
void color();
|
||||||
void variant();
|
void variant();
|
||||||
|
void locale();
|
||||||
|
|
||||||
void bindingAssignment();
|
void bindingAssignment();
|
||||||
void bindingRead();
|
void bindingRead();
|
||||||
|
@ -316,6 +318,42 @@ void tst_qqmlvaluetypes::variant()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_qqmlvaluetypes::locale()
|
||||||
|
{
|
||||||
|
{
|
||||||
|
QQmlComponent component(&engine, testFileUrl("locale_read.qml"));
|
||||||
|
QScopedPointer<QObject> object(component.create());
|
||||||
|
QVERIFY(!object.isNull());
|
||||||
|
|
||||||
|
QVERIFY(QQml_guiProvider()->inputMethod());
|
||||||
|
QInputMethod *inputMethod = qobject_cast<QInputMethod*>(QQml_guiProvider()->inputMethod());
|
||||||
|
QLocale locale = inputMethod->locale();
|
||||||
|
|
||||||
|
QCOMPARE(object->property("amText").toString(), locale.amText());
|
||||||
|
QCOMPARE(object->property("decimalPoint").toString().at(0), locale.decimalPoint());
|
||||||
|
QCOMPARE(object->property("exponential").toString().at(0), locale.exponential());
|
||||||
|
// Sunday is 0 in JavaScript.
|
||||||
|
QCOMPARE(object->property("firstDayOfWeek").toInt(), int(locale.firstDayOfWeek() == Qt::Sunday ? 0 : locale.firstDayOfWeek()));
|
||||||
|
QCOMPARE(object->property("groupSeparator").toString().at(0), locale.groupSeparator());
|
||||||
|
QCOMPARE(object->property("measurementSystem").toInt(), int(locale.measurementSystem()));
|
||||||
|
QCOMPARE(object->property("name").toString(), locale.name());
|
||||||
|
QCOMPARE(object->property("nativeCountryName").toString(), locale.nativeCountryName());
|
||||||
|
QCOMPARE(object->property("nativeLanguageName").toString(), locale.nativeLanguageName());
|
||||||
|
QCOMPARE(object->property("negativeSign").toString().at(0), locale.negativeSign());
|
||||||
|
QCOMPARE(object->property("percent").toString().at(0), locale.percent());
|
||||||
|
QCOMPARE(object->property("pmText").toString(), locale.pmText());
|
||||||
|
QCOMPARE(object->property("positiveSign").toString().at(0), locale.positiveSign());
|
||||||
|
QCOMPARE(object->property("textDirection").toInt(), int(locale.textDirection()));
|
||||||
|
QCOMPARE(object->property("uiLanguages").toStringList(), locale.uiLanguages());
|
||||||
|
QList<Qt::DayOfWeek> weekDays;
|
||||||
|
foreach (const QVariant &weekDay, object->property("weekDays").toList()) {
|
||||||
|
weekDays.append(Qt::DayOfWeek(weekDay.toInt()));
|
||||||
|
}
|
||||||
|
QCOMPARE(weekDays, locale.weekdays());
|
||||||
|
QCOMPARE(object->property("zeroDigit").toString().at(0), locale.zeroDigit());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void tst_qqmlvaluetypes::sizereadonly()
|
void tst_qqmlvaluetypes::sizereadonly()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue