Commit Graph

27 Commits

Author SHA1 Message Date
Joshua Lock b6009b2952 bb/ui/crumbs/tasklistmodel: store all binb, not just the first
This makes it easier for the user to determine what the effects of a
removal may be, further it means we no longer need the find_alt_dependency
method which could be a fairly time-consuming method depending on the size
of the contents table.

Partially addresses [YOCTO #1365]

(Bitbake rev: 91d1f5f5a44c80e6702221509e2e9aadbe05bcc0)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-23 10:00:32 -07:00
Joshua Lock d2f1ede68a bb/ui/crumbs/tasklistmodel: remove useless items from dependency list
Ensure the dependency list is uniquified, doesn't include self references
and further doesn't include -dev references.

(Bitbake rev: 70aebebc3867d52e460355667e711c7c6dcd50ce)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-23 10:00:32 -07:00
Joshua Lock c1b31f8996 bb/ui/crumbs/tasklistmodel: more robust checking for substrings
Relying on the count() method of Str to determine whether the string
contains a substring is error prone purely because the return value doesn't
strictly convert to a Boolean value.
To that end take the more pythonic approach of using the in operator (foo
in bar) to check for the substring.
Further, add a helper method for the common case of testing whether a pn
is -native, -cross or virtual/

(Bitbake rev: d7768cefcddd59a5102d7e9b67e4416bf8603f55)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-23 10:00:32 -07:00
Joshua Lock 1c30381714 bb/ui/crumbs/tasklistmodel: simplify conditional in include_item
No need to check if the name ends with -native or -cross as path will be
None in this instance.

(Bitbake rev: bca739cdf55ba2a1c5e372e512d4f088345f245f)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-15 09:47:09 +01:00
Joshua Lock cf1cd31c5c bb/ui/crumbs/tasklistmodel: make package_model_filter a little safer
Ignore names that include '-cross', rather than just 'cross'

(Bitbake rev: 06abfc9caf7f237a6bb762fb3ae9f3dec99688ca)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-15 09:47:08 +01:00
Joshua Lock c82dc42d4d bb/ui/crumbs/tasklistmodel: optimise find_path_for_item
If the item_name contains virtual/, -native or -cross it won't be present
in the model. Return None early in this circumstance rather than iterating
the entire model and still returning None.

(Bitbake rev: aeef5a4b3999bd924e89e7738efe24f80ae94fd0)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-15 09:47:08 +01:00
Joshua Lock 912a33bd7e 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.

(Bitbake rev: 049927e99c8d1db7273fbd179b2614bd2ea9403b)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-15 09:47:08 +01:00
Joshua Lock 2bd2717198 bb/crumbs/tasklistmodel: filter nativesdk packages out of views
(Bitbake rev: 0c62bbc5fb149c8baccffebd5f17e25d3e7dbf69)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-15 09:47:08 +01:00
Joshua Lock 33dc927bef bb/ui/crumbs/tasklistmodel: don't include an item in its own depends
This causes the simple removal algorithm to perform needless circular logic

(Bitbake rev: 396bbc220604c19ced4add30dd17f7f22d5e0022)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-11 19:07:59 +01:00
Joshua Lock af8ef31667 bb/ui/crumbs/tasklistmodel: correctly uniquify dependency list
Fix thinko - the squish method returns a uniquified list, it doesn't modify
the list in place. Therefore the call to squish() was useless as its return
value was never assigned.

(Bitbake rev: 93bae8f223cdeb7b7e31c309b5d785b97ae1c2ac)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-11 19:07:59 +01:00
Joshua Lock 858c79c3e9 bb/ui/crumbs/tasklistmodel: fix some typos and add comments to mark()
Two similarly named variables in the mark() method resulted in the wrong
variable being used in a couple of places. This patch adresses this in
several ways:
1) Renames the variables to be less similar
2) Uses the correct variables
3) Adds some coments to document the methods intent

