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 logging
import sys import sys
import signal import signal
import time
from bb.ui.crumbs.imageconfigurationpage import ImageConfigurationPage from bb.ui.crumbs.imageconfigurationpage import ImageConfigurationPage
from bb.ui.crumbs.recipeselectionpage import RecipeSelectionPage from bb.ui.crumbs.recipeselectionpage import RecipeSelectionPage
from bb.ui.crumbs.packageselectionpage import PackageSelectionPage from bb.ui.crumbs.packageselectionpage import PackageSelectionPage
@ -1466,3 +1467,10 @@ class Builder(gtk.Window):
def get_topdir(self): def get_topdir(self):
return self.handler.get_topdir() 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): def view_warnings_button_clicked_cb(self, button):
self.builder.show_warning_dialog() 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): 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.stopping = False
self.builder.parsing_warnings = [] self.builder.parsing_warnings = []
combo_item = machine_combo.get_active_text() combo_item = machine_combo.get_active_text()
@ -324,6 +329,8 @@ class ImageConfigurationPage (HobPage):
# Do reparse recipes # Do reparse recipes
self.builder.populate_recipe_package_info_async() self.builder.populate_recipe_package_info_async()
glib.idle_add(self.machine_combo_changed_idle_cb)
def update_machine_combo(self): def update_machine_combo(self):
self.disable_warnings_bar() self.disable_warnings_bar()
all_machines = [self.__dummy_machine__] + self.builder.parameters.all_machines all_machines = [self.__dummy_machine__] + self.builder.parameters.all_machines
@ -527,7 +534,10 @@ class ImageConfigurationPage (HobPage):
if not response: if not response:
return return
if settings_changed: 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.reparse_post_adv_settings()
self.builder.window.set_cursor(None)
def just_bake_button_clicked_cb(self, button): def just_bake_button_clicked_cb(self, button):
self.builder.parsing_warnings = [] self.builder.parsing_warnings = []