| 3742 | } |
| 3743 | |
| 3744 | void |
| 3745 | LayoutViewBase::merge_layer_props (const std::vector<lay::LayerPropertiesList> &props) |
| 3746 | { |
| 3747 | lay::LayerPropertiesList p0; |
| 3748 | if (layer_lists () > 0) { |
| 3749 | p0 = get_properties (0); |
| 3750 | } |
| 3751 | |
| 3752 | // merge the new layer views into the present ones |
| 3753 | // If the specific list is a single list (no tabs), it is merged into every tab present. |
| 3754 | if (props.size () == 1) { |
| 3755 | |
| 3756 | for (size_t n = 0; n < layer_lists () || n == 0; ++n) { |
| 3757 | |
| 3758 | std::vector<lay::LayerPropertiesList>::const_iterator p = props.begin (); |
| 3759 | |
| 3760 | if (n < layer_lists ()) { |
| 3761 | lay::LayerPropertiesList new_props (get_properties ((unsigned int) n)); |
| 3762 | new_props.append (*p); |
| 3763 | if (! p->name ().empty ()) { |
| 3764 | new_props.set_name (p->name ()); |
| 3765 | } |
| 3766 | set_properties ((unsigned int) n, new_props); |
| 3767 | } else { |
| 3768 | |
| 3769 | lay::LayerPropertiesList new_props = p0; |
| 3770 | new_props.append (*p); |
| 3771 | if (! p->name ().empty ()) { |
| 3772 | new_props.set_name (p->name ()); |
| 3773 | } |
| 3774 | insert_layer_list ((unsigned int) n, new_props); |
| 3775 | } |
| 3776 | |
| 3777 | } |
| 3778 | |
| 3779 | } else { |
| 3780 | |
| 3781 | size_t n = 0; |
| 3782 | for (std::vector<lay::LayerPropertiesList>::const_iterator p = props.begin (); p != props.end (); ++p, ++n) { |
| 3783 | |
| 3784 | if (n < layer_lists ()) { |
| 3785 | lay::LayerPropertiesList new_props (get_properties ((unsigned int) n)); |
| 3786 | new_props.append (*p); |
| 3787 | if (! p->name ().empty ()) { |
| 3788 | new_props.set_name (p->name ()); |
| 3789 | } |
| 3790 | set_properties ((unsigned int) n, new_props); |
| 3791 | } else { |
| 3792 | lay::LayerPropertiesList new_props = p0; |
| 3793 | new_props.append (*p); |
| 3794 | if (! p->name ().empty ()) { |
| 3795 | new_props.set_name (p->name ()); |
| 3796 | } |
| 3797 | insert_layer_list ((unsigned int) n, new_props); |
| 3798 | } |
| 3799 | |
| 3800 | } |
| 3801 |
no test coverage detected