[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