Added Message 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 "messagelistitem.h"
9 #include "messagelistview.h"
10 #include "panelcommon.h"
11 #include "user/user.h"
12
13 #include "meetpeoplepanel.h"
14
15 MeetPeoplePanel::MeetPeoplePanel(QWidget *parent)
16     : PanelBase(parent)
17 {
18     qDebug() << __PRETTY_FUNCTION__;
19
20     QVBoxLayout *meetPeopleLayout = new QVBoxLayout;
21     meetPeopleLayout->setMargin(0);
22     meetPeopleLayout->setSpacing(0);
23     setLayout(meetPeopleLayout);
24
25     m_messageListView = new MessageListView(this);
26     m_messageListView->setItemDelegate(new ExtendedListItemDelegate(this));
27
28     m_interestingPeopleListView = new FriendListView(this);
29     m_interestingPeopleListView->setItemDelegate(new FriendListItemDelegate(this));
30
31     QVBoxLayout *listViewLayout = new QVBoxLayout;
32     listViewLayout->setContentsMargins(PANEL_MARGIN_LEFT, PANEL_MARGIN_TOP,
33                                        PANEL_MARGIN_RIGHT, PANEL_MARGIN_BOTTOM);
34     listViewLayout->addWidget(m_messageListView);
35     listViewLayout->addWidget(m_interestingPeopleListView);
36     meetPeopleLayout->addLayout(listViewLayout);
37
38     m_chatButton = new ImageButton(":/res/images/chat_btn.png",
39                                    ":/res/images/chat_btn_s.png",
40                                    ":/res/images/chat_btn_d", this);
41
42     m_contextButtonLayout->addWidget(m_chatButton);
43
44     connect(m_chatButton, SIGNAL(clicked()),
45             this, SLOT(openChatMessageDialog()));
46
47     QList<Message> messages;
48     Message m1;
49     m1.setSenderId("123");
50     m1.setSenderName("Jane Doe");
51     m1.setText("Hello world!");
52     Message m2;
53     m2.setSenderId("123");
54     m2.setSenderName("Jane Doe");
55     m2.setText("Hello world again!");
56     Message m3;
57     m3.setSenderId("456");
58     m3.setSenderName("John Doe");
59     m3.setText("Piss off!");
60
61     messages.append(m1);
62     messages.append(m2);
63     messages.append(m3);
64     populateMessageListView(messages);
65 }
66
67 void MeetPeoplePanel::friendImageReady(User *user)
68 {
69     qDebug() << __PRETTY_FUNCTION__;
70
71     FriendListItem *item =
72             static_cast<FriendListItem*>(m_interestingPeopleListView->listItem(user->userId()));
73
74     if (item)
75         item->setAvatarImage(user->profileImage());
76 }
77
78 void MeetPeoplePanel::populateInterestingPeopleListView(QList<User *> &interestingPeople)
79 {
80     qDebug() << __PRETTY_FUNCTION__ ;
81
82     foreach (User *interestingPerson, interestingPeople) {
83         FriendListItem *item = new FriendListItem();
84         item->setUserData(interestingPerson);
85         m_interestingPeopleListView->addListItem(interestingPerson->userId(), item);
86     }
87
88     m_interestingPeopleListView->scrollToTop();
89 }
90
91 void MeetPeoplePanel::populateMessageListView(QList<Message> &messages)
92 {
93     qDebug() << __PRETTY_FUNCTION__ ;
94
95     foreach (Message message, messages) {
96         MessageListItem *messageItem = new MessageListItem();
97         messageItem->setMessageData(message);
98         m_messageListView->addListItem(messageItem->messageSenderId(), messageItem);
99     }
100
101     m_messageListView->scrollToTop();
102 }
103
104 void MeetPeoplePanel::setChatButtonDisabled()
105 {
106     qDebug() << __PRETTY_FUNCTION__;
107
108     m_chatButton->setDisabled(m_interestingPeopleListView->selectedItems().isEmpty());
109 }