-void QQuickTextControl::mergeCurrentCharFormat(const QTextCharFormat &modifier)
-{
- Q_D(QQuickTextControl);
- d->cursor.mergeCharFormat(modifier);
- d->updateCurrentCharFormat();
-}
-
-void QQuickTextControl::setCurrentCharFormat(const QTextCharFormat &format)
-{
- Q_D(QQuickTextControl);
- d->cursor.setCharFormat(format);
- d->updateCurrentCharFormat();
-}
-
-QTextCharFormat QQuickTextControl::currentCharFormat() const
-{
- Q_D(const QQuickTextControl);
- return d->cursor.charFormat();
-}
-
-void QQuickTextControl::insertPlainText(const QString &text)
-{
- Q_D(QQuickTextControl);
- d->cursor.insertText(text);
-}
-
-#ifndef QT_NO_TEXTHTMLPARSER
-void QQuickTextControl::insertHtml(const QString &text)
-{
- Q_D(QQuickTextControl);
- d->cursor.insertHtml(text);
-}
-#endif // QT_NO_TEXTHTMLPARSER
-
-QPointF QQuickTextControl::anchorPosition(const QString &name) const
-{
- Q_D(const QQuickTextControl);
- if (name.isEmpty())
- return QPointF();
-
- QRectF r;
- for (QTextBlock block = d->doc->begin(); block.isValid(); block = block.next()) {
- QTextCharFormat format = block.charFormat();
- if (format.isAnchor() && format.anchorNames().contains(name)) {
- r = d->rectForPosition(block.position());
- break;
- }
-
- for (QTextBlock::Iterator it = block.begin(); !it.atEnd(); ++it) {
- QTextFragment fragment = it.fragment();
- format = fragment.charFormat();
- if (format.isAnchor() && format.anchorNames().contains(name)) {
- r = d->rectForPosition(fragment.position());
- block = QTextBlock();
- break;
- }
- }
- }
- if (!r.isValid())
- return QPointF();
- return QPointF(0, r.top());
-}
-
-void QQuickTextControl::adjustSize()
-{
- Q_D(QQuickTextControl);
- d->doc->adjustSize();
-}
-
-bool QQuickTextControl::find(const QString &exp, QTextDocument::FindFlags options)
-{
- Q_D(QQuickTextControl);
- QTextCursor search = d->doc->find(exp, d->cursor, options);
- if (search.isNull())
- return false;
-
- setTextCursor(search);
- return true;
-}
-
-
-
-void QQuickTextControlPrivate::append(const QString &text, Qt::TextFormat format)
-{
- QTextCursor tmp(doc);
- tmp.beginEditBlock();
- tmp.movePosition(QTextCursor::End);
-
- if (!doc->isEmpty())
- tmp.insertBlock(cursor.blockFormat(), cursor.charFormat());
- else
- tmp.setCharFormat(cursor.charFormat());
-
- // preserve the char format
- QTextCharFormat oldCharFormat = cursor.charFormat();
-
-#ifndef QT_NO_TEXTHTMLPARSER
- if (format == Qt::RichText || (format == Qt::AutoText && Qt::mightBeRichText(text))) {
- tmp.insertHtml(text);
- } else {
- tmp.insertText(text);
- }
-#else
- tmp.insertText(text);
-#endif // QT_NO_TEXTHTMLPARSER
- if (!cursor.hasSelection())
- cursor.setCharFormat(oldCharFormat);
-
- tmp.endEditBlock();
-}
-
-void QQuickTextControl::append(const QString &text)
-{
- Q_D(QQuickTextControl);
- d->append(text, Qt::AutoText);
-}
-
-void QQuickTextControl::appendHtml(const QString &html)
-{
- Q_D(QQuickTextControl);
- d->append(html, Qt::RichText);
-}
-
-void QQuickTextControl::appendPlainText(const QString &text)
-{
- Q_D(QQuickTextControl);
- d->append(text, Qt::PlainText);
-}
-