[meld] preferences: Don't store translated column IDs (bgo#731428)



commit 0ae01f384b9117345e84feb3f5057292d1fd7eb8
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sat Jun 14 07:10:17 2014 +1000

    preferences: Don't store translated column IDs (bgo#731428)

 data/ui/EditableList.ui |    6 ++++--
 meld/preferences.py     |   26 +++++++++++++++++---------
 2 files changed, 21 insertions(+), 11 deletions(-)
---
diff --git a/data/ui/EditableList.ui b/data/ui/EditableList.ui
index 0bd158c..b80829a 100644
--- a/data/ui/EditableList.ui
+++ b/data/ui/EditableList.ui
@@ -6,7 +6,9 @@
     <columns>
       <!-- column-name Active -->
       <column type="gboolean"/>
-      <!-- column-name Name -->
+      <!-- column-name ID -->
+      <column type="gchararray"/>
+      <!-- column-name Label -->
       <column type="gchararray"/>
     </columns>
     <signal name="row-inserted" handler="_update_sensitivity" swapped="no"/>
@@ -59,7 +61,7 @@
                         <child>
                           <object class="GtkCellRendererText" id="cr_name"/>
                           <attributes>
-                            <attribute name="text">1</attribute>
+                            <attribute name="text">2</attribute>
                           </attributes>
                         </child>
                       </object>
diff --git a/meld/preferences.py b/meld/preferences.py
index acb192a..f3ead6d 100644
--- a/meld/preferences.py
+++ b/meld/preferences.py
@@ -78,11 +78,11 @@ class FilterList(ListWidget):
 
 class ColumnList(ListWidget):
 
-    available_columns = set((
-        "size",
-        "modification time",
-        "permissions",
-    ))
+    available_columns = {
+        "size": _("Size"),
+        "modification time": _("Modification time"),
+        "permissions": _("Permissions"),
+    }
 
     def __init__(self, key):
         ListWidget.__init__(self, "EditableList.ui",
@@ -92,10 +92,18 @@ class ColumnList(ListWidget):
 
         # Unwrap the variant
         prefs_columns = [(k, v) for k, v in settings.get_value(self.key)]
-        missing = self.available_columns - set([c[0] for c in prefs_columns])
-        prefs_columns.extend([(m, False) for m in missing])
-        for column_name, visibility in prefs_columns:
-            self.model.append([visibility, _(column_name.capitalize())])
+        column_vis = {}
+        column_order = {}
+        for sort_key, (column_name, visibility) in enumerate(prefs_columns):
+            column_vis[column_name] = bool(int(visibility))
+            column_order[column_name] = sort_key
+
+        columns = [(column_vis.get(name, True), name, label) for
+                   name, label in self.available_columns.items()]
+        columns = sorted(columns, key=lambda c: column_order.get(c[1], 0))
+
+        for visibility, name, label in columns:
+            self.model.append([visibility, name, label])
 
         for signal in ('row-changed', 'row-deleted', 'row-inserted',
                        'rows-reordered'):


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]