diff options
author | Matt Wilson <msw@redhat.com> | 1999-09-20 15:34:52 +0000 |
---|---|---|
committer | Matt Wilson <msw@redhat.com> | 1999-09-20 15:34:52 +0000 |
commit | 16418b06ece578a61845a451c1c2be0ead138151 (patch) | |
tree | ac92bd55a5f0e37add30ec4b897a10cfbba38589 /comps.py | |
parent | 611b6cd260204f683badfa48fb2cf8dbf893d903 (diff) | |
download | anaconda-16418b06ece578a61845a451c1c2be0ead138151.tar.gz anaconda-16418b06ece578a61845a451c1c2be0ead138151.tar.xz anaconda-16418b06ece578a61845a451c1c2be0ead138151.zip |
o dependent package selection - if games has conditional packages keyed on
kde, when kde is selected check to see if games is selected and if so
select all the conditional packages in games.
o pass LC_ALL from loader to anaconda
o updated language table
o fallback to two char LANG for translations
o magically build kickstart lang dictionary
o start of DHCP network insensitivity in GUI
Diffstat (limited to 'comps.py')
-rw-r--r-- | comps.py | 48 |
1 files changed, 35 insertions, 13 deletions
@@ -6,7 +6,6 @@ import iutil import urllib class Package: - def __getitem__(self, item): return self.h[item] @@ -19,7 +18,6 @@ class Package: self.selected = 0 class HeaderList: - def selected(self): l = [] keys = self.packages.keys() @@ -84,16 +82,32 @@ class Component: def addRequires(self, component): self.requires = component + def conditionalSelect (self, key): + for pkg in self.conditional[key]: + pkg.selected = 1 + + def conditionalUnselect (self, key): + for pkg in self.conditional[key]: + pkg.selected = 0 + def select(self, recurse = 1): self.selected = 1 for pkg in self.items.keys (): self.items[pkg].selected = 1 - conds = self.conditional.keys () - if conds: - for condition in conds: - if condition.selected: - for pkg in self.conditional[condition]: - pkg.selected = 1 + # turn on any conditional packages + for (condition, pkgs) in self.conditional.items (): + if condition.selected: + for pkg in pkgs: + pkg.selected = 1 + + # components that have conditional packages keyed on this + # component AND are currently selected have those conditional + # packages turned turned on when this component is turned on. + if self.dependents: + for dep in self.dependents: + if dep.selected: + dep.conditionalSelect (self) + if recurse: for n in self.includes: if n.requires: @@ -111,13 +125,19 @@ class Component: self.selected = 0 for n in self.items.keys (): self.items[n].selected = 0 + # always turn off conditional packages, regardless # if the condition is met or not. - conds = self.conditional.keys () - if conds: - for condition in conds: - for pkg in self.conditional[condition]: - pkg.selected = 0 + for (condition, pkgs) in self.conditional.items (): + for pkg in pkgs: + pkg.selected = 0 + + # now we must turn off conditional packages in components that + # are keyed on this package + if self.dependents: + for dep in self.dependents: + dep.conditionalUnselect (self) + if recurse: for n in self.includes: n.unselect(recurse) @@ -128,6 +148,7 @@ class Component: self.selected = selected self.items = {} self.conditional = {} + self.dependents = [] self.requires = None self.includes = [] @@ -199,6 +220,7 @@ class ComponentSet: comp = Component(l, default == '1', hidden) elif (l == "}"): if conditional: + conditional.dependents.append (comp) conditional = None else: self.comps.append(comp) |