X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2FBModulePage.py;h=06de96380e37e41d477d6728db447a64bf80af36;hb=1f92b928d3390119fc6f94bd52358f812e1a8c5f;hp=7241c80e0a2a28ba93dbe5a0c977898b40c96978;hpb=f927de07cfdce30eaab26ee4ba7b1fac3c1ee7c5;p=bertos.git diff --git a/wizard/BModulePage.py b/wizard/BModulePage.py index 7241c80e..06de9638 100644 --- a/wizard/BModulePage.py +++ b/wizard/BModulePage.py @@ -61,6 +61,7 @@ class BModulePage(BWizardPage): moduleItem = QTreeWidgetItem(item, QStringList([module])) moduleItem.setCheckState(0, Qt.Unchecked) self.pageContent.moduleTree.addTopLevelItem(item) + self.pageContent.moduleTree.sortItems(0, Qt.AscendingOrder) def _fillPropertyTable(self): @@ -238,6 +239,7 @@ class BModulePage(BWizardPage): self._moduleSelected(module) else: self._moduleUnselected(module) + self.removeFileDependencies(module) def _moduleSelected(self, selectedModule): modules = self._projectInfoRetrieve("MODULES") @@ -281,11 +283,18 @@ class BModulePage(BWizardPage): def selectDependencyCheck(self, module): unsatisfied = set() modules = self._projectInfoRetrieve("MODULES") + files = self._projectInfoRetrieve("FILES") for dependency in modules[module]["depends"]: - if not modules[dependency]["enabled"]: + if dependency in modules and not modules[dependency]["enabled"]: unsatisfied |= set([dependency]) if dependency not in unsatisfied: unsatisfied |= self.selectDependencyCheck(dependency) + if dependency not in modules: + if dependency in files: + files[dependency] += 1 + else: + files[dependency] = 1 + self._projectInfoStore("FILES", files) return unsatisfied def unselectDependencyCheck(self, dependency): @@ -297,6 +306,17 @@ class BModulePage(BWizardPage): if dependency not in unsatisfied: unsatisfied |= self.unselectDependencyCheck(module) return unsatisfied + + def removeFileDependencies(self, module): + modules = self._projectInfoRetrieve("MODULES") + files = self._projectInfoRetrieve("FILES") + dependencies = modules[module]["depends"] + for dependency in dependencies: + if dependency in files: + files[dependency] -= 1 + if files[dependency] == 0: + del files[dependency] + self._projectInfoStore("FILES", files) class QControlGroup(QObject): def __init__(self):