diff options
| author | Dongxiao Xu <dongxiao.xu@intel.com> | 2012-03-14 09:06:47 +0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-03-15 10:35:16 +0000 |
| commit | 0fa748e348b30c0da359ea21883e7078fae41871 (patch) | |
| tree | 2be08b000468932772e2d2159e1e65e65ae9b368 /bitbake/lib | |
| parent | 552672abba5e0e1909178f4e40e190a84d1979d9 (diff) | |
| download | poky-0fa748e348b30c0da359ea21883e7078fae41871.tar.gz | |
Hob: Remove the recipe/package populated signal
Handle the recipe and package list update in
handler_command_succeeded_cb(), which could avoid potential race
condition when doing recipe/package list updating and page switching.
(Bitbake rev: 0c766a8c69782b2dd35a363dc9573b78f9d41995)
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
| -rwxr-xr-x | bitbake/lib/bb/ui/crumbs/builder.py | 18 | ||||
| -rw-r--r-- | bitbake/lib/bb/ui/crumbs/hoblistmodel.py | 14 |
2 files changed, 8 insertions, 24 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py index f9844dea31..c6b1a3df5b 100755 --- a/bitbake/lib/bb/ui/crumbs/builder.py +++ b/bitbake/lib/bb/ui/crumbs/builder.py | |||
| @@ -200,8 +200,6 @@ class Builder(gtk.Window): | |||
| 200 | self.connect("delete-event", self.destroy_window_cb) | 200 | self.connect("delete-event", self.destroy_window_cb) |
| 201 | self.recipe_model.connect ("recipe-selection-changed", self.recipelist_changed_cb) | 201 | self.recipe_model.connect ("recipe-selection-changed", self.recipelist_changed_cb) |
| 202 | self.package_model.connect("package-selection-changed", self.packagelist_changed_cb) | 202 | self.package_model.connect("package-selection-changed", self.packagelist_changed_cb) |
| 203 | self.recipe_model.connect ("recipelist-populated", self.recipelist_populated_cb) | ||
| 204 | self.package_model.connect("packagelist-populated", self.packagelist_populated_cb) | ||
| 205 | self.handler.connect("config-updated", self.handler_config_updated_cb) | 203 | self.handler.connect("config-updated", self.handler_config_updated_cb) |
| 206 | self.handler.connect("package-formats-updated", self.handler_package_formats_updated_cb) | 204 | self.handler.connect("package-formats-updated", self.handler_package_formats_updated_cb) |
| 207 | self.handler.connect("layers-updated", self.handler_layers_updated_cb) | 205 | self.handler.connect("layers-updated", self.handler_layers_updated_cb) |
| @@ -413,10 +411,14 @@ class Builder(gtk.Window): | |||
| 413 | self.handler.GENERATE_IMAGE]: | 411 | self.handler.GENERATE_IMAGE]: |
| 414 | self.handler.request_package_info_async() | 412 | self.handler.request_package_info_async() |
| 415 | elif initcmd == self.handler.POPULATE_PACKAGEINFO: | 413 | elif initcmd == self.handler.POPULATE_PACKAGEINFO: |
| 414 | if self.current_step == self.RCPPKGINFO_POPULATING: | ||
| 415 | self.switch_page(self.RCPPKGINFO_POPULATED) | ||
| 416 | self.rcppkglist_populated() | ||
| 417 | return | ||
| 418 | |||
| 419 | self.rcppkglist_populated() | ||
| 416 | if self.current_step == self.FAST_IMAGE_GENERATING: | 420 | if self.current_step == self.FAST_IMAGE_GENERATING: |
| 417 | self.switch_page(self.IMAGE_GENERATING) | 421 | self.switch_page(self.IMAGE_GENERATING) |
| 418 | elif self.current_step == self.RCPPKGINFO_POPULATING: | ||
| 419 | self.switch_page(self.RCPPKGINFO_POPULATED) | ||
| 420 | elif self.current_step == self.PACKAGE_GENERATING: | 422 | elif self.current_step == self.PACKAGE_GENERATING: |
| 421 | self.switch_page(self.PACKAGE_GENERATED) | 423 | self.switch_page(self.PACKAGE_GENERATED) |
| 422 | elif self.current_step == self.IMAGE_GENERATING: | 424 | elif self.current_step == self.IMAGE_GENERATING: |
| @@ -448,7 +450,7 @@ class Builder(gtk.Window): | |||
| 448 | def handler_data_generated_cb(self, handler): | 450 | def handler_data_generated_cb(self, handler): |
| 449 | self.window_sensitive(True) | 451 | self.window_sensitive(True) |
| 450 | 452 | ||
| 451 | def recipelist_populated_cb(self, recipe_model): | 453 | def rcppkglist_populated(self): |
| 452 | selected_image = self.configuration.selected_image | 454 | selected_image = self.configuration.selected_image |
| 453 | selected_recipes = self.configuration.selected_recipes[:] | 455 | selected_recipes = self.configuration.selected_recipes[:] |
| 454 | selected_packages = self.configuration.selected_packages[:] | 456 | selected_packages = self.configuration.selected_packages[:] |
| @@ -458,11 +460,7 @@ class Builder(gtk.Window): | |||
| 458 | " ".join(selected_packages)) | 460 | " ".join(selected_packages)) |
| 459 | 461 | ||
| 460 | self.image_configuration_page.update_image_combo(self.recipe_model, selected_image) | 462 | self.image_configuration_page.update_image_combo(self.recipe_model, selected_image) |
| 461 | |||
| 462 | self.update_recipe_model(selected_image, selected_recipes) | 463 | self.update_recipe_model(selected_image, selected_recipes) |
| 463 | |||
| 464 | def packagelist_populated_cb(self, package_model): | ||
| 465 | selected_packages = self.configuration.selected_packages[:] | ||
| 466 | self.update_package_model(selected_packages) | 464 | self.update_package_model(selected_packages) |
| 467 | 465 | ||
| 468 | def recipelist_changed_cb(self, recipe_model): | 466 | def recipelist_changed_cb(self, recipe_model): |
| @@ -825,7 +823,7 @@ class Builder(gtk.Window): | |||
| 825 | self.switch_page(self.RECIPE_SELECTION) | 823 | self.switch_page(self.RECIPE_SELECTION) |
| 826 | 824 | ||
| 827 | def initiate_new_build(self): | 825 | def initiate_new_build(self): |
| 828 | self.configuration.curr_mach = "" | 826 | self.configuration.curr_mach = "" |
| 829 | self.image_configuration_page.switch_machine_combo() | 827 | self.image_configuration_page.switch_machine_combo() |
| 830 | self.switch_page(self.MACHINE_SELECTION) | 828 | self.switch_page(self.MACHINE_SELECTION) |
| 831 | 829 | ||
diff --git a/bitbake/lib/bb/ui/crumbs/hoblistmodel.py b/bitbake/lib/bb/ui/crumbs/hoblistmodel.py index c19aaa8191..edd61b50c4 100644 --- a/bitbake/lib/bb/ui/crumbs/hoblistmodel.py +++ b/bitbake/lib/bb/ui/crumbs/hoblistmodel.py | |||
| @@ -36,9 +36,6 @@ class PackageListModel(gtk.TreeStore): | |||
| 36 | (COL_NAME, COL_VER, COL_REV, COL_RNM, COL_SEC, COL_SUM, COL_RDEP, COL_RPROV, COL_SIZE, COL_BINB, COL_INC) = range(11) | 36 | (COL_NAME, COL_VER, COL_REV, COL_RNM, COL_SEC, COL_SUM, COL_RDEP, COL_RPROV, COL_SIZE, COL_BINB, COL_INC) = range(11) |
| 37 | 37 | ||
| 38 | __gsignals__ = { | 38 | __gsignals__ = { |
| 39 | "packagelist-populated" : (gobject.SIGNAL_RUN_LAST, | ||
| 40 | gobject.TYPE_NONE, | ||
| 41 | ()), | ||
| 42 | "package-selection-changed" : (gobject.SIGNAL_RUN_LAST, | 39 | "package-selection-changed" : (gobject.SIGNAL_RUN_LAST, |
| 43 | gobject.TYPE_NONE, | 40 | gobject.TYPE_NONE, |
| 44 | ()), | 41 | ()), |
| @@ -135,8 +132,6 @@ class PackageListModel(gtk.TreeStore): | |||
| 135 | """ | 132 | """ |
| 136 | The populate() function takes as input the data from a | 133 | The populate() function takes as input the data from a |
| 137 | bb.event.PackageInfo event and populates the package list. | 134 | bb.event.PackageInfo event and populates the package list. |
| 138 | Once the population is done it emits gsignal packagelist-populated | ||
| 139 | to notify any listeners that the model is ready | ||
| 140 | """ | 135 | """ |
| 141 | def populate(self, pkginfolist): | 136 | def populate(self, pkginfolist): |
| 142 | self.clear() | 137 | self.clear() |
| @@ -194,8 +189,6 @@ class PackageListModel(gtk.TreeStore): | |||
| 194 | self.COL_RPROV, rprov, self.COL_SIZE, size, | 189 | self.COL_RPROV, rprov, self.COL_SIZE, size, |
| 195 | self.COL_BINB, "", self.COL_INC, False) | 190 | self.COL_BINB, "", self.COL_INC, False) |
| 196 | 191 | ||
| 197 | self.emit("packagelist-populated") | ||
| 198 | |||
| 199 | """ | 192 | """ |
| 200 | Check whether the item at item_path is included or not | 193 | Check whether the item at item_path is included or not |
| 201 | """ | 194 | """ |
| @@ -425,9 +418,6 @@ class RecipeListModel(gtk.ListStore): | |||
| 425 | __dummy_image__ = "Start from scratch" | 418 | __dummy_image__ = "Start from scratch" |
| 426 | 419 | ||
| 427 | __gsignals__ = { | 420 | __gsignals__ = { |
| 428 | "recipelist-populated" : (gobject.SIGNAL_RUN_LAST, | ||
| 429 | gobject.TYPE_NONE, | ||
| 430 | ()), | ||
| 431 | "recipe-selection-changed" : (gobject.SIGNAL_RUN_LAST, | 421 | "recipe-selection-changed" : (gobject.SIGNAL_RUN_LAST, |
| 432 | gobject.TYPE_NONE, | 422 | gobject.TYPE_NONE, |
| 433 | ()), | 423 | ()), |
| @@ -524,8 +514,6 @@ class RecipeListModel(gtk.ListStore): | |||
| 524 | """ | 514 | """ |
| 525 | The populate() function takes as input the data from a | 515 | The populate() function takes as input the data from a |
| 526 | bb.event.TargetsTreeGenerated event and populates the RecipeList. | 516 | bb.event.TargetsTreeGenerated event and populates the RecipeList. |
| 527 | Once the population is done it emits gsignal recipelist-populated | ||
| 528 | to notify any listeners that the model is ready | ||
| 529 | """ | 517 | """ |
| 530 | def populate(self, event_model): | 518 | def populate(self, event_model): |
| 531 | # First clear the model, in case repopulating | 519 | # First clear the model, in case repopulating |
| @@ -580,8 +568,6 @@ class RecipeListModel(gtk.ListStore): | |||
| 580 | self.pn_path[pn] = path | 568 | self.pn_path[pn] = path |
| 581 | it = self.iter_next(it) | 569 | it = self.iter_next(it) |
| 582 | 570 | ||
| 583 | self.emit("recipelist-populated") | ||
| 584 | |||
| 585 | """ | 571 | """ |
| 586 | Update the model, send out the notification. | 572 | Update the model, send out the notification. |
| 587 | """ | 573 | """ |
