enabled debug texts from pro-file.
authorVille Tiensuu <ville.tiensuu@ixonos.com>
Wed, 5 May 2010 06:17:29 +0000 (09:17 +0300)
committerVille Tiensuu <ville.tiensuu@ixonos.com>
Wed, 5 May 2010 06:17:29 +0000 (09:17 +0300)
commented pretty functions from mapengine.cpp
improved friends location update in mapengine.cpp

src/map/mapengine.cpp
src/src.pro

index 4b68360..d2089d8 100644 (file)
@@ -74,14 +74,14 @@ void MapEngine::init()
 
 void MapEngine::setViewLocation(QPointF latLonCoordinate)
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     setLocation(convertLatLonToSceneCoordinate(latLonCoordinate));
 }
 
 void MapEngine::mapImageReceived(int zoomLevel, int x, int y, const QPixmap &image)
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     QString hashKey = tilePath(zoomLevel, x, y);
     if (!m_mapScene->isTileInScene(hashKey)) {
@@ -99,21 +99,21 @@ void MapEngine::mapImageReceived(int zoomLevel, int x, int y, const QPixmap &ima
 
 QGraphicsScene* MapEngine::scene()
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     return m_mapScene;
 }
 
 int MapEngine::tileMaxValue(int zoomLevel)
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     return (1 << zoomLevel) - 1;
 }
 
 QRect MapEngine::calculateTileGrid(QPoint sceneCoordinate)
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     QPoint tileCoordinate = convertSceneCoordinateToTileNumber(m_zoomLevel, sceneCoordinate);
     int gridWidth = (m_viewSize.width()/TILE_SIZE_X + 1) + (GRID_PADDING*2);
@@ -128,14 +128,14 @@ QRect MapEngine::calculateTileGrid(QPoint sceneCoordinate)
 
 void MapEngine::alignImmovableItems(QPoint viewTopLeft)
 {
-    qDebug() << __PRETTY_FUNCTION__ << "viewTopLeft:" << viewTopLeft;
+   // qDebug() << __PRETTY_FUNCTION__ << "viewTopLeft:" << viewTopLeft;
 
     m_mapZoomPanel->setPos(viewTopLeft);
 }
 
 void MapEngine::setLocation(QPoint sceneCoordinate)
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     m_sceneCoordinate = sceneCoordinate;
     emit locationChanged(m_sceneCoordinate);