Partially addresses [YOCTO #1355]

(Bitbake rev: ba9f2fe496eec0a221b563ffc9bb76eca592192f)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-11 19:07:58 +01:00
Joshua Lock 138178f5d2 bb/ui/crumbs/tasklistmodel: prevent hang when removing item
It's possible to trigger an infinite recursion when removing a package
where many of the dependencies share their dependencies. Prevent this by
keeping a list of removed item names and only removing the item when it's
not in the list.

Addresses [YOCTO #1319]

(Bitbake rev: 0ed58f28e869cceeefa930a3f1f46c5f3e9ffe21)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-09 15:19:59 +01:00
Joshua Lock 9eb25be609 bb/ui/crumbs/tasklistmodel: fix regex used for loading image recipes
Fixes [YOCTO #1321]

(Bitbake rev: a0fb6583222f2d981a69f0dae81b40db6caaa0d5)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-04 15:06:38 +01:00
Joshua Lock b004d8ef0f hob: fix loading customised image recipe
The signal handler of the 'Base image' combo was still connected during load
such that updating the UI to reflect the loaded base image triggered a change
of the model. Fix this by disconnecting the signal handler when updating the
displayed 'Base image'.

Fixes [YOCTO #1282]

(Bitbake rev: 58036a79cb79d1dff307e2cfed0e684493178507)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-27 16:54:04 +01:00
Joshua Lock 6b109860bf ui/crumbs/tasklistmodel: work around overly aggressive package removal
The mark() method, which removes dependent and rdependent items, is overly
aggressive removing items which are actually required by user selected
items and then causing a removal of those items. Because the data
structures used are not fine grained enough to do more intelligent
dependency tracking the simplest "fix" is to track removals which are
marked as "User Selected" and re-add those (and therefore their
dependencies) once the aggressive removal is completed.

Because the aggressive removal already ignores images and tasks this should
make the removal behave as expected though certainly leaves area for
improvement in future.

Fixes [YOCTO #1280].

(Bitbake rev: 1e1055262450de994202fc3e5943b8b19f628681)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-27 16:54:03 +01:00
Jessica Zhang 49c01a89b5 ui/crumbs/tasklistmodel: fix loading a saved recipe
use the correct variable userpkgs instead of packages during reload saved
bb file that contains user customization.

Fixes [YOCTO #1289]

(Bitbake rev: 2650be190afc05f9472aca8b11af99205a342838)

Signed-off-by: Jessica Zhang <jessica.zhang@intel.com>
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-26 20:15:49 +01:00
Joshua Lock 30a2ac4882 ui/crumbs/tasklistmodel: don't iterate whole model in find_alt_dependency()
The method needs to find an included item anyway so rather than iterating
the entire model and checking the included status of each entry iterate
over the contents gtk.TreeFilter.

(Bitbake rev: 79bdd501075ff5164a8ee673a6a2a0e402978ae5)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-26 20:15:48 +01:00
Joshua Lock b169dadb5f ui/crumbs/tasklistmodel: handle items added in by base image being removed
When building an image based on an existing image we need to correctly
handle removals from that images package set. Do so by testing if any of
the items brought in by the base image are removed and, if so, building
an image from scratch with all of the selected packages included.

Fixes [YOCTO #1232]

(Bitbake rev: 812ead4900714545850698d8ce29194f4ee8db0e)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-26 20:15:48 +01:00
Joshua Lock c884b52dd0 ui/hob: enable building an image with minimal contents
This patch enables a user to build a rootfs containing only the selected
packages without having to have first selected a 'Base image'.

Fixes [YOCTO #1239]

(Bitbake rev: 05c82da31a69c910e72b58b07afcd9fca8c55479)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-26 20:15:48 +01:00
Joshua Lock bcd622906e ui/crumbs/tasklistmodel: don't show native and cross recipes
Addresses [YOCTO #1224]

(Bitbake rev: 80f8d796392cbf3c54149c06347c35f871fc2d79)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-25 12:54:14 +01:00
Joshua Lock e2d2377257 ui/crumbs/tasklistmodel: ignore tasks and images when marking dependencies
When calculating what dependencies are affected by the removal of an item
we should ignore images and tasks as they are not constructs which make
sense in the GUI.
E.g: if we don't ignore tasks and remove opkg from an image based on
core-image-minimal the fact that opkg was brought in by task-core results
in task-core and all of the packages it brought in being removed and,
eventually, an empty image.

(Bitbake rev: 205b52bfc7f28af0c50fef1f741fae6af16fb0dc)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-21 22:08:11 +01:00
Joshua Lock a1e18b913f ui/crumbs/tasklistmodel: fix saving recipes
After switching to dynamically finding the relative path for the recipe
file it's no longer to append .bb when inserting the require line into the
saved recipe.

Fixes [YOCTO #1247]

(Bitbake rev: 2d05ce4f527daa905ed64485029ebeb2b349daa6)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-21 22:08:08 +01:00
Joshua Lock 80441de058 ui/crumbs/tasklistmodel: fix automatic removal of orphaned items
The sweep_up() method intends to remove all packages with an empty brought in
by column, this patch changes the implementation to be more reliable.

Each time a removal is triggered we begin interating the contents model again
at the beginning, only once the contents model has been iterated from start
to finish without any removals can we be certain that there will be no more
orphaned items.

Fixes [YOCTO #1218]

(Bitbake rev: 4803c6d3d1db31105d98a7f71596875333db0dc5)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-13 12:29:17 +01:00
Joshua Lock e5c961714c ui/crumbs/tasklistmodel: update brought in by column when possible
When a package is orphaned we were not correctly updating the brought-in-by
column if a later package additon would have brought that package in as a
dependency. This patch ensures that orphan packages are correctly re-parented
when appropriate.

Partially addresses [YOCTO #1218]

(Bitbake rev: 570405f2f5a3976b308ef825ef477fb5cb6ee804)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-13 12:29:17 +01:00
Joshua Lock b2124617ab ui/crumbs/tasklistmodel: fix reset method
The reset() method only touched the contents sub-model, which does not
include the selected image(s). This patch ensures that reset correctly unsets
any image selection when called.

Further we re-initialise the COL_IMG column when resetting packages.

(Bitbake rev: f3fbc97471961042e5eb8224dc07dcc04293efcf)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-08 17:32:40 +01:00
Joshua Lock 4cc291c007 hob: re-designed interaction and implementation
Highlights include:

* Atempted GNOME HIG compliance
* Simplified UI and interaction model
* Sorting and type to find in tree views
* Preferences dialog to modify local settings
* Dialog to add and remove layers
* Search in packages list
* Save/Load image recipes

The build model has been changed, hob will attempt to build all dependent
packages of an image and then use the buildFile server method to build the
created image.

(Bitbake rev: 48e64acaae4a741b9f5630f426fb4e6142755c2c)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-05 14:40:30 +01:00
Joshua Lock 9b43eaff99 bitbake: introduce crumbs.TaskListModel a gtk.ListStore subclass
Provide a gtk.ListStore subclass which includes a function,
populate(), which takes as input the data emitted by
bb.event.TargetsTreeGenerated and fills the ListStore model
appropriately.
Furthermore convenience functions are provided by which the caller can
get gtk.TreeModel subclasses which provide filtered views of the data.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2011-02-24 15:54:52 +00:00