Merge pull request #443 from Kellermorph/master
Some checks failed
Auto-build doxygen docs / doxygen (push) Failing after 1m50s
Auto-build doxygen docs / deploy (push) Has been skipped

Feature: Auto-select active diagram in the elements panel tree
This commit is contained in:
Laurent Trinques
2026-03-29 22:04:08 +02:00
committed by GitHub
2 changed files with 13 additions and 1 deletions

View File

@@ -95,8 +95,8 @@ class GenericPanel : public QTreeWidget {
virtual QTreeWidgetItem *addDiagram(Diagram *, virtual QTreeWidgetItem *addDiagram(Diagram *,
QTreeWidgetItem * = nullptr, QTreeWidgetItem * = nullptr,
PanelOptions = AddAllChild); PanelOptions = AddAllChild);
protected:
virtual QTreeWidgetItem *getItemForDiagram(Diagram *, bool * = nullptr); virtual QTreeWidgetItem *getItemForDiagram(Diagram *, bool * = nullptr);
protected:
virtual QTreeWidgetItem *updateDiagramItem(QTreeWidgetItem *, virtual QTreeWidgetItem *updateDiagramItem(QTreeWidgetItem *,
Diagram *, Diagram *,
PanelOptions = AddAllChild, PanelOptions = AddAllChild,

View File

@@ -1168,6 +1168,18 @@ bool QETDiagramEditor::addProject(QETProject *project, bool update_panel)
// cree un ProjectView pour visualiser le projet // cree un ProjectView pour visualiser le projet
ProjectView *project_view = new ProjectView(project); ProjectView *project_view = new ProjectView(project);
//Highlight the current page
connect(project_view, &ProjectView::diagramActivated, this, [this](DiagramView *dv) {
if (dv && dv->diagram() && pa) {
// 1. Find the item in the tree that corresponds to this diagram
QTreeWidgetItem *item = pa->elementsPanel().getItemForDiagram(dv->diagram());
// 2. If you find it, select it
if (item) {
pa->elementsPanel().setCurrentItem(item);
}
}
});
addProjectView(project_view); addProjectView(project_view);
undo_group.addStack(project -> undoStack()); undo_group.addStack(project -> undoStack());