X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2FBModulePage.py;h=02a743741c6b751081b3659460be149c575655a5;hb=2e550c2c1429d917fd7188c3a92bc7eb87536d98;hp=86095d9079aa03ce68e30b55eed5d7dcb1dc37ab;hpb=255e98716335ab8e40da330bad016a8983046dec;p=bertos.git diff --git a/wizard/BModulePage.py b/wizard/BModulePage.py index 86095d90..02a74374 100644 --- a/wizard/BModulePage.py +++ b/wizard/BModulePage.py @@ -15,6 +15,7 @@ from PyQt4.QtGui import * from BWizardPage import * import bertos_utils +from DefineException import * from const import * class BModulePage(BWizardPage): @@ -37,18 +38,28 @@ class BModulePage(BWizardPage): self.connect(self._buttonGroup, SIGNAL("buttonClicked(int)"), self._moduleSelectionChanged) def _loadModuleData(self): - modules = bertos_utils.loadModuleInfosDict(self._projectInfoRetrieve("SOURCES_PATH")) - lists = bertos_utils.loadDefineListsDict(self._projectInfoRetrieve("SOURCES_PATH")) - configurations = {} - for module, informations in modules.items(): - configurations[informations["configuration"]] = bertos_utils.loadConfigurationInfos(self._projectInfoRetrieve("SOURCES_PATH") + - "/" + informations["configuration"]) - self._projectInfoStore("MODULES", modules) - self._projectInfoStore("LISTS", lists) - self._projectInfoStore("CONFIGURATIONS", configurations) + try: + modules = bertos_utils.loadModuleInfosDict(self._projectInfoRetrieve("SOURCES_PATH")) + lists = bertos_utils.loadDefineListsDict(self._projectInfoRetrieve("SOURCES_PATH")) + configurations = {} + for module, informations in modules.items(): + configurations[informations["configuration"]] = bertos_utils.loadConfigurationInfos(self._projectInfoRetrieve("SOURCES_PATH") + + "/" + informations["configuration"]) + except ModuleDefineException, e: + self._exceptionOccurred(self.tr("Error parsing module information in file %1").arg(e.parameter)) + except EnumDefineException, e: + self._exceptionOccurred(self.tr("Error parsing enum informations in file %1").arg(e.parameter)) + except ConfigurationDefineException, e: + self._exceptionOccurred(self.tr("Error parsing configuration informations in file %1").arg(e.parameter)) + else: + self._projectInfoStore("MODULES", modules) + self._projectInfoStore("LISTS", lists) + self._projectInfoStore("CONFIGURATIONS", configurations) def _fillModuleTable(self): modules = self._projectInfoRetrieve("MODULES") + if modules is None: + return self.pageContent.moduleTable.setRowCount(len(modules)) for index, module in enumerate(modules): self.pageContent.moduleTable.setItem(index, 1, QTableWidgetItem(module)) @@ -89,21 +100,35 @@ class BModulePage(BWizardPage): self._controlGroup.addControl(index, comboBox) else: ## int, long or undefined type property - spinBox = QSpinBox() + spinBox = None + if bertos_utils.isLong(configurations[property]) or bertos_utils.isUnsignedLong(configurations[property]): + spinBox = QDoubleSpinBox() + spinBox.setDecimals(0) + else: + spinBox = QSpinBox() self.pageContent.propertyTable.setCellWidget(index, 1, spinBox) + minimum = -32768 + maximum = 32767 + suff = "" + if bertos_utils.isLong(configurations[property]): + minimum = -2147483648 + maximum = 2147483647 + suff = "L" + elif bertos_utils.isUnsigned(configurations[property]): + minimum = 0 + maximum = 65535 + suff = "U" + elif bertos_utils.isUnsignedLong(configurations[property]): + minimum = 0 + maximum = 4294967295 + suff = "UL" if "min" in configurations[property]["informations"].keys(): minimum = int(configurations[property]["informations"]["min"]) - else: - minimum = -32768 - spinBox.setMinimum(minimum) if "max" in configurations[property]["informations"].keys(): maximum = int(configurations[property]["informations"]["max"]) - else: - maximum = 32767 - spinBox.setMaximum(maximum) - if "long" in configurations[property]["informations"].keys() and configurations[property]["informations"]["long"] == "True": - spinBox.setSuffix("L") - spinBox.setValue(int(configurations[property]["value"].replace("L", ""))) + spinBox.setRange(minimum, maximum) + spinBox.setSuffix(suff) + spinBox.setValue(int(configurations[property]["value"].replace("L", "").replace("U", ""))) self._controlGroup.addControl(index, spinBox) def _currentModule(self):