From 58b44d33a7150430436c5aee7af699aefccc33b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Tue, 9 Oct 2018 22:46:28 +0200 Subject: [PATCH] Fixed broken bounds handling --- src/map/onlinemap.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/map/onlinemap.cpp b/src/map/onlinemap.cpp index b64447f6..db84de39 100644 --- a/src/map/onlinemap.cpp +++ b/src/map/onlinemap.cpp @@ -86,17 +86,15 @@ qreal OnlineMap::tileSize() const void OnlineMap::draw(QPainter *painter, const QRectF &rect, Flags flags) { qreal scale = OSM::zoom2scale(_zoom, TILE_SIZE); - QRectF b(bounds()); QPoint tile = OSM::mercator2tile(QPointF(rect.topLeft().x() * scale, -rect.topLeft().y() * scale) * coordinatesRatio(), _zoom); QPointF tl(floor(rect.left() / tileSize()) * tileSize(), floor(rect.top() / tileSize()) * tileSize()); - QSizeF s(qMin(rect.right() - tl.x(), b.width()), - qMin(rect.bottom() - tl.y(), b.height())); - int width = qCeil(s.width() / tileSize()); - int height = qCeil(s.height() / tileSize()); + QSizeF s(rect.right() - tl.x(), rect.bottom() - tl.y()); + int width = _zoom ? qCeil(s.width() / tileSize()) : 1; + int height = _zoom ? qCeil(s.height() / tileSize()) : 1; QVector tiles; tiles.reserve(width * height);