From 49a0830d2958316477a95af10bf188e41ef8b50c Mon Sep 17 00:00:00 2001 From: Nick Hall Date: Sat, 19 Jun 2010 17:41:28 +0000 Subject: [PATCH] 4076: Fix sort order when different latitude/longitude formats are used svn: r15581 --- src/gui/views/treemodels/placemodel.py | 35 ++++---------------------- 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/src/gui/views/treemodels/placemodel.py b/src/gui/views/treemodels/placemodel.py index 9b3be44a5..5de339774 100644 --- a/src/gui/views/treemodels/placemodel.py +++ b/src/gui/views/treemodels/placemodel.py @@ -49,6 +49,7 @@ import gtk import const import ToolTips import Utils +from PlaceUtils import conv_lat_lon from gui.views.treemodels.flatbasemodel import FlatBaseModel from gui.views.treemodels.treebasemodel import TreeBaseModel @@ -124,43 +125,17 @@ class PlaceBaseModel(object): def column_place_name(self, data): return unicode(data[2]) - def __format_degrees(self, angle, sign_str): - """ - Format a decimal as degrees, minutes and seconds. - If the value is not a decimal leave it unformatted. - """ - try: - angle = float(angle) - except ValueError: - return angle - - if angle >= 0: - sign = sign_str[0] - else: - sign = sign_str[1] - seconds = abs(int(angle * 60 * 60)) - minutes = seconds / 60 - seconds %= 60 - degrees = minutes / 60 - minutes %= 60 - - string = unicode(degrees) + u'\u00b0 ' + \ - unicode(minutes) + u'\u2032 ' + \ - unicode(seconds) + u'\u2033 ' + unicode(sign) - - return string - def column_longitude(self, data): - return self.__format_degrees(data[3], _('EW')) + return conv_lat_lon('0', data[3], format='DEG')[1] def column_latitude(self, data): - return self.__format_degrees(data[4], _('NS')) + return conv_lat_lon(data[4], '0', format='DEG')[0] def sort_longitude(self, data): - return unicode(data[3]) + return conv_lat_lon('0', data[3], format='D.D8')[1] if data[3] else u'' def sort_latitude(self, data): - return unicode(data[4]) + return conv_lat_lon(data[4], '0', format='D.D8')[0] if data[4] else u'' def column_id(self, data): return unicode(data[1])