X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=wizard%2FBModulePage.py;h=6e40c7f128d69831c1242fed721374b43ab708c3;hb=2654dc2eff8a397ed1dd21d0f073bae553acbb61;hp=3d7fa2fc39634602d47b9ff423d537ec6feac20b;hpb=2be5d4598fdfee024f3929a110f5f93c751c355c;p=bertos.git diff --git a/wizard/BModulePage.py b/wizard/BModulePage.py index 3d7fa2fc..6e40c7f1 100644 --- a/wizard/BModulePage.py +++ b/wizard/BModulePage.py @@ -80,19 +80,21 @@ class BModulePage(BWizardPage): self.connect(self.pageContent.moduleTree, SIGNAL("itemPressed(QTreeWidgetItem*, int)"), self.fillPropertyTable) self.connect(self.pageContent.moduleTree, SIGNAL("itemPressed(QTreeWidgetItem*, int)"), self.moduleClicked) self.connect(self.pageContent.moduleTree, SIGNAL("itemChanged(QTreeWidgetItem*, int)"), self.dependencyCheck) - self.connect(self.pageContent.propertyTable, SIGNAL("itemSelectionChanged()"), self.showPropertyDescription) - def reloadData(self): + def reloadData(self, previous_id=None): """ Overload of the BWizardPage reloadData method. """ - try: - QApplication.instance().setOverrideCursor(Qt.WaitCursor) - self.setupUi() - self.loadModuleData() - self.fillModuleTree() - finally: - QApplication.instance().restoreOverrideCursor() + # Check if the user are approaching this page from the previous or the + # next one. + if previous_id is None or previous_id < self.wizard().currentId(): + try: + QApplication.instance().setOverrideCursor(Qt.WaitCursor) + self.setupUi() + self.loadModuleData() + self.fillModuleTree() + finally: + QApplication.instance().restoreOverrideCursor() #### @@ -110,7 +112,7 @@ class BModulePage(BWizardPage): module = self.currentModule() if module: try: - supported = bertos_utils.isSupported(self.project(), module=module) + supported = bertos_utils.isSupported(self.project, module=module) except SupportedException, e: self.exceptionOccurred(self.tr("Error evaluating \"%1\" for module %2").arg(e.support_string).arg(module)) supported = True @@ -137,7 +139,7 @@ class BModulePage(BWizardPage): # Doesn't show the hidden fields continue try: - param_supported = bertos_utils.isSupported(self.project(), property_id=(configuration, property)) + param_supported = bertos_utils.isSupported(self.project, property_id=(configuration, property)) except SupportedException, e: self.exceptionOccurred(self.tr("Error evaluating \"%1\" for parameter %2").arg(e.support_string).arg(property)) param_supported = True @@ -147,6 +149,8 @@ class BModulePage(BWizardPage): # Set the row count to the current index + 1 self.pageContent.propertyTable.setRowCount(index + 1) item = QTableWidgetItem(configurations[property]["brief"]) + item.setFlags(item.flags() & ~Qt.ItemIsSelectable) + item.setToolTip(property) item.setData(Qt.UserRole, qvariant_converter.convertString(property)) self.pageContent.propertyTable.setItem(index, 0, item) if "type" in configurations[property]["informations"] and configurations[property]["informations"]["type"] == "boolean": @@ -219,12 +223,13 @@ class BModulePage(BWizardPage): """ Loads the module data. """ - # Load the module data only if it isn't already loaded - if not self.projectInfo("MODULES") \ - and not self.projectInfo("LISTS") \ - and not self.projectInfo("CONFIGURATIONS"): + # Do not load the module data again when the Wizard is in editing mode + # or when it's working on a preset. + if not self.project.edit and not self.project.from_preset: + # Load the module data every time so that if the user changed the cpu + # the right configurations are picked up. try: - bertos_utils.loadModuleData(self.project()) + self.project.loadModuleData() except ModuleDefineException, e: self.exceptionOccurred(self.tr("Error parsing line '%2' in file %1").arg(e.path).arg(e.line)) except EnumDefineException, e: @@ -251,7 +256,7 @@ class BModulePage(BWizardPage): enabled = modules[module]["enabled"] module_item = QTreeWidgetItem(item, QStringList([module])) try: - supported = bertos_utils.isSupported(self.project(), module=module) + supported = bertos_utils.isSupported(self.project, module=module) except SupportedException, e: self.exceptionOccurred(self.tr("Error evaluating \"%1\" for module %2").arg(e.support_string).arg(module)) supported = True @@ -376,7 +381,12 @@ class BModulePage(BWizardPage): """ Returns the configuration for the selected module. """ - configuration = self.projectInfo("MODULES")[module]["configuration"] + configuration = [] + if module: + # On linux platform it seems that the behaviour of the focus + # changing is a bit different from the mac one. So if module is + # None then no configurations should be returned. + configuration = self.projectInfo("MODULES")[module]["configuration"] if len(configuration) > 0: return self.projectInfo("CONFIGURATIONS")[configuration] else: