diff options
Diffstat (limited to 'src/quick/items/qquicktextedit.cpp')
-rw-r--r-- | src/quick/items/qquicktextedit.cpp | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/quick/items/qquicktextedit.cpp b/src/quick/items/qquicktextedit.cpp index d09c432b93..41b6e9472d 100644 --- a/src/quick/items/qquicktextedit.cpp +++ b/src/quick/items/qquicktextedit.cpp @@ -260,7 +260,9 @@ void QQuickTextEdit::setText(const QString &text) d->document->clearResources(); d->richText = d->format == RichText || (d->format == AutoText && Qt::mightBeRichText(text)); - if (d->richText) { + if (!isComponentComplete()) { + d->text = text; + } else if (d->richText) { #ifndef QT_NO_TEXTHTMLPARSER d->control->setHtml(text); #else @@ -326,12 +328,14 @@ void QQuickTextEdit::setTextFormat(TextFormat format) d->richText = format == RichText || (format == AutoText && (wasRich || Qt::mightBeRichText(text()))); #ifndef QT_NO_TEXTHTMLPARSER - if (wasRich && !d->richText) { - d->control->setPlainText(!d->textCached ? d->control->toHtml() : d->text); - updateSize(); - } else if (!wasRich && d->richText) { - d->control->setHtml(!d->textCached ? d->control->toPlainText() : d->text); - updateSize(); + if (isComponentComplete()) { + if (wasRich && !d->richText) { + d->control->setPlainText(!d->textCached ? d->control->toHtml() : d->text); + updateSize(); + } else if (!wasRich && d->richText) { + d->control->setHtml(!d->textCached ? d->control->toPlainText() : d->text); + updateSize(); + } } #endif @@ -1161,6 +1165,14 @@ void QQuickTextEdit::componentComplete() QQuickImplicitSizeItem::componentComplete(); d->document->setBaseUrl(baseUrl(), d->richText); +#ifndef QT_NO_TEXTHTML_PARSER + if (d->richText) + d->control->setHtml(d->text); + else +#endif + if (!d->text.isEmpty()) + d->control->setPlainText(d->text); + if (d->dirty) { d->determineHorizontalAlignment(); d->updateDefaultTextOption(); |