Added connections from FriendGroupItem to MapEngine. Added
authorJussi Laitinen <jupe@l3l7588.ixonos.local>
Thu, 20 May 2010 08:59:02 +0000 (11:59 +0300)
committerJussi Laitinen <jupe@l3l7588.ixonos.local>
Thu, 20 May 2010 08:59:02 +0000 (11:59 +0300)
mousePressEvent to FriendGroupItem.

src/map/friendgroupitem.cpp
src/map/friendgroupitem.h
src/map/frienditemshandler.cpp
src/map/frienditemshandler.h
src/map/mapengine.cpp
src/map/mapengine.h
src/src.pro
src/ui/friendlistpanel.cpp
src/ui/friendlistpanel.h

index bdc3a96..80272e5 100644 (file)
@@ -103,3 +103,20 @@ void FriendGroupItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *o
                             GROUP_ITEM_FRIENDS_COUNT_WIDTH, GROUP_ITEM_FRIENDS_COUNT_HEIGHT),
                       Qt::AlignCenter, QString::number(m_friends.count()));
 }
+
+void FriendGroupItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
+{
+    qDebug() << __PRETTY_FUNCTION__;
+
+    Q_UNUSED(event);
+
+    QList<QString> userIDs;
+
+    foreach (FriendLocationItem *item, m_friends) {
+        userIDs.append(item->userId());
+    }
+
+    qDebug() << __PRETTY_FUNCTION__ << userIDs;
+
+    emit friendGroupItemClicked(userIDs);
+}
index c8add0c..64acd86 100644 (file)
@@ -38,6 +38,8 @@ class FriendLocationItem;
   */
 class FriendGroupItem : public BaseLocationItem
 {
+    Q_OBJECT
+
 public:
     /**
       * @brief Constructor
@@ -59,6 +61,16 @@ public:
       */
     void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
 
+protected:
+    /**
+    * @brief Mouse press event.
+    *
+    * Emits friendGroupItemClicked signal.
+    *
+    * @param event QGraphicsSceneMouseEvent.
+    */
+    void mousePressEvent(QGraphicsSceneMouseEvent *event);
+
 /*******************************************************************************
  * MEMBER FUNCTIONS AND SLOTS
  ******************************************************************************/
@@ -98,6 +110,17 @@ public:
     void mergeWithGroup(FriendGroupItem *group);
 
 /*******************************************************************************
+ * SIGNALS
+ ******************************************************************************/
+signals:
+    /**
+    * @brief Signal is emitted when friend group item is clicked.
+    *
+    * @param userIDs list of friends user IDs in the group
+    */
+    void friendGroupItemClicked(const QList<QString> userIDs);
+
+/*******************************************************************************
  * DATA MEMBERS
  ******************************************************************************/
 private:
index 8056ae2..29b5854 100644 (file)
@@ -48,6 +48,9 @@ void FriendItemsHandler::addFriendItem(User *friendData)
     item->setPos(MapEngine::convertLatLonToSceneCoordinate(friendData->coordinates()));
     m_friendItems.append(item);
     m_mapScene->addItem(item);
+
+    connect(item, SIGNAL(friendItemClicked(QString)),
+            this, SIGNAL(friendItemClicked(QString)));
 }
 
 void FriendItemsHandler::checkAllFriendsForCollidingFriends()
@@ -96,6 +99,9 @@ void FriendItemsHandler::checkFriendForCollidingFriends(FriendLocationItem *item
                     group = new FriendGroupItem(item);
                     m_mapScene->addItem(group);
                     m_friendGroupItems.append(group);
+
+                    connect(group, SIGNAL(friendGroupItemClicked(QList<QString>)),
+                            this, SIGNAL(friendGroupItemClicked(QList<QString>)));
                 }
                 group->joinFriend(*iter);
             }
@@ -166,6 +172,9 @@ void FriendItemsHandler::deleteFriendItem(FriendLocationItem *item)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
+    disconnect(item, SIGNAL(friendItemClicked(QString)),
+            this, SIGNAL(friendItemClicked(QString)));
+
     dropFriendFromAllGroups(item);
     m_mapScene->removeItem(item);
     delete item;
index e35ff60..f80ac97 100644 (file)
@@ -195,6 +195,24 @@ private slots:
     void refactorFriendItems(int zoomLevel);
 
 /*******************************************************************************
+ * SIGNALS
+ ******************************************************************************/
+signals:
+    /**
+    * @brief Signal for friend group item click.
+    *
+    * @param userIDs list of user IDs in group
+    */
+    void friendGroupItemClicked(const QList<QString> &userIDs);
+
+    /**
+    * @brief Signal for friend item click.
+    *
+    * @param userID friend user ID
+    */
+    void friendItemClicked(const QString &userID);
+
+/*******************************************************************************
  * DATA MEMBERS
  ******************************************************************************/
 private:
index 098874b..7217062 100644 (file)
@@ -69,6 +69,11 @@ MapEngine::MapEngine(QObject *parent)
 
     connect(this, SIGNAL(friendsLocationsReady(QList<User*>&)),
             m_friendItemsHandler, SLOT(friendListUpdated(QList<User*>&)));
+
+    connect(m_friendItemsHandler, SIGNAL(friendItemClicked(QString)),
+            this, SIGNAL(friendItemClicked(QString)));
+    connect(m_friendItemsHandler, SIGNAL(friendGroupItemClicked(QList<QString>)),
+            this, SIGNAL(friendGroupItemClicked(QList<QString>)));
 }
 
 void MapEngine::init()
index 7e24386..2d18659 100644 (file)
@@ -298,6 +298,20 @@ signals:
     void fetchImage(int zoomLevel, int x, int y);
 
     /**
+    * @brief Signal for friend group item click.
+    *
+    * @param userIDs list of user IDs in group
+    */
+    void friendGroupItemClicked(const QList<QString> &userIDs);
+
+    /**
+    * @brief Signal for friend item click.
+    *
+    * @param userID friend user ID
+    */
+    void friendItemClicked(const QString &userID);
+
+    /**
     * @brief Signal when friend list locations are fetched
     *
     * @param friendsList Friends list data
index 81d3bae..ac29e8e 100644 (file)
@@ -86,7 +86,7 @@ HEADERS += ui/mainwindow.h \
 QT += network \
     webkit
 
-DEFINES += QT_NO_DEBUG_OUTPUT
+#DEFINES += QT_NO_DEBUG_OUTPUT
 
 maemo5 | simulator {
     SOURCES += gps/gpspositionprivate.cpp
index 8a631db..69e8694 100644 (file)
@@ -89,6 +89,7 @@ void FriendListPanel::friendInfoReceived(QList<User *> &friendList)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
+    m_clearFilterButton->hide();
     m_friendListView->clear();
 
     foreach (User *user, friendList) {
@@ -99,6 +100,9 @@ void FriendListPanel::friendInfoReceived(QList<User *> &friendList)
         connect(item, SIGNAL(findFriend(QPointF)),
             this, SIGNAL(findFriend(QPointF)));
     }
+
+    QTimer::singleShot(3000, this, SLOT(showFriendsInList()));
+    QTimer::singleShot(6000, this, SLOT(showFriendsInList()));
 }
 
 void FriendListPanel::reDrawFriendsPanel(int width, int height)
@@ -119,8 +123,18 @@ void FriendListPanel::clearFriendListFilter()
     m_friendListView->clearFilter();
 }
 
-void FriendListPanel::filterFriendList(const QList<QString> &userIDs)
+void FriendListPanel::showFriendsInList(/*const QList<QString> &userIDs*/)
 {
+    QList<QString> userIDs;
+    static int count = 0;
+
+    if ((count%2) == 0)
+        userIDs.append("100000919753435");
+    else
+        userIDs.append("783074081");
+
+    count++;
+
     m_clearFilterButton->show();
     m_friendListView->filter(userIDs);
 }
index 29e01ba..1ffd25e 100644 (file)
@@ -77,7 +77,7 @@ private slots:
     * Shows only friends that are on userIDs list.
     * @param userIDs list of user ID's
     */
-    void showFriendsInList(const QList<QString> &userIDs);
+    void showFriendsInList(/*const QList<QString> &userIDs*/);
 
 /*******************************************************************************
  * SIGNALS