// draw text void ScenePainter::drawText(const char * const *strs, double *x, double *y, int n, Qt::Alignment flags, double rot) { if (indexMode()) { QVector<QRectF> rects = textExtents(strs, n, flags); for (int i = 0; i < n; i++) { QString qstr = QString::fromLocal8Bit(strs[i]); QPointF center = rects[i].center(); double xi = x[i] + center.x(); double yi = y[i] + center.y(); drawPoints(&xi, &yi, 1); } return; } // FIXME: alignment is ignored -- translate to HTML? QTransform tform = transform(); for (int i = 0; i < n; i++) { QString qstr = QString::fromLocal8Bit(strs[i]); QGraphicsItem *item = STORE_INDEX(_scene->addText(qstr, _scene->font())); item->setFlag(QGraphicsItem::ItemIgnoresTransformations); item->setPos(tform.map(QPointF(x[i], y[i]))); item->rotate(-rot); } }