mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-04-23 20:19:58 +02:00
Merge pull request #371 from qelectrotech/master
Merge last commits on mastert to branch qt6-cmake
This commit is contained in:
@@ -1505,7 +1505,7 @@ void Conductor::refreshText()
|
||||
{
|
||||
if (diagram())
|
||||
{
|
||||
QString text = autonum::AssignVariables::formulaToLabel(m_properties.m_formula, m_autoNum_seq, diagram());
|
||||
QString text = autonum::AssignVariables::formulaToLabel(m_properties.m_formula, m_autoNum_seq, diagram(), nullptr, this);
|
||||
m_properties.text = text;
|
||||
m_text_item->setPlainText(text);
|
||||
}
|
||||
@@ -1590,7 +1590,7 @@ void Conductor::setProperties(const ConductorProperties &property)
|
||||
{
|
||||
if (diagram())
|
||||
{
|
||||
QString text = autonum::AssignVariables::formulaToLabel(m_properties.m_formula, m_autoNum_seq, diagram());
|
||||
QString text = autonum::AssignVariables::formulaToLabel(m_properties.m_formula, m_autoNum_seq, diagram(), nullptr, this);
|
||||
m_properties.text = text;
|
||||
}
|
||||
else if (m_properties.text.isEmpty())
|
||||
|
||||
@@ -545,8 +545,16 @@ void DynamicElementTextItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
||||
if(m_slave_Xref_item)
|
||||
m_slave_Xref_item->setDefaultTextColor(Qt::black);
|
||||
}
|
||||
|
||||
DiagramTextItem::mousePressEvent(event);
|
||||
|
||||
// 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);
|
||||
} else {
|
||||
m_move_parent = true;
|
||||
parentElement()->mousePressEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -557,26 +565,33 @@ void DynamicElementTextItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
if((event->buttons() & Qt::LeftButton) && (flags() & ItemIsMovable))
|
||||
{
|
||||
if(diagram() && m_first_move)
|
||||
diagram()->elementTextsMover().beginMovement(diagram(), this);
|
||||
|
||||
if(m_first_move)
|
||||
if(m_move_parent)
|
||||
{
|
||||
m_initial_position = pos();
|
||||
if(parentElement())
|
||||
parentElement()->setHighlighted(true);
|
||||
parentElement()->mouseMoveEvent(event);
|
||||
} else {
|
||||
if(diagram() && m_first_move)
|
||||
diagram()->elementTextsMover().beginMovement(diagram(), this);
|
||||
|
||||
if(m_first_move)
|
||||
{
|
||||
m_initial_position = pos();
|
||||
if(parentElement())
|
||||
parentElement()->setHighlighted(true);
|
||||
}
|
||||
|
||||
QPointF current_parent_pos;
|
||||
QPointF button_down_parent_pos;
|
||||
current_parent_pos = mapToParent(mapFromScene(event->scenePos()));
|
||||
button_down_parent_pos = mapToParent(mapFromScene(event->buttonDownScenePos(Qt::LeftButton)));
|
||||
|
||||
int diffx = qRound(current_parent_pos.x() - button_down_parent_pos.x());
|
||||
int diffy = qRound(current_parent_pos.y() - button_down_parent_pos.y());
|
||||
QPointF new_pos = m_initial_position + QPointF(diffx, diffy);
|
||||
setPos(new_pos);
|
||||
|
||||
if(diagram())
|
||||
diagram()->elementTextsMover().continueMovement(event);
|
||||
}
|
||||
|
||||
QPointF current_parent_pos;
|
||||
QPointF button_down_parent_pos;
|
||||
current_parent_pos = mapToParent(mapFromScene(event->scenePos()));
|
||||
button_down_parent_pos = mapToParent(mapFromScene(event->buttonDownScenePos(Qt::LeftButton)));
|
||||
|
||||
QPointF new_pos = m_initial_position + current_parent_pos - button_down_parent_pos;
|
||||
event->modifiers() == Qt::ControlModifier ? setPos(new_pos) : setPos(Diagram::snapToGrid(new_pos));
|
||||
|
||||
if(diagram())
|
||||
diagram()->elementTextsMover().continueMovement(event);
|
||||
} else {
|
||||
event->ignore();
|
||||
}
|
||||
@@ -591,14 +606,19 @@ void DynamicElementTextItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
||||
*/
|
||||
void DynamicElementTextItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
if (m_parent_element)
|
||||
m_parent_element->setHighlighted(false);
|
||||
if(m_move_parent)
|
||||
{
|
||||
parentElement()->mouseReleaseEvent(event);
|
||||
} else {
|
||||
if (m_parent_element)
|
||||
m_parent_element->setHighlighted(false);
|
||||
|
||||
if(m_parent_element && m_parent_element->diagram())
|
||||
m_parent_element.data()->diagram()->elementTextsMover().endMovement();
|
||||
|
||||
if(!(event->modifiers() & Qt::ControlModifier))
|
||||
QGraphicsTextItem::mouseReleaseEvent(event);
|
||||
if(m_parent_element && m_parent_element->diagram())
|
||||
m_parent_element.data()->diagram()->elementTextsMover().endMovement();
|
||||
|
||||
if(!(event->modifiers() & Qt::ControlModifier))
|
||||
QGraphicsTextItem::mouseReleaseEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -170,6 +170,7 @@ class DynamicElementTextItem : public DiagramTextItem
|
||||
QPointF m_initial_position;
|
||||
bool m_keep_visual_rotation = true;
|
||||
qreal m_visual_rotation_ref = 0;
|
||||
bool m_move_parent = true;
|
||||
};
|
||||
|
||||
#endif // DYNAMICELEMENTTEXTITEM_H
|
||||
|
||||
@@ -42,6 +42,7 @@ class ElementTextItemGroup;
|
||||
class Element : public QetGraphicsItem
|
||||
{
|
||||
friend class DiagramEventAddElement;
|
||||
friend class DynamicElementTextItem;
|
||||
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
@@ -695,11 +695,15 @@ bool Terminal::valideXml(QDomElement &terminal)
|
||||
|
||||
/**
|
||||
@brief Terminal::fromXml
|
||||
Enables you to find out whether an XML element represents this terminal.
|
||||
Warning, the XML element is not checked
|
||||
Permet de savoir si un element XML represente cette borne. Attention,
|
||||
l'element XML n'est pas verifie
|
||||
@param terminal Le QDomElement a analyser
|
||||
@param terminal Le QDomElement a analyser / QDomElement to check
|
||||
@return true si la borne "se reconnait"
|
||||
(memes coordonnes, meme orientation), false sinon
|
||||
true, if the terminal ‘recognises’ itself (same coordinates,
|
||||
same orientation), false otherwise
|
||||
*/
|
||||
bool Terminal::fromXml(QDomElement &terminal)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user