diff options
7 files changed, 23 insertions, 45 deletions
diff --git a/.qmake.conf b/.qmake.conf index 35f43d51..068da422 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -1,4 +1,4 @@ load(qt_build_config) CONFIG += qt_example_installs -MODULE_VERSION = 5.4.2 +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 14f3c95c..c206a021 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -2297,21 +2297,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); @@ -2438,10 +2423,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/src/declarative/util/qdeclarativeconnections.cpp b/src/declarative/util/qdeclarativeconnections.cpp index 51bdd530..2126ae16 100644 --- a/src/declarative/util/qdeclarativeconnections.cpp +++ b/src/declarative/util/qdeclarativeconnections.cpp @@ -41,6 +41,7 @@ #include <qdeclarativeinfo.h> #include <QtCore/qdebug.h> +#include <QtCore/qdatastream.h> #include <QtCore/qstringlist.h> #include <private/qobject_p.h> 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 779c1d2e..e8bfd694 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp +++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp @@ -2315,8 +2315,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)); diff --git a/tests/auto/declarative/qdeclarativeinfo/tst_qdeclarativeinfo.cpp b/tests/auto/declarative/qdeclarativeinfo/tst_qdeclarativeinfo.cpp index 88bfc455..35e16fc5 100644 --- a/tests/auto/declarative/qdeclarativeinfo/tst_qdeclarativeinfo.cpp +++ b/tests/auto/declarative/qdeclarativeinfo/tst_qdeclarativeinfo.cpp @@ -166,20 +166,19 @@ void tst_qdeclarativeinfo::types() void tst_qdeclarativeinfo::chaining() { - //### should more of these be automatically inserting spaces? QString str("Hello World"); QStringRef ref(&str, 6, 5); - QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: false 1.1 1.2 15 hello 'b' QUrl(\"http://www.qt-project.org\") World \"Qt\" Quick "); + QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: false 1.1 1.2 15 hello 'b' World \"Qt\" Quick QUrl(\"http://www.qt-project.org\") "); qmlInfo(0) << false << ' ' << 1.1 << ' ' << 1.2f << ' ' << 15 << ' ' << QLatin1String("hello") << ' ' << QChar('b') << ' ' - << QUrl("http://www.qt-project.org") - << ref - << QByteArray("Qt") - << QString ("Quick"); + << ref << ' ' + << QByteArray("Qt") << ' ' + << QString ("Quick") << ' ' + << QUrl("http://www.qt-project.org"); } QTEST_MAIN(tst_qdeclarativeinfo) |