[bitbake-devel] [PATCH 9/9] lib/bb/ui/crumbs: apply primary/secondary dialogue button styling

Xu, Dongxiao dongxiao.xu at intel.com
Sat Mar 24 01:19:29 UTC 2012


On Fri, 2012-03-23 at 18:07 -0700, Joshua Lock wrote:
> On 23/03/12 18:00, Xu, Dongxiao wrote:
> > On Fri, 2012-03-23 at 17:23 -0700, Joshua Lock wrote:
> >> The design calls for primary buttons which are orange and large and
> >> secondary buttons which are subtle with pale blue text. This is so that the
> >> user is drawn towards the primary action and their use of the application
> >> is more guided.
> >>
> >> This patch uses HobButton and HobAltButton classes to style all dialogue
> >> buttons accordingly.
> >>
> >> Fixes [YOCTO #2125]
> >>
> >> Signed-off-by: Joshua Lock<josh at linux.intel.com>
> >> ---
> >>   lib/bb/ui/crumbs/builder.py |  106 +++++++++++++++++++++++++++----------------
> >>   lib/bb/ui/crumbs/hig.py     |   34 ++++++++------
> >>   2 files changed, 87 insertions(+), 53 deletions(-)
> >>
> >> diff --git a/lib/bb/ui/crumbs/builder.py b/lib/bb/ui/crumbs/builder.py
> >> index 4eb374c..e27a239 100755
> >> --- a/lib/bb/ui/crumbs/builder.py
> >> +++ b/lib/bb/ui/crumbs/builder.py
> >> @@ -32,7 +32,7 @@ from bb.ui.crumbs.recipeselectionpage import RecipeSelectionPage
> >>   from bb.ui.crumbs.packageselectionpage import PackageSelectionPage
> >>   from bb.ui.crumbs.builddetailspage import BuildDetailsPage
> >>   from bb.ui.crumbs.imagedetailspage import ImageDetailsPage
> >> -from bb.ui.crumbs.hobwidget import hwc
> >> +from bb.ui.crumbs.hobwidget import hwc, HobButton, HobAltButton
> >>   from bb.ui.crumbs.hig import CrumbsMessageDialog, ImageSelectionDialog, \
> >>                                AdvancedSettingDialog, LayerSelectionDialog, \
> >>                                DeployImageDialog
> >> @@ -435,7 +435,8 @@ class Builder(gtk.Window):
> >>               lbl = "<b>Error</b>\n"
> >>               lbl = lbl + "%s\n\n" % msg
> >>               dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_WARNING)
> >> -            dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
> >> +            button = dialog.add_button("Close", gtk.RESPONSE_OK)
> >> +            HobButton.style_button(button)
> >>               response = dialog.run()
> >>               dialog.destroy()
> >>           self.handler.clear_busy()
> >> @@ -608,8 +609,10 @@ class Builder(gtk.Window):
> >>       def destroy_window_cb(self, widget, event):
> >>           lbl = "<b>Do you really want to exit the Hob image creator?</b>"
> >>           dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
> >> -        dialog.add_button("Keep using Hob", gtk.RESPONSE_NO)
> >> -        dialog.add_button("Exit Hob", gtk.RESPONSE_YES)
> >> +        button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
> >> +        HobAltButton.style_button(button)
> >> +        button = dialog.add_button("Exit Hob", gtk.RESPONSE_YES)
> >> +        HobButton.style_button(button)
> >>           dialog.set_default_response(gtk.RESPONSE_YES)
> >>           response = dialog.run()
> >>           dialog.destroy()
> >> @@ -625,7 +628,8 @@ class Builder(gtk.Window):
> >>               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)
> >> -            dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
> >> +            button = dialog.add_button("Close", gtk.RESPONSE_OK)
> >> +            HobButton.style_button(button)
> >>               dialog.run()
> >>               dialog.destroy()
> >>               return
> >> @@ -637,7 +641,8 @@ class Builder(gtk.Window):
> >>               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)
> >> -            dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
> >> +            button = dialog.add_button("Close", gtk.RESPONSE_OK)
> >> +            HobButton.style_button(button)
> >>               dialog.run()
> >>               dialog.destroy()
> >>               return
> >> @@ -652,7 +657,8 @@ class Builder(gtk.Window):
> >>               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)
> >> -            dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
> >> +            button = dialog.add_button("Close", gtk.RESPONSE_OK)
> >> +            HobButton.style_button(button)
> >>               dialog.run()
> >>               dialog.destroy()
> >>               return
> >> @@ -672,8 +678,9 @@ class Builder(gtk.Window):
> >>                        parent = self,
> >>                        flags = gtk.DIALOG_MODAL
> >>                            | gtk.DIALOG_DESTROY_WITH_PARENT
> >> -                         | gtk.DIALOG_NO_SEPARATOR,
> >> -                     buttons = (gtk.STOCK_CLOSE, gtk.RESPONSE_YES))
> >> +                         | gtk.DIALOG_NO_SEPARATOR)
> >> +        button = dialog.add_button("Close", gtk.RESPONSE_YES)
> >> +        HobButton.style_button(button)
> >>           response = dialog.run()
> >>           if response == gtk.RESPONSE_YES:
> >>               self.configuration.layers = dialog.layers
> >
> > As my previous point, I still strongly suggest we keep the "cancel"
> > button in the layer selection and advanced setting dialog to avoid
> > user's wrong operation. Need Belen or Giulia's input.
> 
> They both responded via Bugzilla, I mistakenly thought you were on CC - 
> apologies.
> 
> https://bugzilla.yoctoproject.org/show_bug.cgi?id=2083

Thanks for the information.

For Layer, I accept design team's idea to remove save and cancel button.
But still users may miss deleted some critical layers. For example, in
our Yocto project, users may wrongly deleted meta-yocto, which will
cause the system reporting error like:

"DISTRO poky not found. Please set a valid DISTRO in your local.conf"

This is because the poky distro is defined in meta-yocto layer, and user
deleted meta-yocto by mistake.

Do you think if it is reasonable to add a confirmation dialog when user
trying to delete a layer?

What about the save/cancel buttons in advanced setting dialog? Now I
only saw a "close" button there. What can we do if user miss configured
something that he/she doesn't want to save?

Thanks,
Dongxiao

> 
> Cheers,
> Joshua






More information about the bitbake-devel mailing list