summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/declarative/util/qdeclarativestyledtext.cpp6
-rw-r--r--tests/benchmarks/gui/text/qtext/main.cpp41
2 files changed, 44 insertions, 3 deletions
diff --git a/src/declarative/util/qdeclarativestyledtext.cpp b/src/declarative/util/qdeclarativestyledtext.cpp
index babd71b..91566bc 100644
--- a/src/declarative/util/qdeclarativestyledtext.cpp
+++ b/src/declarative/util/qdeclarativestyledtext.cpp
@@ -152,8 +152,6 @@ void QDeclarativeStyledTextPrivate::parse()
QTextCharFormat format;
if (formatStack.count())
format = formatStack.top();
- else
- format.setFont(baseFont);
if (parseTag(ch, text, drawText, format))
formatStack.push(format);
}
@@ -198,8 +196,10 @@ bool QDeclarativeStyledTextPrivate::parseTag(const QChar *&ch, const QString &te
if (char0 == QLatin1Char('b')) {
if (tagLength == 1)
format.setFontWeight(QFont::Bold);
- else if (tagLength == 2 && tag.at(1) == QLatin1Char('r'))
+ else if (tagLength == 2 && tag.at(1) == QLatin1Char('r')) {
textOut.append(QChar(QChar::LineSeparator));
+ return false;
+ }
} else if (char0 == QLatin1Char('i')) {
if (tagLength == 1)
format.setFontItalic(true);
diff --git a/tests/benchmarks/gui/text/qtext/main.cpp b/tests/benchmarks/gui/text/qtext/main.cpp
index eaa23e9..63daae0 100644
--- a/tests/benchmarks/gui/text/qtext/main.cpp
+++ b/tests/benchmarks/gui/text/qtext/main.cpp
@@ -84,9 +84,11 @@ private slots:
void newLineReplacement();
void formatManipulation();
+ void fontResolution();
void layout_data();
void layout();
+ void formattedLayout();
void paintLayoutToPixmap();
void paintLayoutToPixmap_painterFill();
@@ -306,6 +308,18 @@ void tst_QText::formatManipulation()
}
}
+void tst_QText::fontResolution()
+{
+ QFont font;
+ QFont font2;
+ font.setFamily("DejaVu");
+ font2.setBold(true);
+
+ QBENCHMARK {
+ QFont res = font.resolve(font2);
+ }
+}
+
void tst_QText::layout_data()
{
QTest::addColumn<bool>("wrap");
@@ -339,6 +353,33 @@ void tst_QText::layout()
}
}*/
+void tst_QText::formattedLayout()
+{
+ //set up formatting
+ QList<QTextLayout::FormatRange> ranges;
+ {
+ QTextCharFormat format;
+ format.setForeground(QColor("steelblue"));
+
+ QTextLayout::FormatRange formatRange;
+ formatRange.format = format;
+ formatRange.start = 0;
+ formatRange.length = 50;
+
+ ranges.append(formatRange);
+ }
+
+ QTextLayout layout(m_shortLorem);
+ layout.setAdditionalFormats(ranges);
+ setupTextLayout(&layout);
+
+ QBENCHMARK {
+ QTextLayout layout(m_shortLorem);
+ layout.setAdditionalFormats(ranges);
+ setupTextLayout(&layout);
+ }
+}
+
void tst_QText::paintLayoutToPixmap()
{
QTextLayout layout(m_shortLorem);