Added option to only move dynamic texts

This commit is contained in:
Magnus Hellströmer 2024-09-27 22:56:08 +02:00
parent 8c3343795a
commit 78ee65a21b
3 changed files with 47 additions and 27 deletions

View File

@ -546,7 +546,15 @@ void DynamicElementTextItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
m_slave_Xref_item->setDefaultTextColor(Qt::black); m_slave_Xref_item->setDefaultTextColor(Qt::black);
} }
// Shift or no parent initiates movement of dynamic text, otherwise movement of parent element
if(event->modifiers() & Qt::ShiftModifier || !m_parent_element)
{
m_move_parent = false;
DiagramTextItem::mousePressEvent(event); DiagramTextItem::mousePressEvent(event);
} else {
m_move_parent = true;
parentElement()->mousePressEvent(event);
}
} }
/** /**
@ -557,6 +565,10 @@ void DynamicElementTextItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{ {
if((event->buttons() & Qt::LeftButton) && (flags() & ItemIsMovable)) if((event->buttons() & Qt::LeftButton) && (flags() & ItemIsMovable))
{ {
if(m_move_parent)
{
parentElement()->mouseMoveEvent(event);
} else {
if(diagram() && m_first_move) if(diagram() && m_first_move)
diagram()->elementTextsMover().beginMovement(diagram(), this); diagram()->elementTextsMover().beginMovement(diagram(), this);
@ -577,6 +589,7 @@ void DynamicElementTextItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
if(diagram()) if(diagram())
diagram()->elementTextsMover().continueMovement(event); diagram()->elementTextsMover().continueMovement(event);
}
} else { } else {
event->ignore(); event->ignore();
} }
@ -591,6 +604,10 @@ void DynamicElementTextItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
*/ */
void DynamicElementTextItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) void DynamicElementTextItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{ {
if(m_move_parent)
{
parentElement()->mouseReleaseEvent(event);
} else {
if (m_parent_element) if (m_parent_element)
m_parent_element->setHighlighted(false); m_parent_element->setHighlighted(false);
@ -599,6 +616,7 @@ void DynamicElementTextItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
if(!(event->modifiers() & Qt::ControlModifier)) if(!(event->modifiers() & Qt::ControlModifier))
QGraphicsTextItem::mouseReleaseEvent(event); QGraphicsTextItem::mouseReleaseEvent(event);
}
} }
/** /**

View File

@ -170,6 +170,7 @@ class DynamicElementTextItem : public DiagramTextItem
QPointF m_initial_position; QPointF m_initial_position;
bool m_keep_visual_rotation = true; bool m_keep_visual_rotation = true;
qreal m_visual_rotation_ref = 0; qreal m_visual_rotation_ref = 0;
bool m_move_parent = true;
}; };
#endif // DYNAMICELEMENTTEXTITEM_H #endif // DYNAMICELEMENTTEXTITEM_H

View File

@ -42,6 +42,7 @@ class ElementTextItemGroup;
class Element : public QetGraphicsItem class Element : public QetGraphicsItem
{ {
friend class DiagramEventAddElement; friend class DiagramEventAddElement;
friend class DynamicElementTextItem;
Q_OBJECT Q_OBJECT
public: public: