bitbake: HOB: Busy cursor when saving configuration

Display a busy cursor while the configuration is saved.

[YOCTO #4846]
(Bitbake rev: fdb2e0120f189e97b8fdb6eb72d77a3100ba3018)

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Valentin Popa 2013-09-10 15:58:52 +03:00 committed by Richard Purdie
parent 0fe5d9d657
commit b43c8126de
2 changed files with 18 additions and 0 deletions

View File

@ -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()

View File

@ -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 = []