From 06a1cafdf4b772ab6c2f4a72eb002d5d7647bc34 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 17 Aug 2019 14:49:15 +0200 Subject: [PATCH] Fixed issue #321 This is a small paradigm shift in the configuration hierarchy: plugins (as children of root) now inherit the configuration from the parent - now only through configure, but also through config_get (pull with config_get vs. push with configure). TODO: both methods are not entirely consistent as configure can block propagation of configuration settings. But that's a feature hardly used anyway and rather an optimization thing. --- src/laybasic/laybasic/layNetlistBrowserDialog.cc | 4 +--- src/laybasic/laybasic/layPlugin.cc | 2 ++ src/laybasic/laybasic/rdbMarkerBrowserDialog.cc | 4 +--- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/laybasic/laybasic/layNetlistBrowserDialog.cc b/src/laybasic/laybasic/layNetlistBrowserDialog.cc index 5396cb1ec..714de3647 100644 --- a/src/laybasic/laybasic/layNetlistBrowserDialog.cc +++ b/src/laybasic/laybasic/layNetlistBrowserDialog.cc @@ -674,9 +674,7 @@ void NetlistBrowserDialog::activated () { std::string state; - if (lay::PluginRoot::instance ()) { - lay::PluginRoot::instance ()->config_get (cfg_l2ndb_window_state, state); - } + view ()->config_get (cfg_l2ndb_window_state, state); lay::restore_dialog_state (this, state, false /*don't adjust the section sizes*/); // Switch to the active cellview index when no valid one is set. diff --git a/src/laybasic/laybasic/layPlugin.cc b/src/laybasic/laybasic/layPlugin.cc index ff39f29d0..cdbe15bf8 100644 --- a/src/laybasic/laybasic/layPlugin.cc +++ b/src/laybasic/laybasic/layPlugin.cc @@ -346,6 +346,8 @@ Plugin::config_get (const std::string &name, std::string &value) const if (p != m_repository.end ()) { value = p->second; return true; + } else if (mp_parent) { + return mp_parent->config_get (name, value); } else { value = ""; return false; diff --git a/src/laybasic/laybasic/rdbMarkerBrowserDialog.cc b/src/laybasic/laybasic/rdbMarkerBrowserDialog.cc index 0d007b519..680540389 100644 --- a/src/laybasic/laybasic/rdbMarkerBrowserDialog.cc +++ b/src/laybasic/laybasic/rdbMarkerBrowserDialog.cc @@ -636,9 +636,7 @@ void MarkerBrowserDialog::activated () { std::string state; - if (lay::PluginRoot::instance ()) { - lay::PluginRoot::instance ()->config_get (cfg_rdb_window_state, state); - } + view ()->config_get (cfg_rdb_window_state, state); lay::restore_dialog_state (this, state); // Switch to the active cellview index when no valid one is set.