20 #include <QDomDocument>
25 , mDocument( new QTextDocument( QString() ) )
27 mDocument->setUseDesignMetrics(
true );
34 c->setDocument( mDocument.get() );
40 return mDocument.get();
46 mDocument.reset( doc->clone() );
54 QPainter *painter = context.
painter();
62 const double scaleFactor = context.
painter()->device()->logicalDpiX() / 96.0;
63 context.
painter()->scale( scaleFactor, scaleFactor );
66 mDocument->setTextWidth( size.width() );
68 QRectF clipRect = QRectF( 0, 0, size.width(), size.height() );
69 if ( painter->hasClipping() )
74 clipRect = clipRect.intersected( painter->clipRegion().boundingRect() );
77 mDocument->drawContents( painter, clipRect );
82 QDomElement annotationElem = doc.createElement( QStringLiteral(
"TextAnnotationItem" ) );
85 annotationElem.setAttribute( QStringLiteral(
"document" ), mDocument->toHtml() );
87 _writeXml( annotationElem, doc, context );
88 elem.appendChild( annotationElem );
93 mDocument.reset(
new QTextDocument );
94 mDocument->setHtml( itemElem.attribute( QStringLiteral(
"document" ), QString() ) );
95 const QDomElement annotationElem = itemElem.firstChildElement( QStringLiteral(
"AnnotationItem" ) );
96 if ( !annotationElem.isNull() )