- QGraphicsTextItem* item = NULL;
- QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
- if(l.size() == 1 && l.at(0)->type() == TEXTITEM) {
- item = static_cast <QGraphicsTextItem *>(l.at(0));
- }
- if(!item) return;
- //if (item->textCursor().selection ().isEmpty())
- QTextCursor cur(item->document());
- cur.select(QTextCursor::Document);
- QTextBlockFormat format = cur.blockFormat();
- if(buttonAlignLeft->isChecked() || buttonAlignCenter->isChecked() || buttonAlignRight->isChecked()) {
- item->setTextWidth(item->boundingRect().width());
- if(buttonAlignCenter->isChecked()) format.setAlignment(Qt::AlignHCenter);
- else if(buttonAlignRight->isChecked()) format.setAlignment(Qt::AlignRight);
- else if(buttonAlignLeft->isChecked()) format.setAlignment(Qt::AlignLeft);
- } else {
- format.setAlignment(Qt::AlignLeft);
- item->setTextWidth(-1);
+
+ int i;
+ for (i = 0; i < graphicsView->scene()->selectedItems().length(); i++) {
+ QGraphicsTextItem* item = NULL;
+ QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
+ if(l.at(i)->type() == TEXTITEM) {
+ item = static_cast <QGraphicsTextItem *>(l.at(i));
+ }
+ if(!item) {
+ // No text item, try next one.
+ continue;
+ }
+
+ // Set alignment of all text in the text item
+ QTextCursor cur(item->document());
+ cur.select(QTextCursor::Document);
+ QTextBlockFormat format = cur.blockFormat();
+ if(buttonAlignLeft->isChecked() || buttonAlignCenter->isChecked() || buttonAlignRight->isChecked()) {
+ item->setTextWidth(item->boundingRect().width());
+ if(buttonAlignCenter->isChecked()) format.setAlignment(Qt::AlignHCenter);
+ else if(buttonAlignRight->isChecked()) format.setAlignment(Qt::AlignRight);
+ else if(buttonAlignLeft->isChecked()) format.setAlignment(Qt::AlignLeft);
+ } else {
+ format.setAlignment(Qt::AlignLeft);
+ item->setTextWidth(-1);
+ }
+
+ // Set font properties
+ item->setFont(font);
+ QTextCharFormat cformat = cur.charFormat();
+
+ item->setData(101, outlineWidth);
+ item->setData(102, outlineColor);
+ if(outlineWidth > 0.0) cformat.setTextOutline(QPen(outlineColor, outlineWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+
+ cformat.setForeground(QBrush(color));
+ cur.setCharFormat(cformat);
+ cur.setBlockFormat(format);
+// item->setTextCursor(cur);
+ cur.clearSelection();
+ item->setTextCursor(cur);