[PATCH 3/3] Add a separator under the default language on the welcome screen.
Chris Lumens
clumens at redhat.com
Thu Apr 25 18:58:00 UTC 2013
---
pyanaconda/ui/gui/spokes/welcome.glade | 2 ++
pyanaconda/ui/gui/spokes/welcome.py | 17 +++++++++++++++--
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/welcome.glade b/pyanaconda/ui/gui/spokes/welcome.glade
index 7196133..f0a4602 100644
--- a/pyanaconda/ui/gui/spokes/welcome.glade
+++ b/pyanaconda/ui/gui/spokes/welcome.glade
@@ -193,6 +193,8 @@
<column type="gchararray"/>
<!-- column-name langSetting -->
<column type="gchararray"/>
+ <!-- column-name separator -->
+ <column type="gboolean"/>
</columns>
</object>
<object class="GtkTreeModelFilter" id="languageStoreFilter">
diff --git a/pyanaconda/ui/gui/spokes/welcome.py b/pyanaconda/ui/gui/spokes/welcome.py
index fadd2ec..63da277 100644
--- a/pyanaconda/ui/gui/spokes/welcome.py
+++ b/pyanaconda/ui/gui/spokes/welcome.py
@@ -140,6 +140,9 @@ class LanguageMixIn(object):
else:
return False
+ def _row_is_separator(self, model, itr, *args):
+ return model[itr][3]
+
def initialize(self):
store = self.builder.get_object("languageStore")
self._languageStoreFilter = self.builder.get_object("languageStoreFilter")
@@ -147,6 +150,9 @@ class LanguageMixIn(object):
self._selection = self.builder.get_object(self._selectionName)
self._view = self.builder.get_object(self._viewName)
+ # We need to tell the view whether something is a separator or not.
+ self._view.set_row_separator_func(self._row_is_separator, None)
+
# We can use the territory from geolocation here
# to preselect the translation, when it's available.
territory = geoloc.get_territory_code()
@@ -192,6 +198,10 @@ class LanguageMixIn(object):
store = store.get_model()
store.move_after(itr, None)
+ # And then we add a separator after the default chosen language.
+ newItr = store.insert(1)
+ store.set(newItr, 0, "", 1, "", 2, "", 3, True)
+
self._languageStoreFilter.set_visible_func(self._matchesEntry, None)
def _retranslate_one(self, widgetName):
@@ -249,7 +259,7 @@ class LanguageMixIn(object):
self._languageStoreFilter.refilter()
def _addLanguage(self, store, native, english, setting):
- store.append(['<span lang="%s">%s</span>' % (re.sub('\..*', '', setting), native), english, setting])
+ store.append(['<span lang="%s">%s</span>' % (re.sub('\..*', '', setting), native), english, setting, False])
def _matchesEntry(self, model, itr, *args):
# Need to strip out the pango markup before attempting to match.
@@ -273,7 +283,10 @@ class LanguageMixIn(object):
def _selectLanguage(self, store, language):
itr = store.get_iter_first()
- while itr and language not in expand_langs(store[itr][2]):
+
+ # store[itr][3] is True if this row is a separator in the view, so we
+ # want to skip those.
+ while itr and not store[itr][3] and language not in expand_langs(store[itr][2]):
itr = store.iter_next(itr)
# If we were provided with an unsupported language, just use the default.
--
1.8.1.2
More information about the anaconda-patches
mailing list