aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@theqtcompany.com>2015-09-02 17:19:03 +0200
committerSimon Hausmann <simon.hausmann@theqtcompany.com>2015-09-02 17:19:48 +0200
commit149ece7a0cfb4fc90fe4544379ee2772fde881fd (patch)
tree6a8a3ec11beb53eb06ccc69a0ec04a9d80053c0e
parent9ee31a6ae852eb347951e371958dd435409c9941 (diff)
parentd1b20513798ed441afddb87fd4e7facce78349e1 (diff)
Merge remote-tracking branch 'origin/5.5' into 5.6
-rw-r--r--src/qml/jsapi/qjsvalue.cpp12
-rw-r--r--src/qml/qml/qqmlabstracturlinterceptor.cpp10
-rw-r--r--src/qml/qml/qqmlvaluetype.cpp3
-rw-r--r--src/quick/doc/src/dynamicview-tutorial.qdoc4
-rw-r--r--src/quick/items/context2d/qquickcontext2d.cpp2
-rw-r--r--tests/auto/qml/qqmlvaluetypes/data/locale_read.qml22
-rw-r--r--tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp38
-rw-r--r--tests/auto/quick/qquickcanvasitem/data/tst_context.qml18
-rw-r--r--tools/qmlplugindump/main.cpp8
9 files changed, 113 insertions, 4 deletions
diff --git a/src/qml/jsapi/qjsvalue.cpp b/src/qml/jsapi/qjsvalue.cpp
index 6d0c7cfdda..a49b98c921 100644
--- a/src/qml/jsapi/qjsvalue.cpp
+++ b/src/qml/jsapi/qjsvalue.cpp
@@ -212,6 +212,18 @@ QJSValue::QJSValue(const QJSValue& other)
}
/*!
+ \fn QJSValue::QJSValue(QJSValue && other)
+
+ Move constructor. Moves from \a other into this QJSValue object.
+*/
+
+/*!
+ \fn QJSValue &operator=(QJSValue && other)
+
+ Move-assigns \a other to this QJSValue object.
+*/
+
+/*!
Destroys this QJSValue.
*/
QJSValue::~QJSValue()
diff --git a/src/qml/qml/qqmlabstracturlinterceptor.cpp b/src/qml/qml/qqmlabstracturlinterceptor.cpp
index cb57bc2146..dce41b0caa 100644
--- a/src/qml/qml/qqmlabstracturlinterceptor.cpp
+++ b/src/qml/qml/qqmlabstracturlinterceptor.cpp
@@ -82,3 +82,13 @@
Your implementation of this function must be thread-safe, as it can be called from multiple threads
at the same time.
*/
+/*!
+ \fn QQmlAbstractUrlInterceptor::QQmlAbstractUrlInterceptor()
+
+ Constructor for QQmlAbstractUrlInterceptor.
+*/
+/*!
+ \fn QQmlAbstractUrlInterceptor::~QQmlAbstractUrlInterceptor()
+
+ Destructor for QQmlAbstractUrlInterceptor.
+*/
diff --git a/src/qml/qml/qqmlvaluetype.cpp b/src/qml/qml/qqmlvaluetype.cpp
index 6a71a07e9b..53b1ffccb5 100644
--- a/src/qml/qml/qqmlvaluetype.cpp
+++ b/src/qml/qml/qqmlvaluetype.cpp
@@ -82,7 +82,8 @@ bool QQmlValueTypeFactoryImpl::isValueType(int idx)
&& idx != QVariant::StringList
&& idx != QMetaType::QObjectStar
&& idx != QMetaType::VoidStar
- && idx != QMetaType::QVariant) {
+ && idx != QMetaType::QVariant
+ && idx != QMetaType::QLocale) {
return true;
}
diff --git a/src/quick/doc/src/dynamicview-tutorial.qdoc b/src/quick/doc/src/dynamicview-tutorial.qdoc
index f87f94f264..2b5bb6e0c1 100644
--- a/src/quick/doc/src/dynamicview-tutorial.qdoc
+++ b/src/quick/doc/src/dynamicview-tutorial.qdoc
@@ -208,8 +208,8 @@ item and then transfer the item to the items group before moving it to the pre-d
repeat until the unsorted group is empty.
To find the insert position for an item we request a handle for the item from the unsorted group
-with the \l {DelegateModel::}{get} function. Through the model property on this
-handle we can access the same model data that is available in a delegate instance of that item and
+with the \l {DelegateModelGroup::}{get()} function. Through the model property on this handle we can
+access the same model data that is available in a delegate instance of that item and
compare against other items to determine relative position.
\snippet tutorials/dynamicview/dynamicview4/dynamicview.qml 3
diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp
index 0a09ee42de..e44ba2116e 100644
--- a/src/quick/items/context2d/qquickcontext2d.cpp
+++ b/src/quick/items/context2d/qquickcontext2d.cpp
@@ -189,7 +189,7 @@ QColor qt_color_from_string(const QV4::Value &name)
if (isRgb)
return QColor::fromRgba(qRgba(qClamp(rh, 0, 255), qClamp(gs, 0, 255), qClamp(bl, 0, 255), qClamp(alpha, 0, 255)));
else if (isHsl)
- return QColor::fromHsl(qClamp(rh, 0, 255), qClamp(gs, 0, 255), qClamp(bl, 0, 255), qClamp(alpha, 0, 255));
+ return QColor::fromHsl(qClamp(rh, 0, 359), qClamp(gs, 0, 255), qClamp(bl, 0, 255), qClamp(alpha, 0, 255));
}
return QColor();
}
diff --git a/tests/auto/qml/qqmlvaluetypes/data/locale_read.qml b/tests/auto/qml/qqmlvaluetypes/data/locale_read.qml
new file mode 100644
index 0000000000..5ae6b41259
--- /dev/null
+++ b/tests/auto/qml/qqmlvaluetypes/data/locale_read.qml
@@ -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
+}
+
diff --git a/tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp b/tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp
index 52f744578a..c8107e58bf 100644
--- a/tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp
+++ b/tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp
@@ -36,6 +36,7 @@
#include <QQmlComponent>
#include <QDebug>
#include <private/qquickvaluetypes_p.h>
+#include <private/qqmlglobal_p.h>
#include "../../shared/util.h"
#include "testtypes.h"
@@ -67,6 +68,7 @@ private slots:
void font();
void color();
void variant();
+ void locale();
void bindingAssignment();
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()
{
{
diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_context.qml b/tests/auto/quick/qquickcanvasitem/data/tst_context.qml
index f266c16d76..566ad9d3d5 100644
--- a/tests/auto/quick/qquickcanvasitem/data/tst_context.qml
+++ b/tests/auto/quick/qquickcanvasitem/data/tst_context.qml
@@ -182,4 +182,22 @@ Canvas {
}
}
}
+
+ TestCase {
+ name: "Colors"
+ when: canvas.available
+
+ function test_colors() {
+ wait(100);
+ compare(contextSpy.count, 1);
+
+ var ctx = canvas.getContext("2d");
+ // QTBUG-47894
+ ctx.strokeStyle = 'hsl(255, 100%, 50%)';
+ var c1 = ctx.strokeStyle.toString();
+ ctx.strokeStyle = 'hsl(320, 100%, 50%)';
+ var c2 = ctx.strokeStyle.toString();
+ verify(c1 !== c2);
+ }
+ }
}
diff --git a/tools/qmlplugindump/main.cpp b/tools/qmlplugindump/main.cpp
index c7539ac874..911328c12a 100644
--- a/tools/qmlplugindump/main.cpp
+++ b/tools/qmlplugindump/main.cpp
@@ -461,6 +461,12 @@ public:
void dumpComposite(QQmlEngine *engine, const QQmlType *compositeType, QSet<QByteArray> &defaultReachableNames)
{
QQmlComponent e(engine, compositeType->sourceUrl());
+ if (!e.isReady()) {
+ std::cerr << "WARNING: skipping module " << compositeType->elementName().toStdString()
+ << std::endl << e.errorString().toStdString() << std::endl;
+ return;
+ }
+
QObject *object = e.create();
if (!object)
@@ -901,6 +907,7 @@ void printDebugMessage(QtMsgType, const QMessageLogContext &, const QString &msg
// In case of QtFatalMsg the calling code will abort() when appropriate.
}
+
int main(int argc, char *argv[])
{
#if defined(Q_OS_WIN) && !defined(Q_CC_MINGW)
@@ -1041,6 +1048,7 @@ int main(int argc, char *argv[])
if (calculateDependencies)
getDependencies(engine, pluginImportUri, pluginImportVersion, &dependencies);
compactDependencies(&dependencies);
+
// load the QtQml 2.2 builtins and the dependencies
{
QByteArray code("import QtQml 2.2");