It was still using the old 'tileRule' name.
Also make sci file parser less strict with h/v tile mode values.
Task-number: QTBUG-26022
Change-Id: I41b7571b42a0fb9bd2cfab8ce2e76e57addabefd
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
b = list[1].toInt();
else if (list[0] == QLatin1String("source"))
imgFile = list[1];
- else if (list[0] == QLatin1String("horizontalTileRule"))
+ else if (list[0] == QLatin1String("horizontalTileRule") || list[0] == QLatin1String("horizontalTileMode"))
_h = stringToRule(list[1]);
- else if (list[0] == QLatin1String("verticalTileRule"))
+ else if (list[0] == QLatin1String("verticalTileRule") || list[0] == QLatin1String("verticalTileMode"))
_v = stringToRule(list[1]);
}
QQuickBorderImage::TileMode QQuickGridScaledImage::stringToRule(const QString &s)
{
- if (s == QLatin1String("Stretch"))
+ QString string = s;
+ if (string.startsWith(QLatin1Char('"')) && string.endsWith(QLatin1Char('"')))
+ string = string.mid(1, string.size() - 2); // remove leading/trailing quotes.
+
+ if (string == QLatin1String("Stretch") || string == QLatin1String("BorderImage.Stretch"))
return QQuickBorderImage::Stretch;
- if (s == QLatin1String("Repeat"))
+ if (string == QLatin1String("Repeat") || string == QLatin1String("BorderImage.Repeat"))
return QQuickBorderImage::Repeat;
- if (s == QLatin1String("Round"))
+ if (string == QLatin1String("Round") || string == QLatin1String("BorderImage.Round"))
return QQuickBorderImage::Round;
qWarning("QQuickGridScaledImage: Invalid tile rule specified. Using Stretch.");
--- /dev/null
+border.left: 10
+border.top: 20
+border.right: 30
+border.bottom: 40
+horizontalTileMode: Round
+verticalTileMode: Repeat
+source: colors.png
--- /dev/null
+border.left: 10
+border.top: 20
+border.right: 30
+border.bottom: 40
+horizontalTileMode: "Round"
+verticalTileMode: "Repeat"
+source: colors.png
--- /dev/null
+border.left: 10
+border.top: 20
+border.right: 30
+border.bottom: 40
+horizontalTileMode: BorderImage.Round
+verticalTileMode: BorderImage.Repeat
+source: colors.png
--- /dev/null
+border.left: 10
+border.top: 20
+border.right: 30
+border.bottom: 40
+horizontalTileMode: "BorderImage.Round"
+verticalTileMode: "BorderImage.Repeat"
+source: colors.png
void sciSource();
void sciSource_data();
void invalidSciFile();
+ void validSciFiles_data();
+ void validSciFiles();
void pendingRemoteRequest();
void pendingRemoteRequest_data();
delete obj;
}
+void tst_qquickborderimage::validSciFiles_data()
+{
+ QTest::addColumn<QString>("source");
+
+ QTest::newRow("valid1") << testFileUrl("valid1.sci").toString();
+ QTest::newRow("valid2") << testFileUrl("valid2.sci").toString();
+ QTest::newRow("valid3") << testFileUrl("valid3.sci").toString();
+ QTest::newRow("valid4") << testFileUrl("valid4.sci").toString();
+}
+
+void tst_qquickborderimage::validSciFiles()
+{
+ QFETCH(QString, source);
+
+ QString componentStr = "import QtQuick 2.0\nBorderImage { source: \"" + source +"\"; width: 300; height: 300 }";
+ QQmlComponent component(&engine);
+ component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
+ QQuickBorderImage *obj = qobject_cast<QQuickBorderImage*>(component.create());
+ QVERIFY(obj != 0);
+ QCOMPARE(obj->width(), 300.);
+ QCOMPARE(obj->height(), 300.);
+ QCOMPARE(obj->horizontalTileMode(), QQuickBorderImage::Round);
+ QCOMPARE(obj->verticalTileMode(), QQuickBorderImage::Repeat);
+
+ delete obj;
+}
+
void tst_qquickborderimage::pendingRemoteRequest()
{
QFETCH(QString, source);