[master/rhel7 2/2] Highlight languages in langsupport that contain selected locales (#1072355)
Vratislav Podzimek
vpodzime at redhat.com
Thu Jul 31 09:02:06 UTC 2014
On Wed, 2014-07-30 at 13:46 -0400, David Shea wrote:
> Resolves: rhbz#1072355
> ---
> pyanaconda/ui/gui/spokes/langsupport.glade | 8 ++++++
> pyanaconda/ui/gui/spokes/langsupport.py | 39 +++++++++++++++++++++++++++---
> 2 files changed, 44 insertions(+), 3 deletions(-)
>
> diff --git a/pyanaconda/ui/gui/spokes/langsupport.glade b/pyanaconda/ui/gui/spokes/langsupport.glade
> index 7c994e6..389f514 100644
> --- a/pyanaconda/ui/gui/spokes/langsupport.glade
> +++ b/pyanaconda/ui/gui/spokes/langsupport.glade
> @@ -110,6 +110,14 @@
> </object>
> </child>
> <child>
> + <object class="GtkTreeViewColumn" id="highlighted">
> + <property name="title">highlighted</property>
> + <child>
> + <object class="GtkCellRendererPixbuf" id="highlightedRenderer"/>
> + </child>
> + </object>
> + </child>
> + <child>
> <object class="GtkTreeViewColumn" id="nativeName">
> <property name="title" translatable="yes">nativeName</property>
> <property name="expand">True</property>
> diff --git a/pyanaconda/ui/gui/spokes/langsupport.py b/pyanaconda/ui/gui/spokes/langsupport.py
> index 4625168..4c6b766 100644
> --- a/pyanaconda/ui/gui/spokes/langsupport.py
> +++ b/pyanaconda/ui/gui/spokes/langsupport.py
> @@ -21,7 +21,7 @@
> #
>
> # pylint: disable-msg=E0611
> -from gi.repository import Gtk, Pango
> +from gi.repository import Gtk, Pango, Gdk
> from pyanaconda.flags import flags
> from pyanaconda.i18n import _, N_
> from pyanaconda.iutil import strip_accents
> @@ -38,6 +38,11 @@ log = logging.getLogger("anaconda")
>
> __all__ = ["LangsupportSpoke"]
>
> +# #fdfbc0
> +# Sure would be nice if gdk_rgba_parse returned a new object instead of
> +# modifying an existing one.
> +_HIGHLIGHT_COLOR = Gdk.RGBA(red=0.992157, green=0.984314, blue=0.752941, alpha=1.0)
> +
> class LangsupportSpoke(LangLocaleHandler, NormalSpoke):
> builderObjects = ["languageStore", "languageStoreFilter", "localeStore", "langsupportWindow"]
> mainWidgetName = "langsupportWindow"
> @@ -78,6 +83,19 @@ class LangsupportSpoke(LangLocaleHandler, NormalSpoke):
> renderer = self.builder.get_object(rend)
> override_cell_property(column, renderer, "weight", self._mark_selected_language_bold)
>
> + # If a language has selected locales, highlight every column so that
> + # the row appears highlighted
> + for col in self._langView.get_columns():
> + for rend in col.get_cells():
> + override_cell_property(col, rend, "cell-background-rgba",
> + self._highlight_selected_language)
> +
> + # and also set an icon so that we don't depend on a color to convey information
> + highlightedColumn = self.builder.get_object("highlighted")
> + highlightedRenderer = self.builder.get_object("highlightedRenderer")
> + override_cell_property(highlightedColumn, highlightedRenderer,
> + "icon-name", self._render_lang_highlighted)
> +
> def apply(self):
> # store only additional langsupport locales
> self.data.lang.addsupport = sorted(self._selected_locales - set([self.data.lang.lang]))
> @@ -127,13 +145,28 @@ class LangsupportSpoke(LangLocaleHandler, NormalSpoke):
> else:
> return Pango.Weight.NORMAL.real
>
> + def _is_lang_selected(self, lang):
> + lang_locales = set(localization.get_language_locales(lang))
> + return not lang_locales.isdisjoint(self._selected_locales)
Very nice/neat/clever two lines of code!
--
Vratislav Podzimek
Anaconda Rider | RHCE | Red Hat, Inc. | Brno - Czech Republic
More information about the anaconda-patches
mailing list