Add an abstraction layer between the gui and the module information load functions
authorduplo <duplo@38d2e660-2303-0410-9eaa-f027e97ec537>
Tue, 10 Feb 2009 14:22:02 +0000 (14:22 +0000)
committerduplo <duplo@38d2e660-2303-0410-9eaa-f027e97ec537>
Tue, 10 Feb 2009 14:22:02 +0000 (14:22 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@2340 38d2e660-2303-0410-9eaa-f027e97ec537

wizard/BModulePage.py
wizard/bertos_utils.py

index a766b6a3dcf361bd126336352d27636e0702b226..c592d1d32a32fe27a538fa9bf6b4d8989a12b24f 100644 (file)
@@ -39,23 +39,15 @@ class BModulePage(BWizardPage):
     
     def _loadModuleData(self):
         try:
-            modules = bertos_utils.loadModuleInfosDict(self._project())
-            lists = bertos_utils.loadDefineListsDict(self._project())
-            configurations = {}
-            for module, informations in modules.items():
-                if len(informations["configuration"]) > 0:
-                    configurations[informations["configuration"]] = bertos_utils.loadConfigurationInfos(self._projectInfoRetrieve("SOURCES_PATH") +
-                                                                                                        "/" + informations["configuration"])
+            bertos_utils.loadModuleInfosDict(self._project())
+            bertos_utils.loadDefineListsDict(self._project())
+            bertos_utils.loadConfigurationInfosDict(self._project())
         except ModuleDefineException, e:
             self._exceptionOccurred(self.tr("Error parsing module information in file %1").arg(e.path))
         except EnumDefineException, e:
             self._exceptionOccurred(self.tr("Error parsing enum informations in file %1").arg(e.path))
         except ConfigurationDefineException, e:
             self._exceptionOccurred(self.tr("Error parsing configuration informations in file %1, reading parameter %2").arg(e.path).arg(e.name))
-        else:
-            self._projectInfoStore("MODULES", modules)
-            self._projectInfoStore("LISTS", lists)
-            self._projectInfoStore("CONFIGURATIONS", configurations)
     
     def _fillModuleTable(self):
         modules = self._projectInfoRetrieve("MODULES")
index e635423f01880c8b7aad2fdda0f8dcedde7b5c25..c338c2db3269922a5dc318cdc69e46938b95beb0 100644 (file)
@@ -233,6 +233,15 @@ def loadConfigurationInfos(path):
     except SyntaxError:
         raise DefineException.ConfigurationDefineException(path, name)
 
+def loadConfigurationInfosDict(project):
+    modules = project.info("MODULES")
+    configurations = {}
+    for module, informations in modules.items():
+        if len(informations["configuration"]) > 0:
+            configurations[informations["configuration"]] = loadConfigurationInfos(project.info("SOURCES_PATH") +
+                                                                                    "/" + informations["configuration"])
+    project.setInfo("CONFIGURATIONS", configurations)
+
 def loadModuleInfos(path):
     """
     Return the module infos found in the given file as a dict with the module
@@ -274,7 +283,7 @@ def loadModuleInfosDict(project):
     moduleInfosDict = {}
     for filename, path in findDefinitions("*.h", project):
         moduleInfosDict.update(loadModuleInfos(path + "/" + filename))
-    return moduleInfosDict
+    project.setInfo("MODULES", moduleInfosDict)
 
 def loadDefineLists(path):
     """
@@ -301,7 +310,10 @@ def loadDefineListsDict(project):
     defineListsDict = {}
     for filename, path in findDefinitions("*.h", project):
         defineListsDict.update(loadDefineLists(path + "/" + filename))
-    return defineListsDict
+    lists = project.info("LISTS")
+    if lists is not None:
+        defineListsDict.update(lists)
+    project.setInfo("LISTS", defineListsDict)
 
 def sub(string, parameter, value):
     """