Refining solution

This commit is contained in:
Matthias Koefferlein 2025-09-28 20:17:52 +02:00
parent 31ddbe24fa
commit 17f4397f1b
3 changed files with 35 additions and 28 deletions

View File

@ -711,17 +711,16 @@ HierarchyControlPanel::select_active (int cellview_index, bool silent)
{ {
if (cellview_index != m_active_index) { if (cellview_index != m_active_index) {
mp_selector->setCurrentIndex (cellview_index); mp_selector->setCurrentIndex (cellview_index);
change_active_cellview (cellview_index);
if (! silent) { if (! silent) {
selection_changed (cellview_index); emit active_cellview_changed (cellview_index);
} }
} }
} }
void void
HierarchyControlPanel::selection_changed (int index) HierarchyControlPanel::change_active_cellview (int index)
{ {
if (index != m_active_index) {
search_editing_finished (); search_editing_finished ();
m_active_index = index; m_active_index = index;
@ -744,9 +743,14 @@ HierarchyControlPanel::selection_changed (int index)
for (std::vector <QToolButton *>::const_iterator f = mp_cell_list_headers.begin (); f != mp_cell_list_headers.end (); ++f, ++i) { for (std::vector <QToolButton *>::const_iterator f = mp_cell_list_headers.begin (); f != mp_cell_list_headers.end (); ++f, ++i) {
(*f)->setChecked (i == index); (*f)->setChecked (i == index);
} }
}
void
HierarchyControlPanel::selection_changed (int index)
{
if (index != m_active_index) {
change_active_cellview (index);
emit active_cellview_changed (index); emit active_cellview_changed (index);
} }
} }

View File

@ -346,6 +346,9 @@ private:
// ask for cell copy mode // ask for cell copy mode
bool ask_for_cell_copy_mode (const db::Layout &layout, const std::vector<cell_path_type> &paths, int &cell_copy_mode); bool ask_for_cell_copy_mode (const db::Layout &layout, const std::vector<cell_path_type> &paths, int &cell_copy_mode);
// changes the active cellview
void change_active_cellview (int index);
}; };
} // namespace lay } // namespace lay

View File

@ -418,7 +418,7 @@ LayoutView::LayoutView (lay::LayoutView *source, db::Manager *manager, bool edit
copy_from (source); copy_from (source);
bookmarks (source->bookmarks ()); bookmarks (source->bookmarks ());
set_active_cellview_index_silent (source->active_cellview_index ()); LayoutView::set_active_cellview_index (source->active_cellview_index ());
} }
LayoutView::LayoutView (db::Manager *manager, bool editable, lay::Plugin *plugin_parent, LayoutViewWidget *widget, unsigned int options) LayoutView::LayoutView (db::Manager *manager, bool editable, lay::Plugin *plugin_parent, LayoutViewWidget *widget, unsigned int options)
@ -445,7 +445,7 @@ LayoutView::LayoutView (lay::LayoutView *source, db::Manager *manager, bool edit
copy_from (source); copy_from (source);
bookmarks (source->bookmarks ()); bookmarks (source->bookmarks ());
set_active_cellview_index_silent (source->active_cellview_index ()); LayoutView::set_active_cellview_index (source->active_cellview_index ());
} }
bool bool