fix lconfig does not properly deal disabled nodes
[lunaix-os.git] / lunaix-os / scripts / build-tools / lcfg / lcnodes.py
index 87aa20d6629ea4226e4bb5238fbea50ee5f99f2d..e0b98cedffbe763358d08196f057051248edf4d2 100644 (file)
@@ -272,11 +272,14 @@ class LCTermNode(LCFuncNode):
             rctx.add_field(self._display_name, self)
 
     def serialise(self, dict):
+        if not self.enabled():
+            return
+        
         s_val = self._type.serialise(self._value)
         dict[self._name] = s_val
 
     def deserialise(self, dict):
-        if self._name not in dict:
+        if self._name not in dict or not self.enabled():
             return
         
         s_val = dict[self._name]
@@ -353,10 +356,13 @@ class LCGroupNode(LCFuncNode):
                 child.evaluate()
         
     def render(self, rctx):
+        if not self.enabled():
+            return
+        
         for child in self._children.values():
             child.render(rctx)
 
-    def serialise(self, dict):
+    def serialise(self, dict): 
         sub_dict = {}
         for child in self._children.values():
             child.serialise(sub_dict)
@@ -388,10 +394,11 @@ class LCCollectionNode(LCGroupNode):
         return "Collection"
     
     def render(self, rctx):
-        _super = super()
-        rctx.add_expandable(
-            self._display_name,
-            self, 
-            lambda _ctx: 
-                _super.render(_ctx)
-        )
\ No newline at end of file
+        if not self.enabled():
+            return
+        
+        label = self._display_name
+        rctx.add_expandable(label, self, self.__expand)
+
+    def __expand(self, _ctx):
+        super().render(_ctx)
\ No newline at end of file