29 QGraphicsTextItem(parent)
38 QGraphicsTextItem(text, parent),
40 m_previous_html_text(text)
51 setAcceptHoverEvents(
true);
52 setDefaultTextColor(Qt::black);
54 setFlags(QGraphicsItem::ItemIsSelectable|QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemSendsGeometryChanges);
56 setToolTip(
tr(
"Maintenir ctrl pour un déplacement libre"));
64 return(qobject_cast<Diagram *>(scene()));
85 QPointF local_origin(0.0, 0.0);
86 QPointF local_movement_point(movement);
89 QPointF scene_origin(mapToScene(local_origin));
90 QPointF scene_movement_point(mapToScene(local_movement_point));
93 return(scene_movement_point - scene_origin);
104 QPointF scene_origin(0.0, 0.0);
105 QPointF scene_movement_point(movement);
108 QPointF local_origin(mapFromScene(scene_origin));
109 QPointF local_movement_point(mapFromScene(scene_movement_point));
112 return(local_movement_point - local_origin);
123 QPointF local_origin(0.0, 0.0);
124 QPointF local_movement_point(movement);
127 QPointF parent_origin(mapToParent(local_origin));
128 QPointF parent_movement_point(mapToParent(local_movement_point));
131 return(parent_movement_point - parent_origin);
142 QPointF parent_origin(0.0, 0.0);
143 QPointF parent_movement_point(movement);
146 QPointF local_origin(mapFromParent(parent_origin));
147 QPointF local_movement_point(mapFromParent(parent_movement_point));
150 return(local_movement_point - local_origin);
155 if (this->
font() == font) {
161 QGraphicsTextItem::setFont(
font);
169 setDefaultTextColor(
color);
174 return defaultTextColor();
195 QSizeF size = document()->size();
196 size.setWidth(document()->idealWidth());
198 size.rheight() -= document()->documentMargin()*2;
199 size.rwidth() -= document()->documentMargin()*2;
205 QPointF pos = boundingRect().center();
206 pos.rx() -= size.width()/2;
207 pos.ry() -= size.height()/2;
209 return QRectF(pos, size);
214 QGraphicsTextItem::setHtml(text);
220 QGraphicsTextItem::setPlainText(text);
238 painter -> setRenderHint(QPainter::Antialiasing,
false);
239 QGraphicsTextItem::paint(painter, option, widget);
246 painter -> setRenderHint(QPainter::Antialiasing,
false);
247 painter -> setRenderHint(QPainter::TextAntialiasing,
false);
248 painter -> setRenderHint(QPainter::SmoothPixmapTransform,
false);
252 t.setColor(Qt::gray);
253 t.setStyle(Qt::DashDotLine);
255 painter -> setPen(t);
256 painter -> drawRoundRect(boundingRect(), 10, 10);
258 painter -> restore();
269 QGraphicsTextItem::focusInEvent(event);
271 setFlag(QGraphicsItem::ItemIsMovable,
false);
283 QGraphicsTextItem::focusOutEvent(event);
288 QTextCursor cursor = textCursor();
289 cursor.clearSelection();
290 setTextCursor(cursor);
293 setTextInteractionFlags(Qt::NoTextInteraction);
295 setFlag(QGraphicsItem::ItemIsMovable,
true);
296 setFlag(QGraphicsTextItem::ItemIsFocusable,
false);
304 if (!(textInteractionFlags() & Qt::TextEditable) && !
m_no_editable) {
306 setTextInteractionFlags(Qt::TextEditorInteraction);
309 setFocus(Qt::MouseFocusReason);
311 QGraphicsTextItem::mouseDoubleClickEvent(event);
321 if (event->button() == Qt::LeftButton)
327 QGraphicsTextItem::mousePressEvent(event);
335 if (textInteractionFlags() & Qt::TextEditable) QGraphicsTextItem::mouseMoveEvent(event);
337 else if ((flags() & QGraphicsItem::ItemIsMovable) && (event -> buttons() & Qt::LeftButton)) {
344 QPointF old_pos = pos();
348 event->modifiers() == Qt::ControlModifier ? setPos(new_pos) : setPos(
Diagram::snapToGrid(new_pos));
356 else event -> ignore();
368 if (
diagram() && (event->button() == Qt::LeftButton))
372 if (event->buttonDownScenePos(Qt::LeftButton) !=
event->scenePos()) {
376 if (event->modifiers() & Qt::ControlModifier && (
event->button() == Qt::LeftButton))
378 setSelected(!isSelected());
382 QGraphicsTextItem::mouseReleaseEvent(event);
415 QTransform transform;
416 transform.rotate(this->rotation());
424 xa = boundingRect().right();
429 xa = boundingRect().center().x();
435 ya = boundingRect().bottom();
440 ya = boundingRect().center().y();
443 QPointF p = transform.map(QPointF(x,y));
444 QPointF pa = transform.map(QPointF(xa,ya));
447 setPos(this->pos() - diff);
455 QWidget *parent =
nullptr;
456 if (scene() && scene()->views().size())
457 parent = scene()->views().first();
476 QString str_ToolTip = toPlainText();
477 setToolTip( str_ToolTip );
498 QGraphicsTextItem::hoverMoveEvent(e);
void fontChanged(QFont font)
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override
Qt::Alignment alignment() const
void setHtml(const QString &text)
void continueMovement(const QPointF &)
ElementsMover::continueMovement Add a move to the current movement.
void textEdited(const QString &old_str, const QString &new_str)
void setColor(const QColor &color)
void applyEditText(const QString &)
void hoverLeaveEvent(QGraphicsSceneHoverEvent *) override
QPointF mapMovementFromScene(const QPointF &) const
void finishAlignment()
DiagramTextItem::finishAlignment Call this function after changing the bouding rect of this text to s...
void colorChanged(QColor color)
void focusInEvent(QFocusEvent *) override
DiagramTextItem::focusInEvent.
void build()
DiagramTextItem::build Build this item with default value.
virtual QDomElement toXml(QDomDocument &) const
DiagramTextItem::toXml This method do nothing and return an empty DomElement This is used to be inher...
void setText(const QString &text)
void prepareAlignment()
DiagramTextItem::prepareAlignment Call this function before changing the bounding rect of this text...
QPointF mapMovementToParent(const QPointF &) const
void setPlainText(const QString &text)
void edit()
Edit the text with HtmlEditor.
void endMovement()
ElementsMover::endMovement Ended the current movement by creating an undo added to the undostack of t...
void hoverEnterEvent(QGraphicsSceneHoverEvent *) override
QString m_previous_html_text
void setAlignment(const Qt::Alignment &alignment)
ElementsMover & elementsMover()
virtual void applyRotation(const qreal &)
int beginMovement(Diagram *, QGraphicsItem *=nullptr)
ElementsMover::beginMovement Start a new movement.
DiagramTextItem(QGraphicsItem *=nullptr)
DiagramTextItem::DiagramTextItem.
qreal correctAngle(const qreal &)
QPointF m_mouse_to_origin_movement
void alignmentChanged(Qt::Alignment alignment)
QPointF mapMovementToScene(const QPointF &) const
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
DiagramTextItem::mousePressEvent.
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
DiagramTextItem::mouseReleaseEvent.
QPointF mapMovementFromParent(const QPointF &) const
Qt::Alignment m_alignment
void focusOutEvent(QFocusEvent *) override
DiagramTextItem::focusOutEvent.
static QFont diagramTextsItemFont(qreal=-1.0)
QETApp::diagramTextsItemFont the font for to use in independent text item.
static QPointF snapToGrid(const QPointF &p)
Diagram::snapToGrid Return a nearest snap point of p.
void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) override
DiagramTextItem::paint Draw this text field. This method draw the text by calling QGraphicsTextItem::...
void setFont(const QFont &font)
void hoverMoveEvent(QGraphicsSceneHoverEvent *) override
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
DiagramTextItem::mouseMoveEvent.
QRectF frameRect() const
DiagramTextItem::frameRect.
void setNoEditable(bool e=true)
Diagram * diagram() const
DiagramTextItem::diagram.