From 879df5a85b2ddec6cb5886a5582fa872808b5547 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Tue, 9 Sep 2025 19:38:18 +0200 Subject: [PATCH] [consider merging] LayoutView#clear_layer_list preserves layer list name now --- src/laybasic/laybasic/layLayoutViewBase.cc | 16 +++++++++ src/laybasic/laybasic/layLayoutViewBase.h | 10 ++---- testdata/ruby/layLayers.rb | 39 ++++++++++++++++++++++ 3 files changed, 57 insertions(+), 8 deletions(-) diff --git a/src/laybasic/laybasic/layLayoutViewBase.cc b/src/laybasic/laybasic/layLayoutViewBase.cc index 2a39c5f7a..50a160e5d 100644 --- a/src/laybasic/laybasic/layLayoutViewBase.cc +++ b/src/laybasic/laybasic/layLayoutViewBase.cc @@ -1961,6 +1961,22 @@ LayoutViewBase::set_properties (unsigned int index, const LayerPropertiesList &p } } +void +LayoutViewBase::clear_layers (unsigned int index) +{ + LayerPropertiesList ll; + ll.set_name (get_properties (index).name ()); + set_properties (index, ll); +} + +void +LayoutViewBase::clear_layers () +{ + LayerPropertiesList ll; + ll.set_name (get_properties ().name ()); + set_properties (ll); +} + void LayoutViewBase::expand_properties () { diff --git a/src/laybasic/laybasic/layLayoutViewBase.h b/src/laybasic/laybasic/layLayoutViewBase.h index 2bfb8f5b6..eeda5619a 100644 --- a/src/laybasic/laybasic/layLayoutViewBase.h +++ b/src/laybasic/laybasic/layLayoutViewBase.h @@ -515,18 +515,12 @@ public: /** * @brief Clear the given layer view list */ - void clear_layers (unsigned int index) - { - set_properties (index, LayerPropertiesList ()); - } + void clear_layers (unsigned int index); /** * @brief Clear the current layer view list */ - void clear_layers () - { - set_properties (LayerPropertiesList ()); - } + void clear_layers (); /** * @brief Access the current layer properties list diff --git a/testdata/ruby/layLayers.rb b/testdata/ruby/layLayers.rb index 168ab141c..76b0f7a6b 100644 --- a/testdata/ruby/layLayers.rb +++ b/testdata/ruby/layLayers.rb @@ -1038,6 +1038,45 @@ class LAYLayers_TestClass < TestBase end + # clear_layers with index and layer list with name + def test_8 + + if !RBA.constants.member?(:Application) + return + end + + app = RBA::Application.instance + mw = app.main_window + mw.close_all + + mw.load_layout( ENV["TESTSRC"] + "/testdata/gds/t11.gds", 1 ) + + cv = mw.current_view + + cv.clear_layers + assert_equal(lnodes_str("", cv.begin_layers(0)), "") + + cv.rename_layer_list(0, "x") + assert_equal(cv.layer_list_name(0), "x") + + cv.insert_layer(0, cv.end_layers(0), RBA::LayerProperties::new) + assert_equal(lnodes_str("", cv.begin_layers(0)), "*/*@*\n") + + cv.clear_layers(0) + assert_equal(lnodes_str("", cv.begin_layers(0)), "") + assert_equal(cv.layer_list_name(0), "x") + + cv.rename_layer_list(cv.current_layer_list, "y") + assert_equal(cv.layer_list_name(0), "y") + cv.insert_layer(cv.end_layers, RBA::LayerProperties::new) + assert_equal(lnodes_str("", cv.begin_layers), "*/*@*\n") + + cv.clear_layers + assert_equal(lnodes_str("", cv.begin_layers), "") + assert_equal(cv.layer_list_name(cv.current_layer_list), "y") + + end + end load("test_epilogue.rb")