From ee7e632b94eac5e3a96d06d74a1faec94ba12a74 Mon Sep 17 00:00:00 2001 From: bendikro Date: Fri, 11 Dec 2015 18:01:54 +0000 Subject: [PATCH] [#2783] [GTKUI] Case insensitive sort for name column --- deluge/ui/gtkui/listview.py | 4 ++-- deluge/ui/gtkui/torrentview.py | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/deluge/ui/gtkui/listview.py b/deluge/ui/gtkui/listview.py index bf150ebe4..3dadd81aa 100644 --- a/deluge/ui/gtkui/listview.py +++ b/deluge/ui/gtkui/listview.py @@ -611,7 +611,7 @@ class ListView: def add_texticon_column(self, header, col_types=None, sortid=1, hidden=False, position=None, status_field=None, - column_type="texticon", function=None, + column_type="texticon", function=None, sort_func=None, tooltip=None, default=True, default_sort=False): """Adds a texticon column to the listview.""" if col_types is None: @@ -622,7 +622,7 @@ class ListView: self.add_column(header, (render1, render2), col_types, hidden, position, status_field, sortid, column_type=column_type, function=function, pixbuf=0, text=1, tooltip=tooltip, - default=default, default_sort=default_sort) + sort_func=sort_func, default=default, default_sort=default_sort) return True diff --git a/deluge/ui/gtkui/torrentview.py b/deluge/ui/gtkui/torrentview.py index a03c0a450..a01ad8db1 100644 --- a/deluge/ui/gtkui/torrentview.py +++ b/deluge/ui/gtkui/torrentview.py @@ -14,6 +14,7 @@ import logging import gobject import gtk import pygtk +from locale import strcoll from twisted.internet import reactor import deluge.component as component @@ -27,6 +28,16 @@ pygtk.require('2.0') log = logging.getLogger(__name__) +def str_nocase_sort(model, iter1, iter2, data): + """ + Sort string column data with locale.strcoll which (allegedly) uses ISO 14651. + + """ + v1 = model[iter1][data].lower() + v2 = model[iter2][data].lower() + return strcoll(v1, v2) + + def queue_peer_seed_sort_function(v1, v2): if v1 == v2: return 0