[bitbake-devel] [PATCH] HOB:Proper handle of SIGINT
Paul Eggleton
paul.eggleton at linux.intel.com
Fri Jul 5 15:02:30 UTC 2013
Hi Valentin,
On Wednesday 03 July 2013 14:31:44 Valentin Popa wrote:
> Modal dialogs doesn't run on the main loop so they cannot
> catch any signal from the terminal. This patch makes sure
> the dialogs are destroyed when a SIGINT is sent to HOB.
>
> [YOCTO #3329]
> Signed-off-by: Valentin Popa <valentin.popa at intel.com>
> ---
> bitbake/lib/bb/ui/crumbs/builder.py | 13 +++++++++++--
> 1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/bitbake/lib/bb/ui/crumbs/builder.py
> b/bitbake/lib/bb/ui/crumbs/builder.py index d5df60f..a2abb2a 100755
> --- a/bitbake/lib/bb/ui/crumbs/builder.py
> +++ b/bitbake/lib/bb/ui/crumbs/builder.py
> @@ -30,6 +30,7 @@ import shlex
> import re
> import logging
> import sys
> +import signal
> from bb.ui.crumbs.imageconfigurationpage import ImageConfigurationPage
> from bb.ui.crumbs.recipeselectionpage import RecipeSelectionPage
> from bb.ui.crumbs.packageselectionpage import PackageSelectionPage
> @@ -441,6 +442,8 @@ class Builder(gtk.Window):
>
> self.initiate_new_build_async()
>
> + signal.signal(signal.SIGINT, self.event_handle_SIGINT)
> +
> def create_visual_elements(self):
> self.set_title("Hob")
> self.set_icon_name("applications-development")
> @@ -1028,7 +1031,7 @@ class Builder(gtk.Window):
> dialog.destroy()
> self.build_failed()
>
> - def handler_task_started_cb(self, running_build, message):
> + def handler_task_started_cb(self, running_build, message):
> fraction = message["current"] * 1.0/message["total"]
> title = "Build packages"
> if self.current_step == self.FAST_IMAGE_GENERATING:
> @@ -1075,6 +1078,12 @@ class Builder(gtk.Window):
> else:
> gtk.main_quit()
>
> + def event_handle_SIGINT(self, signal, frame):
> + for w in gtk.window_list_toplevels():
> + if w.get_modal():
> + w.response(gtk.RESPONSE_DELETE_EVENT)
> + sys.exit(0)
> +
> def build_packages(self):
> _, all_recipes = self.recipe_model.get_selected_recipes()
> if not all_recipes:
> @@ -1090,7 +1099,7 @@ class Builder(gtk.Window):
>
> def build_image(self):
> selected_packages = self.package_model.get_selected_packages()
> - if not selected_packages:
> + if not selected_packages:
> lbl = "<b>No selections made</b>\nYou have not made any
> selections" lbl = lbl + " so there isn't anything to bake at this time."
> dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
This patch has been merged, however without the unrelated whitespace changes.
If we want to make whitespace changes they should be done in a separate patch.
Cheers,
Paul
--
Paul Eggleton
Intel Open Source Technology Centre
More information about the bitbake-devel
mailing list