@@ -148,7 +148,7 @@ void MapEngine::setLocation(QPoint sceneCoordinate)
 
 bool MapEngine::isCenterTileChanged(QPoint sceneCoordinate)
 {
-    qDebug() << __PRETTY_FUNCTION__;
+   // qDebug() << __PRETTY_FUNCTION__;
 
     QPoint centerTile = convertSceneCoordinateToTileNumber(m_zoomLevel, sceneCoordinate);
     QPoint temp = m_centerTile;
@@ -159,7 +159,7 @@ bool MapEngine::isCenterTileChanged(QPoint sceneCoordinate)
 
 void MapEngine::getTiles(QPoint sceneCoordinate)
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     m_viewTilesGrid = calculateTileGrid(sceneCoordinate);
     updateViewTilesSceneRect();
@@ -195,7 +195,7 @@ void MapEngine::getTiles(QPoint sceneCoordinate)
 
 void MapEngine::updateViewTilesSceneRect()
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     const QPoint ONE_TILE = QPoint(1, 1);
     const QPoint ONE_PIXEL = QPoint(1, 1);
@@ -212,7 +212,7 @@ void MapEngine::updateViewTilesSceneRect()
 
 void MapEngine::viewResized(const QSize &size)
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     m_viewSize = size;
     getTiles(m_sceneCoordinate);
@@ -221,7 +221,7 @@ void MapEngine::viewResized(const QSize &size)
 
 void MapEngine::viewZoomFinished()
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     if (m_zoomedIn) {
         m_zoomedIn = false;
@@ -231,7 +231,7 @@ void MapEngine::viewZoomFinished()
 
 void MapEngine::zoomIn()
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     if (m_zoomLevel < MAX_MAP_ZOOM_LEVEL) {
         m_zoomLevel++;
@@ -246,7 +246,7 @@ void MapEngine::zoomIn()
 
 void MapEngine::zoomOut()
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     if (m_zoomLevel > MIN_VIEW_ZOOM_LEVEL) {
         m_zoomLevel--;
@@ -260,7 +260,7 @@ void MapEngine::zoomOut()
 
 QString MapEngine::tilePath(int zoomLevel, int x, int y)
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     QString tilePathString(QString::number(zoomLevel) + "/");
     tilePathString.append(QString::number(x) + "/");
@@ -271,7 +271,7 @@ QString MapEngine::tilePath(int zoomLevel, int x, int y)
 
 QPoint MapEngine::convertSceneCoordinateToTileNumber(int zoomLevel, QPoint sceneCoordinate)
 {
-    qDebug() << __PRETTY_FUNCTION__;
+  //  qDebug() << __PRETTY_FUNCTION__;
 
     int pow = 1 << (MAX_MAP_ZOOM_LEVEL - zoomLevel);
     int x = static_cast<int>(sceneCoordinate.x() / (TILE_SIZE_X*pow));
@@ -282,7 +282,7 @@ QPoint MapEngine::convertSceneCoordinateToTileNumber(int zoomLevel, QPoint scene
 
 QPoint MapEngine::convertTileNumberToSceneCoordinate(int zoomLevel, QPoint tileNumber)
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     int pow = 1 << (MAX_MAP_ZOOM_LEVEL - zoomLevel);
     int x = tileNumber.x() * TILE_SIZE_X * pow;
@@ -293,7 +293,7 @@ QPoint MapEngine::convertTileNumberToSceneCoordinate(int zoomLevel, QPoint tileN
 
 QPoint MapEngine::convertLatLonToSceneCoordinate(QPointF latLonCoordinate)
 {
-    qDebug() << __PRETTY_FUNCTION__;
+    //qDebug() << __PRETTY_FUNCTION__;
 
     qreal longitude = latLonCoordinate.x();
     qreal latitude = latLonCoordinate.y();
@@ -314,7 +314,7 @@ QPoint MapEngine::convertLatLonToSceneCoordinate(QPointF latLonCoordinate)
 
 void MapEngine::receiveOwnLocation(User *user)
 {
-    qDebug() << __PRETTY_FUNCTION__;
+   // qDebug() << __PRETTY_FUNCTION__;
     m_ownLocation->setPosition(user->coordinates());
     m_mapScene->addItem(m_ownLocation);
 }
@@ -322,16 +322,67 @@ void MapEngine::receiveOwnLocation(User *user)
 void MapEngine::receiveFriendLocations(QList<User *> &friendsList)
 {
     qDebug() << __PRETTY_FUNCTION__;
-    qDeleteAll(m_friendsLocations.begin(),m_friendsLocations.end());
-    m_friendsLocations.clear();
+    //qDeleteAll(m_friendsLocations.begin(), m_friendsLocations.end());
+    //m_friendsLocations.clear();
+
+
+    static int friendReceiveCounter = 0;
+
+    qDebug() << friendReceiveCounter << "TIME IN THIS FUNCTION";
+
+    if (friendReceiveCounter == 0){
+        friendReceiveCounter++;
+
+        for(int i=0; i<friendsList.count(); i++) {
+            FriendLocationItem *friendLocation
+                    = new FriendLocationItem(friendsList.at(i)->profileImage(),
+                                             friendsList.at(i)->coordinates(),0);
+
+            friendLocation->setUserId(friendsList.at(i)->userId());
+            m_friendsLocations.append(friendLocation);
+            m_mapScene->addItem(friendLocation);
+        }
+
+    }
+
+    else {
+        friendReceiveCounter++;
+        QList<int> currentFriendList;
+
+        //remember to check Qt style about inner loops
+
+        //finds users that have still location available.
+        //stores their index in to currentFriendlist
+        //check if their location is changed
+        //set new location to changed items
+        for(int i=0; i<friendsList.count(); i++) {
+            qDebug() << "friendsList Count : " << friendsList.count();
+
+            for(int j=0; j<m_friendsLocations.count(); j++){
+                qDebug() << "m_friendsLocations Count : " << m_friendsLocations.count();
 
-    for(int i=0; i<friendsList.count(); i++) {
-        FriendLocationItem *friendLocation
-                = new FriendLocationItem(friendsList.at(i)->profileImage(),
-                                         friendsList.at(i)->coordinates(),0);
+                if (m_friendsLocations.at(j)->userId() == friendsList.at(i)->userId()){
+                    currentFriendList.append(j);
+                    qDebug() << "i: " << i;
+                    qDebug() << "j: " << j;
 
-        friendLocation->setUserId(friendsList.at(i)->userId());
-        m_friendsLocations.append(friendLocation);
-        m_mapScene->addItem(friendLocation);
+                    if (m_friendsLocations.at(j)->position()
+                        != convertLatLonToSceneCoordinate(friendsList.at(i)->coordinates())){
+
+                        m_friendsLocations.at(j)->setPosition(friendsList.at(i)->coordinates());
+                    }
+                }
+            }
+        }
+
+        // now numbers that are not on the currentFriendList needs to be removed from scene.
+        // users that are not available are also removed from m_friendLocations
+        int m_friendsLocationsOriginalCount = m_friendsLocations.count();
+        for(int i=0; i<m_friendsLocationsOriginalCount; i++){
+            if(currentFriendList.contains(i) == false){
+                m_mapScene->removeItem(m_friendsLocations.at(i));
+                m_friendsLocations.removeAt(i);
+            }
+        }
     }
 }
index 62e816c..21d8e09 100644 (file)
@@ -72,7 +72,7 @@ HEADERS += ui/mainwindow.h \
     map/maptilerequest.h
 QT += network \
     webkit
-DEFINES += QT_NO_DEBUG_OUTPUT
+#DEFINES += QT_NO_DEBUG_OUTPUT
 !maemo5 { 
     message(QJson built in)
     message(Make sure you have QJson development headers installed)