From: duplo Date: Tue, 10 Feb 2009 14:22:02 +0000 (+0000) Subject: Add an abstraction layer between the gui and the module information load functions X-Git-Tag: 2.1.0~342 X-Git-Url: https://codewiz.org/gitweb?a=commitdiff_plain;h=795f261e4228834bb46cc40cf287c66c16018688;p=bertos.git Add an abstraction layer between the gui and the module information load functions git-svn-id: https://src.develer.com/svnoss/bertos/trunk@2340 38d2e660-2303-0410-9eaa-f027e97ec537 --- diff --git a/wizard/BModulePage.py b/wizard/BModulePage.py index a766b6a3..c592d1d3 100644 --- a/wizard/BModulePage.py +++ b/wizard/BModulePage.py @@ -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") diff --git a/wizard/bertos_utils.py b/wizard/bertos_utils.py index e635423f..c338c2db 100644 --- a/wizard/bertos_utils.py +++ b/wizard/bertos_utils.py @@ -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): """