crumbs: Factor common dialogue configuration out

Factor out the base dialogue configuration into CrumbsDialog and create a new CrumbsMessageDialog which acts as the CrumbsDialog did to handle dialogues with buttons.

Adopt CrumbsMessageDialog wherever CrumbsDialog was used.

(Bitbake rev: d8c62f54d9f2421cfe7f1083b9d0acfe0373d38a)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Shane Wang 2012-02-29 22:15:10 +08:00 committed by Richard Purdie
parent 5090837991
commit ae9539f2f4
2 changed files with 32 additions and 19 deletions

View File

@ -33,7 +33,7 @@ from bb.ui.crumbs.packageselectionpage import PackageSelectionPage
from bb.ui.crumbs.builddetailspage import BuildDetailsPage from bb.ui.crumbs.builddetailspage import BuildDetailsPage
from bb.ui.crumbs.imagedetailspage import ImageDetailsPage from bb.ui.crumbs.imagedetailspage import ImageDetailsPage
from bb.ui.crumbs.hobwidget import hwc from bb.ui.crumbs.hobwidget import hwc
from bb.ui.crumbs.hig import CrumbsDialog, BinbDialog, \ from bb.ui.crumbs.hig import CrumbsMessageDialog, BinbDialog, \
AdvancedSettingDialog, LayerSelectionDialog, \ AdvancedSettingDialog, LayerSelectionDialog, \
DeployImageDialog, ImageSelectionDialog DeployImageDialog, ImageSelectionDialog
@ -234,7 +234,7 @@ class Builder(gtk.Window):
else: else:
lbl = "<b>Screen dimension mismatched</b>\nfor better usability and visual effects," lbl = "<b>Screen dimension mismatched</b>\nfor better usability and visual effects,"
lbl = lbl + " the screen dimension should be 1024x768 or above." lbl = lbl + " the screen dimension should be 1024x768 or above."
dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_INFO) dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
dialog.run() dialog.run()
dialog.destroy() dialog.destroy()
@ -441,7 +441,7 @@ class Builder(gtk.Window):
def handler_command_failed_cb(self, handler, msg): def handler_command_failed_cb(self, handler, msg):
lbl = "<b>Error</b>\n" lbl = "<b>Error</b>\n"
lbl = lbl + "%s\n\n" % msg lbl = lbl + "%s\n\n" % msg
dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_WARNING) dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_WARNING)
dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
response = dialog.run() response = dialog.run()
dialog.destroy() dialog.destroy()
@ -588,7 +588,7 @@ class Builder(gtk.Window):
def destroy_window_cb(self, widget, event): def destroy_window_cb(self, widget, event):
lbl = "<b>Do you really want to exit the Hob image creator?</b>" lbl = "<b>Do you really want to exit the Hob image creator?</b>"
dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_INFO) dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
dialog.add_button(gtk.STOCK_YES, gtk.RESPONSE_YES) dialog.add_button(gtk.STOCK_YES, gtk.RESPONSE_YES)
dialog.add_button(gtk.STOCK_NO, gtk.RESPONSE_NO) dialog.add_button(gtk.STOCK_NO, gtk.RESPONSE_NO)
dialog.set_default_response(gtk.RESPONSE_NO) dialog.set_default_response(gtk.RESPONSE_NO)
@ -605,7 +605,7 @@ class Builder(gtk.Window):
if not all_recipes: if not all_recipes:
lbl = "<b>No selections made</b>\nYou have not made any selections" lbl = "<b>No selections made</b>\nYou have not made any selections"
lbl = lbl + " so there isn't anything to bake at this time." lbl = lbl + " so there isn't anything to bake at this time."
dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_INFO) dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
dialog.run() dialog.run()
dialog.destroy() dialog.destroy()
@ -617,7 +617,7 @@ class Builder(gtk.Window):
if not selected_packages: if not selected_packages:
lbl = "<b>No selections made</b>\nYou have not made any selections" lbl = "<b>No selections made</b>\nYou have not made any selections"
lbl = lbl + " so there isn't anything to bake at this time." lbl = lbl + " so there isn't anything to bake at this time."
dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_INFO) dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
dialog.run() dialog.run()
dialog.destroy() dialog.destroy()
@ -632,7 +632,7 @@ class Builder(gtk.Window):
if not (selected_packages or selected_image != self.recipe_model.__dummy_image__): if not (selected_packages or selected_image != self.recipe_model.__dummy_image__):
lbl = "<b>No selections made</b>\nYou have not made any selections" lbl = "<b>No selections made</b>\nYou have not made any selections"
lbl = lbl + " so there isn't anything to bake at this time." lbl = lbl + " so there isn't anything to bake at this time."
dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_INFO) dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
dialog.run() dialog.run()
dialog.destroy() dialog.destroy()
@ -703,7 +703,7 @@ class Builder(gtk.Window):
if response == gtk.RESPONSE_YES: if response == gtk.RESPONSE_YES:
if not dialog.image_names: if not dialog.image_names:
lbl = "<b>No selections made</b>\nYou have not made any selections" lbl = "<b>No selections made</b>\nYou have not made any selections"
crumbs_dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_INFO) crumbs_dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
crumbs_dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) crumbs_dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
crumbs_dialog.run() crumbs_dialog.run()
crumbs_dialog.destroy() crumbs_dialog.destroy()
@ -745,7 +745,7 @@ class Builder(gtk.Window):
def deploy_image(self, image_name): def deploy_image(self, image_name):
if not image_name: if not image_name:
lbl = "<b>Please select an image to deploy.</b>" lbl = "<b>Please select an image to deploy.</b>"
dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_INFO) dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
dialog.run() dialog.run()
dialog.destroy() dialog.destroy()
@ -766,7 +766,7 @@ class Builder(gtk.Window):
def runqemu_image(self, image_name): def runqemu_image(self, image_name):
if not image_name: if not image_name:
lbl = "<b>Please select an image to launch in QEMU.</b>" lbl = "<b>Please select an image to launch in QEMU.</b>"
dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_INFO) dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
dialog.run() dialog.run()
dialog.destroy() dialog.destroy()
@ -806,7 +806,7 @@ class Builder(gtk.Window):
lbl = lbl + "kernel path:" + kernel_path + "\n" lbl = lbl + "kernel path:" + kernel_path + "\n"
lbl = lbl + "source environment path:" + source_env_path + "\n" lbl = lbl + "source environment path:" + source_env_path + "\n"
lbl = lbl + "tmp path: " + tmp_path + "." lbl = lbl + "tmp path: " + tmp_path + "."
dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_INFO) dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
dialog.run() dialog.run()
dialog.destroy() dialog.destroy()
@ -816,7 +816,7 @@ class Builder(gtk.Window):
if selected_recipes and ask: if selected_recipes and ask:
lbl = "<b>Package list may be incomplete!</b>\nDo you want to build selected recipes" lbl = "<b>Package list may be incomplete!</b>\nDo you want to build selected recipes"
lbl = lbl + " to get a full list (Yes) or just view the existing packages (No)?" lbl = lbl + " to get a full list (Yes) or just view the existing packages (No)?"
dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_INFO) dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
dialog.add_button(gtk.STOCK_YES, gtk.RESPONSE_YES) dialog.add_button(gtk.STOCK_YES, gtk.RESPONSE_YES)
dialog.add_button(gtk.STOCK_NO, gtk.RESPONSE_NO) dialog.add_button(gtk.STOCK_NO, gtk.RESPONSE_NO)
dialog.set_default_response(gtk.RESPONSE_YES) dialog.set_default_response(gtk.RESPONSE_YES)
@ -847,7 +847,7 @@ class Builder(gtk.Window):
lbl = lbl + "This will stop the build as quickly as possible but may" lbl = lbl + "This will stop the build as quickly as possible but may"
lbl = lbl + " well leave your build directory in an unusable state" lbl = lbl + " well leave your build directory in an unusable state"
lbl = lbl + " that requires manual steps to fix.\n" lbl = lbl + " that requires manual steps to fix.\n"
dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_WARNING) dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_WARNING)
dialog.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL) dialog.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
dialog.add_button("Force Stop", gtk.RESPONSE_YES) dialog.add_button("Force Stop", gtk.RESPONSE_YES)
else: else:
@ -859,7 +859,7 @@ class Builder(gtk.Window):
lbl = lbl + " progress build tasks are finished. However if a" lbl = lbl + " progress build tasks are finished. However if a"
lbl = lbl + " lengthy compilation phase is in progress this may take" lbl = lbl + " lengthy compilation phase is in progress this may take"
lbl = lbl + " some time." lbl = lbl + " some time."
dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_WARNING) dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_WARNING)
dialog.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL) dialog.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
dialog.add_button("Stop", gtk.RESPONSE_OK) dialog.add_button("Stop", gtk.RESPONSE_OK)
dialog.add_button("Force Stop", gtk.RESPONSE_YES) dialog.add_button("Force Stop", gtk.RESPONSE_YES)

