summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextlayout.cpp16
-rw-r--r--src/declarative/qml/qdeclarativeengine.cpp32
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp4
5 files changed, 17 insertions, 39 deletions
diff --git a/.qmake.conf b/.qmake.conf
index ccd239ad..068da422 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -1,4 +1,4 @@
load(qt_build_config)
CONFIG += qt_example_installs
-MODULE_VERSION = 5.4.1
+MODULE_VERSION = 5.5.0
diff --git a/src/declarative/graphicsitems/qdeclarativetextlayout.cpp b/src/declarative/graphicsitems/qdeclarativetextlayout.cpp
index 647bbee9..7abfd13e 100644
--- a/src/declarative/graphicsitems/qdeclarativetextlayout.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetextlayout.cpp
@@ -54,7 +54,6 @@ public:
QVector<QStaticTextItem> items;
QVector<QFixedPoint> positions;
QVector<glyph_t> glyphs;
- QVector<QChar> chars;
};
namespace {
@@ -80,7 +79,6 @@ class DrawTextItemRecorder: public QPaintEngine
{
int glyphOffset = m_inertText->glyphs.size(); // Store offset into glyph pool
int positionOffset = m_inertText->glyphs.size(); // Offset into position pool
- int charOffset = m_inertText->chars.size();
const QTextItemInt &ti = static_cast<const QTextItemInt &>(textItem);
@@ -91,9 +89,6 @@ class DrawTextItemRecorder: public QPaintEngine
if (last.fontEngine() == ti.fontEngine && last.font == ti.font() &&
(!m_dirtyPen || last.color == state->pen().color())) {
needFreshCurrentItem = false;
-
- last.numChars += ti.num_chars;
-
}
}
@@ -102,8 +97,6 @@ class DrawTextItemRecorder: public QPaintEngine
currentItem.setFontEngine(ti.fontEngine);
currentItem.font = ti.font();
- currentItem.charOffset = charOffset;
- currentItem.numChars = ti.num_chars;
currentItem.numGlyphs = 0;
currentItem.glyphOffset = glyphOffset;
currentItem.positionOffset = positionOffset;
@@ -129,17 +122,12 @@ class DrawTextItemRecorder: public QPaintEngine
m_inertText->glyphs.resize(m_inertText->glyphs.size() + size);
m_inertText->positions.resize(m_inertText->glyphs.size());
- m_inertText->chars.resize(m_inertText->chars.size() + ti.num_chars);
glyph_t *glyphsDestination = m_inertText->glyphs.data() + glyphOffset;
memcpy(glyphsDestination, glyphs.constData(), sizeof(glyph_t) * size);
QFixedPoint *positionsDestination = m_inertText->positions.data() + positionOffset;
memcpy(positionsDestination, positions.constData(), sizeof(QFixedPoint) * size);
-
- QChar *charsDestination = m_inertText->chars.data() + charOffset;
- memcpy(charsDestination, ti.chars, sizeof(QChar) * ti.num_chars);
-
}
virtual void drawPolygon(const QPointF *, int , PolygonDrawMode )
@@ -278,7 +266,6 @@ void QDeclarativeTextLayout::beginLayout()
d->items.clear();
d->positions.clear();
d->glyphs.clear();
- d->chars.clear();
d->position = QPointF();
}
QTextLayout::beginLayout();
@@ -291,7 +278,6 @@ void QDeclarativeTextLayout::clearLayout()
d->items.clear();
d->positions.clear();
d->glyphs.clear();
- d->chars.clear();
d->position = QPointF();
}
QTextLayout::clearLayout();
@@ -310,14 +296,12 @@ void QDeclarativeTextLayout::prepare()
glyph_t *glyphPool = d->glyphs.data();
QFixedPoint *positionPool = d->positions.data();
- QChar *charPool = d->chars.data();
int itemCount = d->items.count();
for (int ii = 0; ii < itemCount; ++ii) {
QStaticTextItem &item = d->items[ii];
item.glyphs = glyphPool + item.glyphOffset;
item.glyphPositions = positionPool + item.positionOffset;
- item.chars = charPool + item.charOffset;
}
d->cached = true;
diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp
index 682c8267..7f4ed88e 100644
--- a/src/declarative/qml/qdeclarativeengine.cpp
+++ b/src/declarative/qml/qdeclarativeengine.cpp
@@ -2295,21 +2295,6 @@ QString QDeclarativeEngine::offlineStoragePath() const
return d->scriptEngine.offlineStoragePath;
}
-static void voidptr_destructor(void *v)
-{
- void **ptr = (void **)v;
- delete ptr;
-}
-
-static void *voidptr_constructor(const void *v)
-{
- if (!v) {
- return new void*;
- } else {
- return new void*(*(void **)v);
- }
-}
-
QDeclarativePropertyCache *QDeclarativeEnginePrivate::createCache(const QMetaObject *mo)
{
Q_Q(QDeclarativeEngine);
@@ -2436,10 +2421,19 @@ void QDeclarativeEnginePrivate::registerCompositeType(QDeclarativeCompiledData *
QByteArray ptr = name + '*';
QByteArray lst = "QDeclarativeListProperty<" + name + '>';
- int ptr_type = QMetaType::registerType(ptr.constData(), voidptr_destructor,
- voidptr_constructor);
- int lst_type = QMetaType::registerType(lst.constData(), voidptr_destructor,
- voidptr_constructor);
+ int ptr_type = QMetaType::registerNormalizedType(ptr,
+ QtMetaTypePrivate::QMetaTypeFunctionHelper<QObject*>::Destruct,
+ QtMetaTypePrivate::QMetaTypeFunctionHelper<QObject*>::Construct,
+ sizeof(QObject*),
+ static_cast<QFlags<QMetaType::TypeFlag> >(QtPrivate::QMetaTypeTypeFlags<QObject*>::Flags),
+ data->root);
+ int lst_type = QMetaType::registerNormalizedType(lst,
+ QtMetaTypePrivate::QMetaTypeFunctionHelper<QDeclarativeListProperty<QObject> >::Destruct,
+ QtMetaTypePrivate::QMetaTypeFunctionHelper<QDeclarativeListProperty<QObject> >::Construct,
+ sizeof(QDeclarativeListProperty<QObject>),
+ static_cast<QFlags<QMetaType::TypeFlag> >(QtPrivate::QMetaTypeTypeFlags<QDeclarativeListProperty<QObject> >::Flags),
+ static_cast<QMetaObject*>(0));
+
m_qmlLists.insert(lst_type, ptr_type);
m_compositeTypes.insert(ptr_type, data);
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml b/tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml
index 58b7adb8..7fe2cc30 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml
@@ -40,7 +40,7 @@ QtObject {
property int d: 176
property string e: "Hello"
property string f: "World"
- property variant g: 6.7
+ property variant g: 6.5
property variant h: "!"
property variant i: true
property string j: "#112233"
diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
index 9eef4c74..549726f4 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
@@ -2309,8 +2309,8 @@ void tst_qdeclarativeecmascript::compiled()
QCOMPARE(object->property("test17").toInt(), 5);
QCOMPARE(object->property("test18").toReal(), qreal(176));
QCOMPARE(object->property("test19").toInt(), 7);
- QCOMPARE(object->property("test20").toReal(), qreal(6.7));
- QCOMPARE(object->property("test21").toString(), QLatin1String("6.7"));
+ QCOMPARE(object->property("test20").toReal(), qreal(6.5));
+ QCOMPARE(object->property("test21").toString(), QLatin1String("6.5"));
QCOMPARE(object->property("test22").toString(), QLatin1String("!"));
QCOMPARE(object->property("test23").toBool(), true);
QCOMPARE(qvariant_cast<QColor>(object->property("test24")), QColor(0x11,0x22,0x33));