Hello community, here is the log from the commit of package gpxsee for openSUSE:Factory checked in at 2017-05-03 15:57:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gpxsee (Old) and /work/SRC/openSUSE:Factory/.gpxsee.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gpxsee" Wed May 3 15:57:02 2017 rev:8 rq:492381 version:4.6 Changes: -------- --- /work/SRC/openSUSE:Factory/gpxsee/gpxsee.changes 2017-04-25 08:58:46.454117900 +0200 +++ /work/SRC/openSUSE:Factory/.gpxsee.new/gpxsee.changes 2017-05-03 15:57:05.849010700 +0200 @@ -1,0 +2,8 @@ +Tue May 2 00:15:47 CEST 2017 - tu...@cbox.cz + +- Update to version 4.6 + * Fixed broken PDF export/printing (broken map scale/waypoints + size). + * Improved path projection performance when an atlas is used. + +------------------------------------------------------------------- @@ -65 +73,2 @@ - * Fixed tile downloading issues (multiple downloads, redirect loop). + * Fixed tile downloading issues (multiple downloads, redirect + loop). @@ -127 +136,2 @@ - * Added support for proxy connections (using the system-defined proxy). + * Added support for proxy connections (using the system-defined + proxy). @@ -149,2 +159,4 @@ - * Fixed infinite download loop on HTTP redirects (and broken images). - * Fixed handling of GPX files with inconsistent track point entries. + * Fixed infinite download loop on HTTP redirects (and broken + images). + * Fixed handling of GPX files with inconsistent track point + entries. @@ -164 +176,2 @@ - * Fixed broken opening of non-ASCII named files as program arguments. + * Fixed broken opening of non-ASCII named files as program + arguments. Old: ---- GPXSee-4.5.tar.gz New: ---- GPXSee-4.6.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gpxsee.spec ++++++ --- /var/tmp/diff_new_pack.jxkMKP/_old 2017-05-03 15:57:06.924858818 +0200 +++ /var/tmp/diff_new_pack.jxkMKP/_new 2017-05-03 15:57:06.924858818 +0200 @@ -19,7 +19,7 @@ # See also http://en.opensuse.org/openSUSE:Specfile_guidelines Name: gpxsee -Version: 4.5 +Version: 4.6 Release: 1 Summary: GPS log files visualizing and analyzing tool License: GPL-3.0 ++++++ GPXSee-4.5.tar.gz -> GPXSee-4.6.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/gpxsee.pro new/GPXSee-4.6/gpxsee.pro --- old/GPXSee-4.5/gpxsee.pro 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/gpxsee.pro 2017-05-01 22:49:01.000000000 +0200 @@ -1,5 +1,5 @@ TARGET = GPXSee -VERSION = 4.5 +VERSION = 4.6 QT += core \ gui \ network diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/pkg/gpxsee.nsi new/GPXSee-4.6/pkg/gpxsee.nsi --- old/GPXSee-4.5/pkg/gpxsee.nsi 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/pkg/gpxsee.nsi 2017-05-01 22:49:01.000000000 +0200 @@ -5,7 +5,7 @@ ; The name of the installer Name "GPXSee" ; Program version -!define VERSION "4.5" +!define VERSION "4.6" ; The file to write OutFile "GPXSee-${VERSION}.exe" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/pkg/gpxsee64.nsi new/GPXSee-4.6/pkg/gpxsee64.nsi --- old/GPXSee-4.5/pkg/gpxsee64.nsi 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/pkg/gpxsee64.nsi 2017-05-01 22:49:01.000000000 +0200 @@ -5,7 +5,7 @@ ; The name of the installer Name "GPXSee" ; Program version -!define VERSION "4.5" +!define VERSION "4.6" ; The file to write OutFile "GPXSee-${VERSION}_x64.exe" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/pkg/maps.txt new/GPXSee-4.6/pkg/maps.txt --- old/GPXSee-4.5/pkg/maps.txt 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/pkg/maps.txt 2017-05-01 22:49:01.000000000 +0200 @@ -1,3 +1,4 @@ Open Topo Map https://a.tile.opentopomap.org/$z/$x/$y.png -Thunderforest http://tile.thunderforest.com/outdoors/$z/$x/$y.png Open Street Map http://tile.openstreetmap.org/$z/$x/$y.png +USGS Topo https://navigator.er.usgs.gov/tiles/tcr.cgi/$z/$x/$y.png +USGS Imagery https://navigator.er.usgs.gov/tiles/aerial_Imagery.cgi/$z/$x/$y diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/atlas.cpp new/GPXSee-4.6/src/atlas.cpp --- old/GPXSee-4.5/src/atlas.cpp 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/atlas.cpp 2017-05-01 22:49:01.000000000 +0200 @@ -118,6 +118,7 @@ _valid = false; _zoom = 0; _name = fi.dir().dirName(); + _ci = -1; _cz = -1; if (!isAtlas(tar, fileName)) return; @@ -201,6 +202,11 @@ { _zoom = 0; + if (br.isNull()) { + _zoom = _zooms.size() - 1; + return _zoom; + } + for (int z = 0; z < _zooms.count(); z++) { for (int i = _zooms.at(z).first; i <= _zooms.at(z).second; i++) { if (!_bounds.at(i).first.contains(_maps.at(i)->ll2pp(br.center()))) @@ -233,22 +239,33 @@ return _zoom; } -QPointF Atlas::ll2xy(const Coordinates &c) const +QPointF Atlas::ll2xy(const Coordinates &c) { - int idx = _zooms.at(_zoom).first; + QPointF pp; - for (int i = _zooms.at(_zoom).first; i <= _zooms.at(_zoom).second; i++) { - if (_bounds.at(i).first.contains(_maps.at(i)->ll2pp(c))) { - idx = i; - break; + if (_cz != _zoom) { + _ci = -1; + _cz = _zoom; + } + + if (_ci >= 0) + pp = _maps.at(_ci)->ll2pp(c); + if (_ci < 0 || !_bounds.at(_ci).first.contains(pp)) { + _ci = _zooms.at(_zoom).first; + for (int i = _zooms.at(_zoom).first; i <= _zooms.at(_zoom).second; i++) { + pp = _maps.at(i)->ll2pp(c); + if (_bounds.at(i).first.contains(pp)) { + _ci = i; + break; + } } } - QPointF p = _maps.at(idx)->ll2xy(c); - return p + _bounds.at(idx).second.topLeft(); + QPointF p = _maps.at(_ci)->pp2xy(pp); + return p + _bounds.at(_ci).second.topLeft(); } -Coordinates Atlas::xy2ll(const QPointF &p) const +Coordinates Atlas::xy2ll(const QPointF &p) { int idx = _zooms.at(_zoom).first; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/atlas.h new/GPXSee-4.6/src/atlas.h --- old/GPXSee-4.5/src/atlas.h 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/atlas.h 2017-05-01 22:49:01.000000000 +0200 @@ -24,8 +24,8 @@ qreal zoomIn(); qreal zoomOut(); - QPointF ll2xy(const Coordinates &c) const; - Coordinates xy2ll(const QPointF &p) const; + QPointF ll2xy(const Coordinates &c); + Coordinates xy2ll(const QPointF &p); void draw(QPainter *painter, const QRectF &rect); @@ -48,6 +48,8 @@ QVector<QPair<int, int> > _zooms; QVector<QPair<QRectF, QRectF> > _bounds; int _zoom; + + int _ci, _cz; }; #endif // ATLAS_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/emptymap.cpp new/GPXSee-4.6/src/emptymap.cpp --- old/GPXSee-4.5/src/emptymap.cpp 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/emptymap.cpp 2017-05-01 22:49:01.000000000 +0200 @@ -64,13 +64,13 @@ painter->fillRect(rect, Qt::white); } -QPointF EmptyMap::ll2xy(const Coordinates &c) const +QPointF EmptyMap::ll2xy(const Coordinates &c) { QPointF m = Mercator().ll2xy(c); return QPointF(m.x() / _scale, m.y() / -_scale); } -Coordinates EmptyMap::xy2ll(const QPointF &p) const +Coordinates EmptyMap::xy2ll(const QPointF &p) { QPointF m(p.x() * _scale, -p.y() * _scale); return Mercator().xy2ll(m); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/emptymap.h new/GPXSee-4.6/src/emptymap.h --- old/GPXSee-4.5/src/emptymap.h 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/emptymap.h 2017-05-01 22:49:01.000000000 +0200 @@ -20,8 +20,8 @@ qreal zoomIn(); qreal zoomOut(); - QPointF ll2xy(const Coordinates &c) const; - Coordinates xy2ll(const QPointF &p) const; + QPointF ll2xy(const Coordinates &c); + Coordinates xy2ll(const QPointF &p); void draw(QPainter *painter, const QRectF &rect); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/map.h new/GPXSee-4.6/src/map.h --- old/GPXSee-4.5/src/map.h 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/map.h 2017-05-01 22:49:01.000000000 +0200 @@ -25,8 +25,8 @@ virtual qreal zoomIn() = 0; virtual qreal zoomOut() = 0; - virtual QPointF ll2xy(const Coordinates &c) const = 0; - virtual Coordinates xy2ll(const QPointF &p) const = 0; + virtual QPointF ll2xy(const Coordinates &c) = 0; + virtual Coordinates xy2ll(const QPointF &p) = 0; virtual void draw(QPainter *painter, const QRectF &rect) = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/offlinemap.cpp new/GPXSee-4.6/src/offlinemap.cpp --- old/GPXSee-4.5/src/offlinemap.cpp 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/offlinemap.cpp 2017-05-01 22:49:01.000000000 +0200 @@ -348,11 +348,12 @@ } QString suffix = ii.suffix().toLower(); - if (suffix == "ozf3" || suffix == "ozf4") { + if (suffix == "ozf3" || suffix == "ozfx3" || suffix == "ozf4" + || suffix == "ozfx4") { _errorString = QString("%1: Obfuscated image files not supported") .arg(QFileInfo(_imgPath).fileName()); return false; - } else if (suffix == "ozf2") { + } else if (suffix == "ozf2" || suffix == "ozfx2") { _ozf.load(_imgPath); _size = _ozf.size(); } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/offlinemap.h new/GPXSee-4.6/src/offlinemap.h --- old/GPXSee-4.5/src/offlinemap.h 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/offlinemap.h 2017-05-01 22:49:01.000000000 +0200 @@ -31,9 +31,9 @@ qreal zoomIn() {return 1.0;} qreal zoomOut() {return 1.0;} - QPointF ll2xy(const Coordinates &c) const + QPointF ll2xy(const Coordinates &c) {return _transform.map(_projection->ll2xy(c));} - Coordinates xy2ll(const QPointF &p) const + Coordinates xy2ll(const QPointF &p) {return _projection->xy2ll(_inverted.map(p));} void draw(QPainter *painter, const QRectF &rect); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/onlinemap.cpp new/GPXSee-4.6/src/onlinemap.cpp --- old/GPXSee-4.5/src/onlinemap.cpp 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/onlinemap.cpp 2017-05-01 22:49:01.000000000 +0200 @@ -232,13 +232,13 @@ } } -QPointF OnlineMap::ll2xy(const Coordinates &c) const +QPointF OnlineMap::ll2xy(const Coordinates &c) { QPointF m = Mercator().ll2xy(c); return QPointF(m.x() / _scale, m.y() / -_scale); } -Coordinates OnlineMap::xy2ll(const QPointF &p) const +Coordinates OnlineMap::xy2ll(const QPointF &p) { QPointF m(p.x() * _scale, -p.y() * _scale); return Mercator().xy2ll(m); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/onlinemap.h new/GPXSee-4.6/src/onlinemap.h --- old/GPXSee-4.5/src/onlinemap.h 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/onlinemap.h 2017-05-01 22:49:01.000000000 +0200 @@ -23,8 +23,8 @@ qreal zoomIn(); qreal zoomOut(); - QPointF ll2xy(const Coordinates &c) const; - Coordinates xy2ll(const QPointF &p) const; + QPointF ll2xy(const Coordinates &c); + Coordinates xy2ll(const QPointF &p); void draw(QPainter *painter, const QRectF &rect); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/pathitem.cpp new/GPXSee-4.6/src/pathitem.cpp --- old/GPXSee-4.5/src/pathitem.cpp 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/pathitem.cpp 2017-05-01 22:49:01.000000000 +0200 @@ -12,20 +12,21 @@ : QGraphicsObject(parent) { Q_ASSERT(path.count() >= 2); + _path = path; _map = map; - - updatePainterPath(map); - updateShape(); + _digitalZoom = 0; _width = 3; QBrush brush(Qt::SolidPattern); _pen = QPen(brush, _width); + updatePainterPath(map); + updateShape(); + _marker = new MarkerItem(this); _marker->setPos(position(_path.at(0).distance())); - _marker->setFlag(QGraphicsItem::ItemIgnoresTransformations); - _md = _path.at(0).distance(); + _markerDistance = _path.at(0).distance(); setCursor(Qt::ArrowCursor); setAcceptHoverEvents(true); @@ -34,7 +35,7 @@ void PathItem::updateShape() { QPainterPathStroker s; - s.setWidth((_width + 1) * 1.0/scale()); + s.setWidth((_width + 1) * pow(2, -_digitalZoom)); _shape = s.createStroke(_painterPath); } @@ -71,7 +72,7 @@ updatePainterPath(map); updateShape(); - _marker->setPos(position(_md)); + _marker->setPos(position(_markerDistance)); } void PathItem::setColor(const QColor &color) @@ -85,7 +86,7 @@ prepareGeometryChange(); _width = width; - _pen.setWidthF(_width * 1.0/scale()); + _pen.setWidthF(_width * pow(2, -_digitalZoom)); updateShape(); } @@ -96,6 +97,17 @@ update(); } +void PathItem::setDigitalZoom(int zoom) +{ + prepareGeometryChange(); + + _digitalZoom = zoom; + _pen.setWidthF(_width * pow(2, -_digitalZoom)); + _marker->setScale(pow(2, -_digitalZoom)); + + updateShape(); +} + QPointF PathItem::position(qreal x) const { int low = 0; @@ -137,7 +149,7 @@ && distance <= _path.last().distance()) { _marker->setVisible(true); _marker->setPos(position(distance)); - _md = distance; + _markerDistance = distance; } else _marker->setVisible(false); } @@ -146,7 +158,7 @@ { Q_UNUSED(event); - _pen.setWidthF((_width + 1) * 1.0/scale()); + _pen.setWidthF((_width + 1) * pow(2, -_digitalZoom)); setZValue(zValue() + 1.0); update(); @@ -157,7 +169,7 @@ { Q_UNUSED(event); - _pen.setWidthF(_width * 1.0/scale()); + _pen.setWidthF(_width * pow(2, -_digitalZoom)); setZValue(zValue() - 1.0); update(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/pathitem.h new/GPXSee-4.6/src/pathitem.h --- old/GPXSee-4.5/src/pathitem.h 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/pathitem.h 2017-05-01 22:49:01.000000000 +0200 @@ -28,8 +28,7 @@ void setColor(const QColor &color); void setWidth(qreal width); void setStyle(Qt::PenStyle style); - - void showMarker(bool show) {_marker->setVisible(show);} + void setDigitalZoom(int zoom); public slots: void moveMarker(qreal distance); @@ -50,7 +49,8 @@ void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); Map *_map; - qreal _md; + qreal _markerDistance; + int _digitalZoom; qreal _width; QPen _pen; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/pathview.cpp new/GPXSee-4.6/src/pathview.cpp --- old/GPXSee-4.5/src/pathview.cpp 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/pathview.cpp 2017-05-01 22:49:01.000000000 +0200 @@ -50,7 +50,6 @@ _mapScale = new ScaleItem(); _mapScale->setZValue(2.0); - _mapScale->setFlag(QGraphicsItem::ItemIgnoresTransformations); _map = map; _poi = poi; @@ -97,9 +96,10 @@ _tracks.append(ti); _tr |= ti->path().boundingRect(); ti->setColor(_palette.nextColor()); - ti->setWidth(_trackWidth * pow(2, -_digitalZoom)); + ti->setWidth(_trackWidth); ti->setStyle(_trackStyle); ti->setVisible(_showTracks); + ti->setDigitalZoom(_digitalZoom); _scene->addItem(ti); addPOI(_poi->points(ti->path())); @@ -118,11 +118,12 @@ _routes.append(ri); _rr |= ri->path().boundingRect(); ri->setColor(_palette.nextColor()); - ri->setWidth(_routeWidth * pow(2, -_digitalZoom)); + ri->setWidth(_routeWidth); ri->setStyle(_routeStyle); ri->setVisible(_showRoutes); ri->showWaypoints(_showRouteWaypoints); ri->showWaypointLabels(_showWaypointLabels); + ri->setDigitalZoom(_digitalZoom); _scene->addItem(ri); addPOI(_poi->points(ri->path())); @@ -142,7 +143,7 @@ wi->setZValue(1); wi->showLabel(_showWaypointLabels); wi->setVisible(_showWaypoints); - wi->setFlag(QGraphicsItem::ItemIgnoresTransformations); + wi->setDigitalZoom(_digitalZoom); _scene->addItem(wi); } @@ -340,7 +341,7 @@ pi->setZValue(1); pi->showLabel(_showPOILabels); pi->setVisible(_showPOI); - pi->setFlag(QGraphicsItem::ItemIgnoresTransformations); + pi->setDigitalZoom(_digitalZoom); _scene->addItem(pi); _pois.insert(w, pi); @@ -372,23 +373,40 @@ void PathView::resetDigitalZoom() { - _digitalZoom = 0; + QHash<Waypoint, WaypointItem*>::const_iterator it; + _digitalZoom = 0; resetTransform(); - setTrackWidth(_trackWidth); - setRouteWidth(_routeWidth); + for (int i = 0; i < _tracks.size(); i++) + _tracks.at(i)->setDigitalZoom(0); + for (int i = 0; i < _routes.size(); i++) + _routes.at(i)->setDigitalZoom(0); + for (int i = 0; i < _waypoints.size(); i++) + _waypoints.at(i)->setDigitalZoom(0); + for (it = _pois.constBegin(); it != _pois.constEnd(); it++) + it.value()->setDigitalZoom(0); + + _mapScale->setDigitalZoom(0); } void PathView::digitalZoom(int zoom) { + QHash<Waypoint, WaypointItem*>::const_iterator it; + _digitalZoom += zoom; scale(pow(2, zoom), pow(2, zoom)); - setTrackWidth(_trackWidth); - setRouteWidth(_routeWidth); + for (int i = 0; i < _tracks.size(); i++) + _tracks.at(i)->setDigitalZoom(_digitalZoom); + for (int i = 0; i < _routes.size(); i++) + _routes.at(i)->setDigitalZoom(_digitalZoom); + for (int i = 0; i < _waypoints.size(); i++) + _waypoints.at(i)->setDigitalZoom(_digitalZoom); + for (it = _pois.constBegin(); it != _pois.constEnd(); it++) + it.value()->setDigitalZoom(_digitalZoom); - _mapScale->setResolution(_res * pow(2, -_digitalZoom)); + _mapScale->setDigitalZoom(_digitalZoom); } void PathView::zoom(int zoom, const QPoint &pos, const Coordinates &c) @@ -519,9 +537,7 @@ _tr = QRectF(); _rr = QRectF(); _wr = QRectF(); _wp = QPointF(); - _digitalZoom = 0; - resetTransform(); - + resetDigitalZoom(); resetCachedContent(); } @@ -608,7 +624,7 @@ _trackWidth = width; for (int i = 0; i < _tracks.count(); i++) - _tracks.at(i)->setWidth(width * pow(2, -_digitalZoom)); + _tracks.at(i)->setWidth(width); } void PathView::setRouteWidth(int width) @@ -616,7 +632,7 @@ _routeWidth = width; for (int i = 0; i < _routes.count(); i++) - _routes.at(i)->setWidth(width * pow(2, -_digitalZoom)); + _routes.at(i)->setWidth(width); } void PathView::setTrackStyle(Qt::PenStyle style) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/scaleitem.cpp new/GPXSee-4.6/src/scaleitem.cpp --- old/GPXSee-4.5/src/scaleitem.cpp 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/scaleitem.cpp 2017-05-01 22:49:01.000000000 +0200 @@ -1,3 +1,4 @@ +#include <cmath> #include <QPainter> #include "config.h" #include "misc.h" @@ -15,6 +16,7 @@ { _units = Metric; _res = 1.0; + _digitalZoom = 0; #ifndef Q_OS_MAC setCacheMode(QGraphicsItem::DeviceCoordinateCache); @@ -87,24 +89,26 @@ void ScaleItem::computeScale() { + qreal res = _res * pow(2, -_digitalZoom); + if (_units == Imperial) { - _length = niceNum((_res * M2FT * SCALE_WIDTH) / SEGMENTS, 1); + _length = niceNum((res * M2FT * SCALE_WIDTH) / SEGMENTS, 1); if (_length >= MIINFT) { - _length = niceNum((_res * M2FT * FT2MI * SCALE_WIDTH) / SEGMENTS, 1); - _width = (_length / (_res * M2FT * FT2MI)); + _length = niceNum((res * M2FT * FT2MI * SCALE_WIDTH) / SEGMENTS, 1); + _width = (_length / (res * M2FT * FT2MI)); _scale = true; } else { - _width = (_length / (_res * M2FT)); + _width = (_length / (res * M2FT)); _scale = false; } } else { - _length = niceNum((_res * SCALE_WIDTH) / SEGMENTS, 1); + _length = niceNum((res * SCALE_WIDTH) / SEGMENTS, 1); if (_length >= KMINM) { _length *= M2KM; - _width = (_length / (_res * M2KM)); + _width = (_length / (res * M2KM)); _scale = true; } else { - _width = (_length / _res); + _width = (_length / res); _scale = false; } } @@ -127,3 +131,14 @@ updateBoundingRect(); update(); } + +void ScaleItem::setDigitalZoom(int zoom) +{ + prepareGeometryChange(); + _digitalZoom = zoom; + computeScale(); + updateBoundingRect(); + update(); + + setScale(pow(2, -_digitalZoom)); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/scaleitem.h new/GPXSee-4.6/src/scaleitem.h --- old/GPXSee-4.5/src/scaleitem.h 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/scaleitem.h 2017-05-01 22:49:01.000000000 +0200 @@ -15,6 +15,7 @@ void setResolution(qreal res); void setUnits(enum Units units); + void setDigitalZoom(int zoom); private: void updateBoundingRect(); @@ -27,6 +28,8 @@ Units _units; bool _scale; + int _digitalZoom; + QRectF _boundingRect; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/waypointitem.cpp new/GPXSee-4.6/src/waypointitem.cpp --- old/GPXSee-4.5/src/waypointitem.cpp 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/waypointitem.cpp 2017-05-01 22:49:01.000000000 +0200 @@ -3,7 +3,6 @@ #include "config.h" #include "format.h" #include "tooltip.h" -#include "map.h" #include "waypointitem.h" @@ -46,11 +45,6 @@ setAcceptHoverEvents(true); } -void WaypointItem::setMap(Map *map) -{ - setPos(map->ll2xy(_waypoint.coordinates())); -} - void WaypointItem::updateShape() { QPainterPath p; @@ -106,14 +100,6 @@ */ } -/* -void WaypointItem::setScale(qreal scale) -{ - QPointF p = _map->ll2xy(_waypoint.coordinates()); - setPos(QPointF(p.x(), -p.y()) * scale); -} -*/ - void WaypointItem::setUnits(enum Units units) { setToolTip(toolTip(units)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.5/src/waypointitem.h new/GPXSee-4.6/src/waypointitem.h --- old/GPXSee-4.5/src/waypointitem.h 2017-04-23 18:15:08.000000000 +0200 +++ new/GPXSee-4.6/src/waypointitem.h 2017-05-01 22:49:01.000000000 +0200 @@ -1,11 +1,11 @@ #ifndef WAYPOINTITEM_H #define WAYPOINTITEM_H +#include <cmath> #include <QGraphicsItem> #include "waypoint.h" #include "units.h" - -class Map; +#include "map.h" class WaypointItem : public QGraphicsItem { @@ -14,9 +14,10 @@ const Waypoint &waypoint() const {return _waypoint;} - void setMap(Map *map); + void setMap(Map *map) {setPos(map->ll2xy(_waypoint.coordinates()));} void setUnits(Units units); void showLabel(bool show); + void setDigitalZoom(int zoom) {setScale(pow(2, -zoom));} QPainterPath shape() const {return _shape;} QRectF boundingRect() const {return _shape.boundingRect();} ++++++ debian.changelog ++++++ --- /var/tmp/diff_new_pack.jxkMKP/_old 2017-05-03 15:57:07.184822118 +0200 +++ /var/tmp/diff_new_pack.jxkMKP/_new 2017-05-03 15:57:07.184822118 +0200 @@ -1,3 +1,10 @@ +gpxsee (4.6) stable; urgency=low + + * Fixed broken PDF export/printing (broken map scale/waypoints size). + * Improved path projection performance when an atlas is used. + + -- Martin Tuma <tu...@cbox.cz> Tue, 02 May 2017 00:25:11 +0200 + gpxsee (4.5) stable; urgency=low * Added support for "runtime" loading of offline maps. ++++++ gpxsee.dsc ++++++ --- /var/tmp/diff_new_pack.jxkMKP/_old 2017-05-03 15:57:07.288807439 +0200 +++ /var/tmp/diff_new_pack.jxkMKP/_new 2017-05-03 15:57:07.288807439 +0200 @@ -1,9 +1,9 @@ Format: 1.0 Source: gpxsee -Version: 4.5 +Version: 4.6 Binary: gpxsee Maintainer: Martin Tuma <tu...@cbox.cz> Architecture: any Build-Depends: debhelper (>= 9), qtbase5-dev, qtbase5-dev-tools, qt5-qmake, qttools5-dev-tools, libqt5opengl5-dev Files: - 00000000000000000000000000000000 0 GPXSee-4.5.tar.gz + 00000000000000000000000000000000 0 GPXSee-4.6.tar.gz