• R/O
  • SSH

gpxviewer: Commit

GPX Viewer repository


Commit MetaInfo

Revision9baed4b20096044986e91fa01a4655694f7f7464 (tree)
Time2019-11-09 21:02:00
AuthorSergey Salnikov
CommiterSergey Salnikov

Log Message

Fixed parsing unusual GPX files.

Change Summary

Incremental Difference

diff -r 9ccb73776b95 -r 9baed4b20096 gpxviewer/gpxmainwindow.py
--- a/gpxviewer/gpxmainwindow.py Sat Oct 19 17:01:03 2019 +0700
+++ b/gpxviewer/gpxmainwindow.py Sat Nov 09 19:02:00 2019 +0700
@@ -703,7 +703,7 @@
703703 break
704704 if n < 2:
705705 for j in range(TheDocument.trkmodel.rowCount()):
706- if TheDocument.trkmodel.index(j, 0).data(gpx.IncludeRole) and TheDocument.trkmodel.index(i, gpx.TRKTIME).data() != '':
706+ if TheDocument.trkmodel.index(j, 0).data(gpx.IncludeRole) and TheDocument.trkmodel.index(j, gpx.TRKTIME).data() != '':
707707 n = 2
708708 break
709709 if n < 2:
diff -r 9ccb73776b95 -r 9baed4b20096 gpxviewer/gpxmodel.py
--- a/gpxviewer/gpxmodel.py Sat Oct 19 17:01:03 2019 +0700
+++ b/gpxviewer/gpxmodel.py Sat Nov 09 19:02:00 2019 +0700
@@ -128,7 +128,7 @@
128128 elif self.markerStates[index.row()]:
129129 return self.MarkerColor
130130 else:
131- return QGuiApplication.palette().base().color()
131+ return Qt.transparent
132132 elif role == Qt.FontRole:
133133 font = QFont()
134134 if self.splitStates[index.row()]:
@@ -354,12 +354,13 @@
354354 point[NAME] = name.strip() if name is not None else ''
355355 point[LAT] = float(p.get('lat'))
356356 point[LON] = float(p.get('lon'))
357- point[ALT] = int(round(float(p.findtext('{%(ns)s}ele' % ns))))
357+ ele = p.findtext('{%(ns)s}ele' % ns)
358+ point[ALT] = int(round(float(ele))) if ele is not None else 0
358359 self.minalt = min(self.minalt, point[ALT])
359360 self.maxalt = max(self.maxalt, point[ALT])
360361 time = p.findtext('{%(ns)s}time' % ns)
361362 if time is not None:
362- dt = datetime.strptime(time.strip(), '%Y-%m-%dT%H:%M:%SZ')
363+ dt = datetime.strptime(time[:19].strip(), '%Y-%m-%dT%H:%M:%S')
363364 point[TIME] = dt
364365 else:
365366 point[TIME] = ''
@@ -407,12 +408,13 @@
407408 point = {}
408409 point[LAT] = float(p.get('lat'))
409410 point[LON] = float(p.get('lon'))
410- point[ALT] = int(round(float(p.findtext('{%(ns)s}ele' % ns))))
411+ ele = p.findtext('{%(ns)s}ele' % ns)
412+ point[ALT] = int(round(float(ele))) if ele is not None else 0
411413 self.minalt = min(self.minalt, point[ALT])
412414 self.maxalt = max(self.maxalt, point[ALT])
413415 time = p.findtext('{%(ns)s}time' % ns)
414416 if time is not None:
415- dt = datetime.strptime(time.strip(), '%Y-%m-%dT%H:%M:%SZ')
417+ dt = datetime.strptime(time[:19].strip(), '%Y-%m-%dT%H:%M:%S')
416418 point[TIME] = dt
417419 else:
418420 point[TIME] = ''
Show on old repository browser