[#3124|GTKUI] Fix comparing Name str if value is None

The original fix was not correct as the strcoll function cannot
accept None only strings. This fix ensures that the value is an
empty string if None for comparison.
This commit is contained in:
Calum Lind 2017-10-29 11:12:56 +00:00
commit 1730230244

View file

@ -30,17 +30,17 @@ CTRL_ALT_MASK = CONTROL_MASK | MOD1_MASK
def str_nocase_sort(model, iter1, iter2, data): def str_nocase_sort(model, iter1, iter2, data):
""" """Sort string column data using ISO 14651 in lowercase.
Sort string column data with locale.strcoll which (allegedly) uses ISO 14651.
Uses locale.strcoll which (allegedly) uses ISO 14651. Compares first
value with second and returns -1, 0, 1 for where it should be placed.
""" """
try: v1 = model[iter1][data]
v1 = model[iter1][data].lower() v2 = model[iter2][data]
v2 = model[iter2][data].lower() # Catch any values of None from model.
except AttributeError: v1 = v1.lower() if v1 else ''
# Catch None type for value. v2 = v2.lower() if v2 else ''
v1 = model[iter1][data]
v2 = model[iter2][data]
return strcoll(v1, v2) return strcoll(v1, v2)