MCPcopy Create free account
hub / github.com/KLayout/klayout / erase_cellview

Method erase_cellview

src/laybasic/laybasic/layLayoutViewBase.cc:2518–2581  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2516}
2517
2518void
2519LayoutViewBase::erase_cellview (unsigned int index)
2520{
2521 if (index >= m_cellviews.size ()) {
2522 return;
2523 }
2524
2525 cancel_esc ();
2526
2527 // issue to event that signals a change in the cellviews
2528 cellviews_about_to_change_event ();
2529
2530 // no undo available - clear all transactions
2531 if (manager ()) {
2532 manager ()->clear ();
2533 }
2534
2535 begin_layer_updates ();
2536
2537 m_cellviews.erase (cellview_iter (int (index)));
2538
2539 if (m_hidden_cells.size () > index) {
2540 m_hidden_cells.erase (m_hidden_cells.begin () + index);
2541 }
2542
2543 if (m_current_cell_per_cellview.size () > index) {
2544 m_current_cell_per_cellview.erase (m_current_cell_per_cellview.begin () + index);
2545 }
2546
2547 for (unsigned int lindex = 0; lindex < layer_lists (); ++lindex) {
2548
2549 // remove all references to the cellview
2550 m_layer_properties_lists [lindex]->remove_cv_references (index);
2551
2552 // rename the ones that got shifted.
2553 lay::LayerPropertiesConstIterator l = begin_layers (lindex);
2554 while (! l.at_end ()) {
2555 lay::ParsedLayerSource source (l->source (false));
2556 if (source.cv_index () >= int (index)) {
2557 lay::LayerProperties new_props (*l);
2558 source.cv_index (source.cv_index () == int (index) ? -1 : source.cv_index () - 1);
2559 new_props.set_source (source);
2560 LayerPropertiesIterator non_const_iter (*m_layer_properties_lists [lindex], l.uint ());
2561 *non_const_iter = new_props;
2562 }
2563 ++l;
2564 }
2565
2566 }
2567
2568 // clear the history
2569 m_display_states.clear ();
2570 m_display_state_ptr = 0;
2571
2572 end_layer_updates ();
2573
2574 // signal to the observers that something has changed
2575 layer_list_changed_event (3);

Callers 4

test_20Method · 0.80
close_cellviewFunction · 0.80

Calls 13

cancel_escFunction · 0.85
layer_listsFunction · 0.85
remove_cv_referencesMethod · 0.80
managerFunction · 0.70
begin_layersFunction · 0.70
sizeMethod · 0.45
clearMethod · 0.45
eraseMethod · 0.45
beginMethod · 0.45
at_endMethod · 0.45
sourceMethod · 0.45
cv_indexMethod · 0.45

Tested by 1

test_20Method · 0.64