mousePressEvent to FriendGroupItem.
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);
+}
*/
class FriendGroupItem : public BaseLocationItem
{
+ Q_OBJECT
+
public:
/**
* @brief Constructor
*/
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
******************************************************************************/
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:
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()
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);
}
{
qDebug() << __PRETTY_FUNCTION__;
+ disconnect(item, SIGNAL(friendItemClicked(QString)),
+ this, SIGNAL(friendItemClicked(QString)));
+
dropFriendFromAllGroups(item);
m_mapScene->removeItem(item);
delete item;
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:
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()
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
QT += network \
webkit
-DEFINES += QT_NO_DEBUG_OUTPUT
+#DEFINES += QT_NO_DEBUG_OUTPUT
maemo5 | simulator {
SOURCES += gps/gpspositionprivate.cpp
{
qDebug() << __PRETTY_FUNCTION__;
+ m_clearFilterButton->hide();
m_friendListView->clear();
foreach (User *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)
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);
}
* 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