@@ -78,11 +78,11 @@ def _update_filter_string(self, *args):
7878
7979class 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