From 8edb7b28a00e23f9fb010e575948c1d7d1a99c50 Mon Sep 17 00:00:00 2001 From: Sebastian Sumpf Date: Mon, 14 Feb 2022 17:48:38 +0100 Subject: [PATCH] sculpt_manager: initial mode for 'Managed_config' Do not set '_mode' per default to MANANGED. Check if a manual config ROM is present during construction and set '_mode' to MANUAL in case it is. issue #4369 --- .../src/app/sculpt_manager/managed_config.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/repos/gems/src/app/sculpt_manager/managed_config.h b/repos/gems/src/app/sculpt_manager/managed_config.h index 913a874b41..8188c262a5 100644 --- a/repos/gems/src/app/sculpt_manager/managed_config.h +++ b/repos/gems/src/app/sculpt_manager/managed_config.h @@ -51,15 +51,21 @@ struct Sculpt::Managed_config Signal_handler _manual_config_handler { _env.ep(), *this, &Managed_config::_handle_manual_config }; - void _handle_manual_config() + /** + * Update manual config, decide between manual or managed mode of operation + */ + void _update_manual_config_rom() { _manual_config_rom.update(); - Xml_node const config = _manual_config_rom.xml(); + _mode = _manual_config_rom.xml().has_type("empty") ? MANAGED : MANUAL; + } - _mode = config.has_type("empty") ? MANAGED : MANUAL; + void _handle_manual_config() + { + _update_manual_config_rom(); - (_obj.*_handle)(config); + (_obj.*_handle)(_manual_config_rom.xml()); } /** @@ -93,6 +99,9 @@ struct Sculpt::Managed_config _config(_env, xml_node_name.string(), Label(rom_name, "_config").string()) { _manual_config_rom.sigh(_manual_config_handler); + + /* determine initial '_mode' */ + _update_manual_config_rom(); } };