diff --git a/src/plugins/scxmleditor/plugin_interface/eventitem.cpp b/src/plugins/scxmleditor/plugin_interface/eventitem.cpp index f61517f7cf6..af0827257f3 100644 --- a/src/plugins/scxmleditor/plugin_interface/eventitem.cpp +++ b/src/plugins/scxmleditor/plugin_interface/eventitem.cpp @@ -18,7 +18,7 @@ EventItem::EventItem(const QPointF &pos, BaseItem *parent) { m_eventNameItem = new TextItem(this); m_eventNameItem->setParentItem(this); - QFont serifFont("Times", 13, QFont::Normal); + QFont serifFont("Times", 10, QFont::Normal); m_eventNameItem->setFont(serifFont); QString color = editorInfo("fontColor"); @@ -49,7 +49,7 @@ OnEntryExitItem::OnEntryExitItem(BaseItem *parent) { m_eventNameItem = new TextItem(this); m_eventNameItem->setParentItem(this); - QFont serifFont("Times", 13, QFont::Normal); + QFont serifFont("Times", 10, QFont::Normal); m_eventNameItem->setFont(serifFont); m_eventNameItem->setDefaultTextColor(Qt::black); m_eventNameItem->setTextInteractionFlags(Qt::NoTextInteraction); diff --git a/src/plugins/scxmleditor/plugin_interface/stateitem.cpp b/src/plugins/scxmleditor/plugin_interface/stateitem.cpp index e53bd8c894e..0dc525e6443 100644 --- a/src/plugins/scxmleditor/plugin_interface/stateitem.cpp +++ b/src/plugins/scxmleditor/plugin_interface/stateitem.cpp @@ -232,6 +232,9 @@ void StateItem::transitionsChanged() } m_transitionRect = rectInternalTransitions; + positionOnEntryItems(); + positionOnExitItems(); + updateBoundingRect(); } @@ -437,8 +440,7 @@ void StateItem::updatePolygon() f.setPixelSize(m_titleRect.height() * 0.65); m_stateNameItem->setFont(f); - if (m_onEntryItem) - m_onEntryItem->setPos(m_titleRect.x(), m_titleRect.bottom()); + positionOnEntryItems(); positionOnExitItems(); updateTextPositions(); @@ -552,7 +554,7 @@ void StateItem::addChild(ScxmlTag *child) item->setTag(child); item->finalizeCreation(); item->updateAttributes(); - m_onEntryItem->setPos(m_titleRect.x(), m_titleRect.bottom()); + positionOnEntryItems(); } else if (child->tagName() == "onexit") { OnEntryExitItem *item = new OnEntryExitItem(this); m_onExitItem = item; @@ -566,8 +568,18 @@ void StateItem::addChild(ScxmlTag *child) void StateItem::positionOnExitItems() { int offset = m_onEntryItem ? m_onEntryItem->boundingRect().height() : 0; - if (m_onExitItem) - m_onExitItem->setPos(m_titleRect.x(), m_titleRect.bottom() + offset); + if (m_onExitItem) { + auto x = m_transitionRect.isValid() ? m_transitionRect.right() : m_titleRect.x(); + m_onExitItem->setPos(x, m_titleRect.bottom() + offset); + } +} + +void StateItem::positionOnEntryItems() +{ + if (m_onEntryItem) { + auto x = m_transitionRect.isValid() ? m_transitionRect.right() : m_titleRect.x(); + m_onEntryItem->setPos(x, m_titleRect.bottom()); + } } QString StateItem::itemId() const diff --git a/src/plugins/scxmleditor/plugin_interface/stateitem.h b/src/plugins/scxmleditor/plugin_interface/stateitem.h index beaebe9ebd7..ad3617cc3d5 100644 --- a/src/plugins/scxmleditor/plugin_interface/stateitem.h +++ b/src/plugins/scxmleditor/plugin_interface/stateitem.h @@ -75,6 +75,7 @@ private: void checkParentBoundingRect(); void checkWarningItems(); void positionOnExitItems(); + void positionOnEntryItems(); TextItem *m_stateNameItem; StateWarningItem *m_stateWarningItem = nullptr;