From 6f439df95a55720071efec95373f1bfa2acc96fe Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sami=20R=C3=A4m=C3=B6?= Date: Thu, 12 Aug 2010 09:20:51 +0300 Subject: [PATCH] Fixed bug in MapEngine unit tests - MapEngine must have view attached before using the map, and the tests didn't have, so the test segfaulted --- src/map/mapengine.cpp | 2 +- src/map/mapengine.h | 2 ++ tests/map/mapengine/testmapengine.cpp | 15 +++++++++++++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/map/mapengine.cpp b/src/map/mapengine.cpp index 98a9504..ce2faf0 100644 --- a/src/map/mapengine.cpp +++ b/src/map/mapengine.cpp @@ -187,7 +187,7 @@ QRectF MapEngine::currentViewSceneRect() const const QPoint ONE_PIXEL = QPoint(1, 1); - QGraphicsView *view = m_mapScene->views().at(0); + QGraphicsView *view = m_mapScene->views().first(); QPointF sceneTopLeft = view->mapToScene(0, 0); QPoint viewBottomRight = QPoint(view->size().width(), view->size().height()) - ONE_PIXEL; QPointF sceneBottomRight = view->mapToScene(viewBottomRight); diff --git a/src/map/mapengine.h b/src/map/mapengine.h index f05254e..bf73850 100644 --- a/src/map/mapengine.h +++ b/src/map/mapengine.h @@ -50,6 +50,8 @@ class User; * Logic for controlling map functionality. Does also include static methods for * converting coordinates. * + * NOTE: MapEngine must have a view attached before using it! + * * @author Sami Rämö - sami.ramo (at) ixonos.com * @author Jussi Laitinen - jussi.laitinen (at) ixonos.com * @author Pekka Nissinen - pekka.nissinen (at) ixonos.com diff --git a/tests/map/mapengine/testmapengine.cpp b/tests/map/mapengine/testmapengine.cpp index 67d3407..1b5d78a 100644 --- a/tests/map/mapengine/testmapengine.cpp +++ b/tests/map/mapengine/testmapengine.cpp @@ -20,6 +20,7 @@ */ #include +#include #include #include "common.h" @@ -43,9 +44,9 @@ private slots: void convertTileNumberToSceneCoordinate_data(); void setLocationNewTilesCount(); void setLocationRemovedTilesCount(); - void zoomOutRemovedTilesCount(); - void zoomInRemovedTilesCount(); void usingLastLocation(); + void zoomInRemovedTilesCount(); + void zoomOutRemovedTilesCount(); signals: void setCenterPosition(SceneCoordinate); // a way to call a private slot @@ -81,6 +82,8 @@ void TestMapEngine::convertTileNumberToSceneCoordinate_data() void TestMapEngine::setLocationNewTilesCount() { MapEngine engine; + QGraphicsView view; + view.setScene(engine.scene()); engine.viewResized(QSize(800, 480)); connect(this, SIGNAL(setCenterPosition(SceneCoordinate)), &engine, SLOT(setCenterPosition(SceneCoordinate))); @@ -109,6 +112,8 @@ void TestMapEngine::setLocationNewTilesCount() void TestMapEngine::setLocationRemovedTilesCount() { MapEngine engine; + QGraphicsView view; + view.setScene(engine.scene()); engine.viewResized(QSize(800, 480)); connect(this, SIGNAL(setCenterPosition(SceneCoordinate)), &engine, SLOT(setCenterPosition(SceneCoordinate))); @@ -133,6 +138,8 @@ void TestMapEngine::setLocationRemovedTilesCount() void TestMapEngine::zoomInRemovedTilesCount() { MapEngine engine; + QGraphicsView view; + view.setScene(engine.scene()); engine.viewResized(QSize(800, 480)); connect(this, SIGNAL(setCenterPosition(SceneCoordinate)), &engine, SLOT(setCenterPosition(SceneCoordinate))); @@ -156,6 +163,8 @@ void TestMapEngine::zoomInRemovedTilesCount() void TestMapEngine::zoomOutRemovedTilesCount() { MapEngine engine; + QGraphicsView view; + view.setScene(engine.scene()); engine.viewResized(QSize(800, 480)); connect(this, SIGNAL(setCenterPosition(SceneCoordinate)), &engine, SLOT(setCenterPosition(SceneCoordinate))); @@ -181,6 +190,8 @@ void TestMapEngine::usingLastLocation() { // Create mapengine and start monitoring zoomLevelChanged-signal MapEngine *mapengine = new MapEngine; + QGraphicsView view; + view.setScene(mapengine->scene()); QSignalSpy mapEngineSpy(mapengine, SIGNAL(zoomLevelChanged(int))); connect(this, SIGNAL(setCenterPosition(SceneCoordinate)), mapengine, SLOT(setCenterPosition(SceneCoordinate))); -- 1.7.9.5