summaryrefslogtreecommitdiffstats
path: root/comps.py
diff options
context:
space:
mode:
Diffstat (limited to 'comps.py')
-rw-r--r--comps.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/comps.py b/comps.py
index 85af57884..3d1a8e97e 100644
--- a/comps.py
+++ b/comps.py
@@ -45,6 +45,9 @@ class HeaderList:
def __getitem__(self, item):
return self.packages[item]
+ def list(self):
+ return self.packages.values()
+
def __init__(self, hdlist):
self.hdlist = hdlist
self.packages = {}
@@ -77,6 +80,9 @@ class Component:
def __getitem__(self, key):
return self.items[key]
+ def __repr__(self):
+ return "comp %s" % (self.name)
+
def addPackage(self, package):
self.items[package] = package
@@ -171,6 +177,48 @@ class ComponentSet:
return self.comps[key]
return self.compsDict[key]
+ def getSelectionState(self):
+ compsSelected = []
+ pkgsSelected = []
+ for comp in self.comps:
+ if comp.selected:
+ compsSelected.append(comp)
+
+ for pkg in self.packages.list():
+ if pkg.selected:
+ pkgsSelected.append(pkg)
+
+ return (compsSelected, pkgsSelected)
+
+ def setSelectionState(self, pickle):
+ (compsSelected, pkgsSelected) = pickle
+
+ for comp in self.comps:
+ if not comp.hidden: comp.unselect(0)
+ for comp in compsSelected:
+ comp.select(1)
+ self['Base'].select(1)
+
+ for pkg in self.packages.list():
+ pkg.selected = 0
+ for pkg in pkgsSelected:
+ pkg.selected = 1
+
+ def sizeStr(self):
+ megs = self.size() / 1024 / 1024
+ if (megs >= 1000):
+ big = megs / 1000
+ little = megs % 1000
+ return "%d,%dM" % (big, little)
+
+ return "%dM" % (megs)
+
+ def size(self):
+ total = 0
+ for pkg in self.packages.list():
+ if pkg.selected: total = total + pkg['size']
+ return total
+
def keys(self):
return self.compsDict.keys()