summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-01-09 15:40:48 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-01-09 15:40:48 (GMT)
commite32bb8f0e79232419b9516fa8273eadbaa8aad9e (patch)
tree7251daf2ae329d3df5a8ae2b98b448e004c13acf
parentec82a2e2c596fd623c58a4a003dd2e7603931993 (diff)
parent48cce37f6faa2aae9b15edc9543f0e7e08236bb1 (diff)
downloadQt-e32bb8f0e79232419b9516fa8273eadbaa8aad9e.zip
Qt-e32bb8f0e79232419b9516fa8273eadbaa8aad9e.tar.gz
Qt-e32bb8f0e79232419b9516fa8273eadbaa8aad9e.tar.bz2
Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.6-integration
* '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Doc: the QTextDecoder need to be destroyed, reflect that in the example added CONFIG += console to qlalr.pro Add new benchmark for some qtext features. Add texture glyph width cache default. Update changes file
-rw-r--r--dist/changes-4.6.12
-rw-r--r--doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp1
-rw-r--r--src/gui/painting/qtextureglyphcache.cpp6
-rw-r--r--tests/benchmarks/benchmarks.pro1
-rw-r--r--tests/benchmarks/qtext/bidi.txt4
-rw-r--r--tests/benchmarks/qtext/main.cpp125
-rw-r--r--tests/benchmarks/qtext/qtext.pro7
-rw-r--r--util/qlalr/qlalr.pro1
8 files changed, 146 insertions, 1 deletions
diff --git a/dist/changes-4.6.1 b/dist/changes-4.6.1
index 2397228..145e09e 100644
--- a/dist/changes-4.6.1
+++ b/dist/changes-4.6.1
@@ -51,6 +51,8 @@ QtGui
in the DDS, ETC1, PVRTC2, and PVRTC4 formats if the OpenGL graphics
system is active and the appropriate extensions are present in the
GL implementation.
+ - QGraphicsObject
+ * 'id' property was removed. Use the 'objectName' property instead.
QtDBus
------
diff --git a/doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp b/doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp
index 4e77e04..2fd723e 100644
--- a/doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp
+++ b/doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp
@@ -62,6 +62,7 @@ while (new_data_available()) {
QByteArray chunk = get_new_data();
string += decoder->toUnicode(chunk);
}
+delete decoder;
//! [2]
diff --git a/src/gui/painting/qtextureglyphcache.cpp b/src/gui/painting/qtextureglyphcache.cpp
index 46fbaa9..27dbcf9 100644
--- a/src/gui/painting/qtextureglyphcache.cpp
+++ b/src/gui/painting/qtextureglyphcache.cpp
@@ -47,6 +47,10 @@
#include "private/qnativeimage_p.h"
#include "private/qfontengine_ft_p.h"
+#ifndef QT_DEFAULT_TEXTURE_GLYPH_CACHE_WIDTH
+#define QT_DEFAULT_TEXTURE_GLYPH_CACHE_WIDTH 256
+#endif
+
QT_BEGIN_NAMESPACE
// #define CACHE_DEBUG
@@ -112,7 +116,7 @@ void QTextureGlyphCache::populate(const QTextItemInt &ti,
rowHeight += margin * 2;
if (isNull())
- createCache(256, rowHeight);
+ createCache(QT_DEFAULT_TEXTURE_GLYPH_CACHE_WIDTH, rowHeight);
// now actually use the coords and paint the wanted glyps into cache.
QHash<glyph_t, Coord>::iterator iter = listItemCoordinates.begin();
diff --git a/tests/benchmarks/benchmarks.pro b/tests/benchmarks/benchmarks.pro
index 7bb4bb1..1c78f1f 100644
--- a/tests/benchmarks/benchmarks.pro
+++ b/tests/benchmarks/benchmarks.pro
@@ -8,6 +8,7 @@ SUBDIRS = containers-associative \
qhostinfo \
qpainter \
qtestlib-simple events \
+ qtext \
qiodevice \
qpixmap \
blendbench \
diff --git a/tests/benchmarks/qtext/bidi.txt b/tests/benchmarks/qtext/bidi.txt
new file mode 100644
index 0000000..7c74cb4
--- /dev/null
+++ b/tests/benchmarks/qtext/bidi.txt
@@ -0,0 +1,4 @@
+chinese
+欧洲,软件+互联网 
 用统一码 (Unicode) 走遍世界
将于1997年 3 月10日-12日在德国 Mainz 市举行的第十届统一码国际研讨会现在开始注册。 本次会议将汇集各方面的专家。 涉及的领域包括: 国际互联网和统一码 ,国际化和本地化 ,统一码在操作系统和应用软件中的实现 ,字型 ,文本格式以及多文种计算等。 
当世界需要沟通时,请用Unicode!
+hebrew-bidi
+אײראָפּע: פּראָגראַמװאַרג און די װעלטנעץ: אוניקאָד איבער דער גאָרער װעלט פֿאַרשרײַבט זיך שױן אױף דער צענטער אינטערנאַציאָנאַלער אוניקאָד-קאָנפֿערענץ, װאָס װעט פֿאָרקומען דעם 10טן ביזן 12טן מאַרץ, 1997, אין מײַנץ, דײַטשלאַנד. די קאָנפֿערענץ װעט צוזאַמענברענגן מבֿינים פֿון װעלטנעץ, אוניקאָד, אי אַלװעלטלעכן אי סבֿיבֿהדיקן פּראָגראַמװאַרג, אַרײַנשטעלן אוניקאָד אין אָפּעריר-סיסטעמען און אָנװענדונגען, שריפֿטן, טעקסט-אױסשטעל, און מערשפּראַכיקע קאָמפּיוטערײַ.
diff --git a/tests/benchmarks/qtext/main.cpp b/tests/benchmarks/qtext/main.cpp
new file mode 100644
index 0000000..3c973b6
--- /dev/null
+++ b/tests/benchmarks/qtext/main.cpp
@@ -0,0 +1,125 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QDebug>
+#include <QTextDocument>
+#include <QTextLayout>
+#include <QFile>
+#include <qtest.h>
+
+class tst_QText: public QObject
+{
+ Q_OBJECT
+private slots:
+ void loadHtml_data();
+ void loadHtml();
+
+ void shaping_data();
+ void shaping();
+};
+
+void tst_QText::loadHtml_data()
+{
+ QTest::addColumn<QString>("source");
+ QTest::newRow("empty") << QString();
+ QTest::newRow("simple") << QString::fromLatin1("<html><b>Foo</b></html>");
+ QTest::newRow("simple2") << QString::fromLatin1("<b>Foo</b>");
+
+ QString parag = QString::fromLatin1("<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. <b>Duis <i>autem</i> vel eum </b> iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</p>");
+ QString header = QString::fromLatin1("<html><head><title>test</title></head><body>");
+ QTest::newRow("long") << QString::fromLatin1("<html><head><title>test</title></head><body>") + parag + parag + parag
+ + parag + parag + parag + parag + parag + parag + parag + parag + parag + parag + parag + parag + parag + parag
+ + QString::fromLatin1("</html>");
+ QTest::newRow("table") << header + QLatin1String("<table border=\"1\"1><tr><td>xx</td></tr><tr><td colspan=\"2\">")
+ + parag + QLatin1String("</td></tr></table></html");
+ QTest::newRow("crappy") << header + QLatin1String("<table border=\"1\"1><tr><td>xx</td></tr><tr><td colspan=\"2\">")
+ + parag;
+}
+
+void tst_QText::loadHtml()
+{
+ QFETCH(QString, source);
+ QTextDocument doc;
+ QBENCHMARK {
+ doc.setHtml(source);
+ }
+}
+
+void tst_QText::shaping_data()
+{
+ QTest::addColumn<QString>("parag");
+ QTest::newRow("empty") << QString();
+ QTest::newRow("lorem") << QString::fromLatin1("Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.");
+ QTest::newRow("short") << QString::fromLatin1("Lorem ipsum dolor sit amet");
+
+ QFile file(QString::fromLatin1(SRCDIR) + QLatin1String("/bidi.txt"));
+ QVERIFY(file.open(QFile::ReadOnly));
+ QByteArray data = file.readAll();
+ QVERIFY(data.count() > 1000);
+ QStringList list = QString::fromUtf8(data.data()).split(QLatin1Char('\n'), QString::SkipEmptyParts);
+ QVERIFY(list.count() %2 == 0); // even amount as we have title and then content.
+ for (int i=0; i < list.count(); i+=2) {
+ QTest::newRow(list.at(i).toLatin1()) << list.at(i+1);
+ }
+}
+
+void tst_QText::shaping()
+{
+ QFETCH(QString, parag);
+
+ QTextLayout lay(parag);
+ lay.setCacheEnabled(false);
+
+ // do one run to make sure any fonts are loaded.
+ lay.beginLayout();
+ lay.createLine();
+ lay.endLayout();
+
+ QBENCHMARK {
+ lay.beginLayout();
+ lay.createLine();
+ lay.endLayout();
+ }
+}
+
+QTEST_MAIN(tst_QText)
+
+#include "main.moc"
diff --git a/tests/benchmarks/qtext/qtext.pro b/tests/benchmarks/qtext/qtext.pro
new file mode 100644
index 0000000..ce4f604
--- /dev/null
+++ b/tests/benchmarks/qtext/qtext.pro
@@ -0,0 +1,7 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_QText
+
+SOURCES += main.cpp
+
+DEFINES += SRCDIR=\\\"$$PWD/\\\"
diff --git a/util/qlalr/qlalr.pro b/util/qlalr/qlalr.pro
index 881a36a..1994a73 100644
--- a/util/qlalr/qlalr.pro
+++ b/util/qlalr/qlalr.pro
@@ -1,6 +1,7 @@
TEMPLATE = app
QT = core
+CONFIG += console
TARGET = qlalr
mac:CONFIG -= app_bundle