summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoshua Lock <josh@linux.intel.com>2011-08-12 15:03:51 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-08-15 09:33:09 +0100
commit049927e99c8d1db7273fbd179b2614bd2ea9403b (patch)
tree35643e94fb00a2f567c63923795c2f52b4a4b25d
parent0c62bbc5fb149c8baccffebd5f17e25d3e7dbf69 (diff)
downloadbitbake-049927e99c8d1db7273fbd179b2614bd2ea9403b.tar.gz
bb/ui/crumbs/tasklistmodel: include package level information
Until now the hob UI has only contained recipe (pn) level targets in the data store, this patch switches to including package level information. This is slightly slower in all model related cases (more entries) but gives much more flexibility for image customisation. Signed-off-by: Joshua Lock <josh@linux.intel.com>
-rw-r--r--lib/bb/ui/crumbs/tasklistmodel.py40
1 files changed, 19 insertions, 21 deletions
diff --git a/lib/bb/ui/crumbs/tasklistmodel.py b/lib/bb/ui/crumbs/tasklistmodel.py
index c0b0495d8..1f00f6cfb 100644
--- a/lib/bb/ui/crumbs/tasklistmodel.py
+++ b/lib/bb/ui/crumbs/tasklistmodel.py
@@ -226,32 +226,30 @@ class TaskListModel(gtk.ListStore):
lic = event_model["pn"][item]["license"]
group = event_model["pn"][item]["section"]
filename = event_model["pn"][item]["filename"]
- depends = event_model["depends"].get(item, "")
- rdepends = event_model["rdepends-pn"].get(item, "")
- if rdepends:
- for rdep in rdepends:
- if event_model["packages"].get(rdep, ""):
- pn = event_model["packages"][rdep].get("pn", "")
- if pn:
- depends.append(pn)
-
- # uniquify the list of depends
- depends = self.squish(depends)
- # remove circular dependencies
- if name in depends:
- depends.remove(name)
- deps = " ".join(depends)
-
if name.count('task-') > 0:
atype = 'task'
elif name.count('-image-') > 0:
atype = 'image'
- self.set(self.append(), self.COL_NAME, name, self.COL_DESC, summary,
- self.COL_LIC, lic, self.COL_GROUP, group,
- self.COL_DEPS, deps, self.COL_BINB, "",
- self.COL_TYPE, atype, self.COL_INC, False,
- self.COL_IMG, False, self.COL_PATH, filename)
+ depends = event_model["depends"].get(item, [])
+ rdepends = event_model["rdepends-pn"].get(item, [])
+ if ("%s-dev" % item) in rdepends:
+ rdepends.remove("%s-dev" % item)
+ packages = {}
+ for pkg in event_model["packages"]:
+ if event_model["packages"][pkg]["pn"] == name:
+ deps = []
+ deps.extend(depends)
+ deps.extend(event_model["rdepends-pkg"].get(pkg, []))
+ deps.extend(rdepends)
+ packages[pkg] = deps
+
+ for p in packages:
+ self.set(self.append(), self.COL_NAME, p, self.COL_DESC, summary,
+ self.COL_LIC, lic, self.COL_GROUP, group,
+ self.COL_DEPS, " ".join(packages[p]), self.COL_BINB, "",
+ self.COL_TYPE, atype, self.COL_INC, False,
+ self.COL_IMG, False, self.COL_PATH, filename)
self.emit("tasklist-populated")