View File

@ -45,11 +45,24 @@ class CrumbsDialog(gtk.Dialog):
A GNOME HIG compliant dialog widget. A GNOME HIG compliant dialog widget.
Add buttons with gtk.Dialog.add_button or gtk.Dialog.add_buttons Add buttons with gtk.Dialog.add_button or gtk.Dialog.add_buttons
""" """
def __init__(self, parent=None, label="", icon=gtk.STOCK_INFO): def __init__(self, title="", parent=None, flags=0, buttons=None):
super(CrumbsDialog, self).__init__("", parent, gtk.DIALOG_DESTROY_WITH_PARENT) super(CrumbsDialog, self).__init__(title, parent, flags, buttons)
#self.set_property("has-separator", False) # note: deprecated in 2.22
self.set_property("has-separator", False) # note: deprecated in 2.22
self.set_border_width(6)
self.vbox.set_property("spacing", 12)
self.action_area.set_property("spacing", 12)
self.action_area.set_property("border-width", 6)
class CrumbsMessageDialog(CrumbsDialog):
"""
A GNOME HIG compliant dialog widget.
Add buttons with gtk.Dialog.add_button or gtk.Dialog.add_buttons
"""
def __init__(self, parent=None, label="", icon=gtk.STOCK_INFO):
super(CrumbsMessageDialog, self).__init__("", parent, gtk.DIALOG_DESTROY_WITH_PARENT)
self.set_border_width(6) self.set_border_width(6)
self.vbox.set_property("spacing", 12) self.vbox.set_property("spacing", 12)
self.action_area.set_property("spacing", 12) self.action_area.set_property("spacing", 12)
@ -839,7 +852,7 @@ class LayerSelectionDialog (gtk.Dialog):
else: else:
layer_store.append([path]) layer_store.append([path])
return return
dialog = CrumbsDialog(parent, lbl) dialog = CrumbsMessageDialog(parent, lbl)
dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
response = dialog.run() response = dialog.run()
dialog.destroy() dialog.destroy()