refactor[deiagram editor]: mutualize code.

The features used to jump to linked element and xref now use the same
function.
This commit is contained in:
joshua
2025-10-20 22:58:12 +02:00
parent f74fed9f3f
commit e26f7fdaaa
3 changed files with 6 additions and 45 deletions

View File

@@ -57,21 +57,9 @@ TerminalStripEditor::TerminalStripEditor(QETProject *project, QWidget *parent) :
{ {
if (m_model->columnTypeForIndex(index) == TerminalStripModel::XRef) if (m_model->columnTypeForIndex(index) == TerminalStripModel::XRef)
{ {
auto mrtd = m_model->modelRealTerminalDataForIndex(index); const auto mrtd = m_model->modelRealTerminalDataForIndex(index);
if (mrtd.element_) if (mrtd.element_) {
{ QetGraphicsItem::showItem(mrtd.element_);
auto elmt = mrtd.element_;
auto diagram = elmt->diagram();
if (diagram)
{
diagram->showMe();
if (diagram->views().size())
{
auto fit_view = elmt->sceneBoundingRect();
fit_view.adjust(-200,-200,200,200);
diagram->views().at(0)->fitInView(fit_view, Qt::KeepAspectRatioByExpanding);
}
}
} }
} }
}); });

View File

@@ -320,24 +320,7 @@ void CrossRefItem::paint(
void CrossRefItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) void CrossRefItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
{ {
event->accept(); event->accept();
if (m_hovered_contact && m_hovered_contact->scene()) QetGraphicsItem::showItem(m_hovered_contact);
{
//Show and select the linked slave element
if (scene() != m_hovered_contact->scene())
{
m_hovered_contact->diagram()->showMe();
}
m_hovered_contact->setSelected(true);
//Zoom to the linked slave element
foreach(QGraphicsView *view,
m_hovered_contact->diagram()->views())
{
QRectF fit = m_hovered_contact->sceneBoundingRect();
fit.adjust(-200, -200, 200, 200);
view->fitInView(fit, Qt::KeepAspectRatioByExpanding);
}
}
} }
/** /**

View File

@@ -1278,17 +1278,7 @@ void DynamicElementTextItem::zoomToLinkedElement()
setSelected(false); setSelected(false);
ungrabMouse(); ungrabMouse();
if(scene() != zoomed_element->scene()) QetGraphicsItem::showItem(zoomed_element);
zoomed_element->diagram()->showMe();
zoomed_element->setSelected(true);
//Zoom to the element
for(QGraphicsView *view : zoomed_element->scene()->views())
{
QRectF fit = zoomed_element->sceneBoundingRect();
fit.adjust(-200, -200, 200, 200);
view->fitInView(fit, Qt::KeepAspectRatioByExpanding);
}
} }
} }