diff options
author | Valentin Popa <valentin.popa@intel.com> | 2013-09-10 15:58:52 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-09-27 16:02:14 +0100 |
commit | fdb2e0120f189e97b8fdb6eb72d77a3100ba3018 (patch) | |
tree | 6cbd2e39ff91e51fde962bdcbbfe9d4e581b635a | |
parent | 2666865a27cedbffc82800b4cab1d6cff5a0222e (diff) | |
download | bitbake-fdb2e0120f189e97b8fdb6eb72d77a3100ba3018.tar.gz |
HOB: Busy cursor when saving configuration
Display a busy cursor while the configuration is saved.
[YOCTO #4846]
Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-x | lib/bb/ui/crumbs/builder.py | 8 | ||||
-rw-r--r-- | lib/bb/ui/crumbs/imageconfigurationpage.py | 10 |
2 files changed, 18 insertions, 0 deletions
diff --git a/lib/bb/ui/crumbs/builder.py b/lib/bb/ui/crumbs/builder.py index 86fdbfe9f..829281357 100755 --- a/lib/bb/ui/crumbs/builder.py +++ b/lib/bb/ui/crumbs/builder.py @@ -31,6 +31,7 @@ import re import logging import sys import signal +import time from bb.ui.crumbs.imageconfigurationpage import ImageConfigurationPage from bb.ui.crumbs.recipeselectionpage import RecipeSelectionPage from bb.ui.crumbs.packageselectionpage import PackageSelectionPage @@ -1466,3 +1467,10 @@ class Builder(gtk.Window): def get_topdir(self): return self.handler.get_topdir() + + def wait(self, delay): + time_start = time.time() + time_end = time_start + delay + while time_end > time.time(): + while gtk.events_pending(): + gtk.main_iteration() diff --git a/lib/bb/ui/crumbs/imageconfigurationpage.py b/lib/bb/ui/crumbs/imageconfigurationpage.py index 3babc8eb4..79709d0d9 100644 --- a/lib/bb/ui/crumbs/imageconfigurationpage.py +++ b/lib/bb/ui/crumbs/imageconfigurationpage.py @@ -300,7 +300,12 @@ class ImageConfigurationPage (HobPage): def view_warnings_button_clicked_cb(self, button): self.builder.show_warning_dialog() + def machine_combo_changed_idle_cb(self): + self.builder.window.set_cursor(None) + def machine_combo_changed_cb(self, machine_combo): + self.builder.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) + self.builder.wait(0.1) #wait for combo and cursor to update self.stopping = False self.builder.parsing_warnings = [] combo_item = machine_combo.get_active_text() @@ -324,6 +329,8 @@ class ImageConfigurationPage (HobPage): # Do reparse recipes self.builder.populate_recipe_package_info_async() + glib.idle_add(self.machine_combo_changed_idle_cb) + def update_machine_combo(self): self.disable_warnings_bar() all_machines = [self.__dummy_machine__] + self.builder.parameters.all_machines @@ -527,7 +534,10 @@ class ImageConfigurationPage (HobPage): if not response: return if settings_changed: + self.builder.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) + self.builder.wait(0.1) #wait for adv_settings_dialog to terminate self.builder.reparse_post_adv_settings() + self.builder.window.set_cursor(None) def just_bake_button_clicked_cb(self, button): self.builder.parsing_warnings = [] |