Skip to content

Commit 0ae01f3

Browse files
committed
preferences: Don't store translated column IDs (bgo#731428)
1 parent 22c54cb commit 0ae01f3

2 files changed

Lines changed: 21 additions & 11 deletions

File tree

data/ui/EditableList.ui

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
<columns>
77
<!-- column-name Active -->
88
<column type="gboolean"/>
9-
<!-- column-name Name -->
9+
<!-- column-name ID -->
10+
<column type="gchararray"/>
11+
<!-- column-name Label -->
1012
<column type="gchararray"/>
1113
</columns>
1214
<signal name="row-inserted" handler="_update_sensitivity" swapped="no"/>
@@ -59,7 +61,7 @@
5961
<child>
6062
<object class="GtkCellRendererText" id="cr_name"/>
6163
<attributes>
62-
<attribute name="text">1</attribute>
64+
<attribute name="text">2</attribute>
6365
</attributes>
6466
</child>
6567
</object>

meld/preferences.py

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,11 @@ def _update_filter_string(self, *args):
7878

7979
class ColumnList(ListWidget):
8080

81-
available_columns = set((
82-
"size",
83-
"modification time",
84-
"permissions",
85-
))
81+
available_columns = {
82+
"size": _("Size"),
83+
"modification time": _("Modification time"),
84+
"permissions": _("Permissions"),
85+
}
8686

8787
def __init__(self, key):
8888
ListWidget.__init__(self, "EditableList.ui",
@@ -92,10 +92,18 @@ def __init__(self, key):
9292

9393
# Unwrap the variant
9494
prefs_columns = [(k, v) for k, v in settings.get_value(self.key)]
95-
missing = self.available_columns - set([c[0] for c in prefs_columns])
96-
prefs_columns.extend([(m, False) for m in missing])
97-
for column_name, visibility in prefs_columns:
98-
self.model.append([visibility, _(column_name.capitalize())])
95+
column_vis = {}
96+
column_order = {}
97+
for sort_key, (column_name, visibility) in enumerate(prefs_columns):
98+
column_vis[column_name] = bool(int(visibility))
99+
column_order[column_name] = sort_key
100+
101+
columns = [(column_vis.get(name, True), name, label) for
102+
name, label in self.available_columns.items()]
103+
columns = sorted(columns, key=lambda c: column_order.get(c[1], 0))
104+
105+
for visibility, name, label in columns:
106+
self.model.append([visibility, name, label])
99107

100108
for signal in ('row-changed', 'row-deleted', 'row-inserted',
101109
'rows-reordered'):

0 commit comments

Comments
 (0)