| 2679 | } |
| 2680 | |
| 2681 | void |
| 2682 | LayoutViewBase::signal_apply_technology (lay::LayoutHandle *layout_handle) |
| 2683 | { |
| 2684 | // find the cellview which issued the event |
| 2685 | for (unsigned int i = 0; i < cellviews (); ++i) { |
| 2686 | |
| 2687 | if (cellview (i).handle () == layout_handle) { |
| 2688 | |
| 2689 | cancel_esc (); |
| 2690 | |
| 2691 | std::string lyp_file; |
| 2692 | const db::Technology *tech = db::Technologies::instance ()->technology_by_name (cellview (i)->tech_name ()); |
| 2693 | if (tech && ! tech->eff_layer_properties_file ().empty ()) { |
| 2694 | lyp_file = tech->eff_layer_properties_file (); |
| 2695 | } |
| 2696 | |
| 2697 | if (! lyp_file.empty () || tech->add_other_layers ()) { |
| 2698 | |
| 2699 | // interpolate the layout properties file name |
| 2700 | tl::Eval expr; |
| 2701 | expr.set_var ("layoutfile", cellview (i)->filename ()); |
| 2702 | lyp_file = expr.interpolate (lyp_file); |
| 2703 | |
| 2704 | // remove all references to the cellview in the layer properties |
| 2705 | for (unsigned int lindex = 0; lindex < layer_lists (); ++lindex) { |
| 2706 | lay::LayerPropertiesList props = *m_layer_properties_lists [lindex]; |
| 2707 | props.remove_cv_references (i); |
| 2708 | set_properties (lindex, props); |
| 2709 | } |
| 2710 | |
| 2711 | // if a layer properties file is set, create the layer properties now |
| 2712 | create_initial_layer_props (i, lyp_file, tech->add_other_layers ()); |
| 2713 | |
| 2714 | } |
| 2715 | |
| 2716 | apply_technology_event (int (i)); |
| 2717 | |
| 2718 | } |
| 2719 | |
| 2720 | } |
| 2721 | } |
| 2722 | |
| 2723 | void |
| 2724 | LayoutViewBase::bookmarks (const BookmarkList &b) |
nothing calls this directly
no test coverage detected