Added MeetPeoplePanel class.
[situare] / src / ui / meetpeoplepanel.cpp
1 #include <QDebug>
2 #include <QVBoxLayout>
3
4 #include "friendlistitem.h"
5 #include "friendlistitemdelegate.h"
6 #include "friendlistview.h"
7 #include "imagebutton.h"
8 #include "panelcommon.h"
9 #include "user/user.h"
10
11 #include "meetpeoplepanel.h"
12
13 MeetPeoplePanel::MeetPeoplePanel(QWidget *parent)
14     : PanelBase(parent)
15 {
16     qDebug() << __PRETTY_FUNCTION__;
17
18     QVBoxLayout *meetPeopleLayout = new QVBoxLayout;
19     meetPeopleLayout->setMargin(0);
20     meetPeopleLayout->setSpacing(0);
21     setLayout(meetPeopleLayout);
22
23     m_nearbyFriendListView = new FriendListView(this);
24     m_nearbyFriendListView->setItemDelegate(new FriendListItemDelegate(this));
25
26     QVBoxLayout *listViewLayout = new QVBoxLayout;
27     listViewLayout->setContentsMargins(PANEL_MARGIN_LEFT, PANEL_MARGIN_TOP,
28                                        PANEL_MARGIN_RIGHT, PANEL_MARGIN_BOTTOM);
29     listViewLayout->addWidget(m_nearbyFriendListView);
30     meetPeopleLayout->addLayout(listViewLayout);
31
32     ImageButton *searchPeopleButton = new ImageButton(0, ":/res/images/search.png",
33                                                              ":/res/images/search_s.png");
34     m_contextButtonList.append(searchPeopleButton);
35
36     m_chatButton = new ImageButton(0, ":/res/images/chat_button", ":/res/images/chat_button_s.png");
37     m_contextButtonList.append(m_chatButton);
38
39     connect(m_nearbyFriendListView, SIGNAL(listItemSelectionChanged()),
40             this, SLOT(setChatButtonDisabled()));
41 }
42
43 void MeetPeoplePanel::friendImageReady(User *user)
44 {
45     qDebug() << __PRETTY_FUNCTION__;
46
47     FriendListItem *item =
48             static_cast<FriendListItem*>(m_nearbyFriendListView->listItem(user->userId()));
49
50     if (item)
51         item->setAvatarImage(user->profileImage());
52 }
53
54 void MeetPeoplePanel::populateNearbyFriendListView(QList<User *> &nearbyFriendList)
55 {
56     qDebug() << __PRETTY_FUNCTION__;
57
58     foreach (User *nearbyFriend, nearbyFriendList) {
59         FriendListItem *item = new FriendListItem();
60         item->setUserData(nearbyFriend);
61         m_nearbyFriendListView->addListItem(nearbyFriend->userId(), item);
62     }
63
64     m_nearbyFriendListView->scrollToTop();
65 }
66
67 void MeetPeoplePanel::setChatButtonDisabled()
68 {
69     qDebug() << __PRETTY_FUNCTION__;
70
71     m_chatButton->setDisabled(m_nearbyFriendListView->selectedItems().isEmpty());
72 }