mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-18 13:30:34 +01:00
Le rendu et le positionnement des textes statiques sont desormais identiques entre l'editeur d'element et l'editeur de schemas.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.3@746 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -548,8 +548,35 @@ bool CustomElement::parseText(QDomElement &e, QPainter &qp) {
|
||||
|
||||
qp.save();
|
||||
setPainterStyle(e, qp);
|
||||
qp.setFont(QETApp::diagramTextsFont(size));
|
||||
qp.drawText(QPointF(pos_x, pos_y), e.attribute("text"));
|
||||
|
||||
// determine la police a utiliser et en recupere les metriques associees
|
||||
QFont used_font = QETApp::diagramTextsFont(size);
|
||||
QFontMetrics qfm(used_font);
|
||||
|
||||
// instancie un QTextDocument (comme la classe QGraphicsTextItem) pour
|
||||
// generer le rendu graphique du texte
|
||||
QTextDocument text_document;
|
||||
text_document.setPlainText(e.attribute("text"));
|
||||
|
||||
/*
|
||||
deplace le systeme de coordonnees du QPainter pour effectuer le rendu au
|
||||
bon endroit ; note : on soustrait l'ascent() de la police pour
|
||||
determiner le coin superieur gauche du texte alors que la position
|
||||
indiquee correspond a la baseline QPointF
|
||||
*/
|
||||
QPointF qpainter_offset(pos_x, pos_y - qfm.ascent());
|
||||
|
||||
// ajuste le decalage selon la marge du document texte
|
||||
#if QT_VERSION >= 0x040500
|
||||
text_document.setDocumentMargin(0.0);
|
||||
#else
|
||||
// il semblerait qu'avant Qt 4.5, le documentMargin vaille 2.0 (et pas 4.0)
|
||||
qpainter_offset.ry() -= 2.0;
|
||||
#endif
|
||||
|
||||
qp.translate(qpainter_offset);
|
||||
text_document.drawContents(&qp);
|
||||
|
||||
qp.restore();
|
||||
return(true);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user