basic functionality of error handling ready
[situare] / src / ui / userinfopanel.cpp
1  /*
2     Situare - A location system for Facebook
3     Copyright (C) 2010  Ixonos Plc. Authors:
4
5         Kaj Wallin - kaj.wallin@ixonos.com
6
7     Situare is free software; you can redistribute it and/or
8     modify it under the terms of the GNU General Public License
9     version 2 as published by the Free Software Foundation.
10
11     Situare is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with Situare; if not, write to the Free Software
18     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
19     USA.
20  */
21
22 #include "userinfopanel.h"
23 #include "userinfo.h"
24
25 UserInfoPanel::UserInfoPanel(QWidget *parent)
26     : SidePanel(parent)
27 {
28     qDebug() << __PRETTY_FUNCTION__;
29
30     setType(SidePanel::UserPanel);
31
32     m_userInfo = new UserInfo(this);
33
34     QWidget *userInfoView = new QWidget(this);
35     QVBoxLayout *userViewLayout = new QVBoxLayout(userInfoView);
36     userViewLayout->setMargin(0);
37     userViewLayout->setSpacing(0);
38     userViewLayout->setStretch(0, 0);
39     userViewLayout->setSizeConstraint(QLayout::SetFixedSize);
40     userViewLayout->addWidget(m_userInfo);
41
42     QScrollArea *userInfoScroll = new QScrollArea(this);
43     userInfoScroll->setWidgetResizable(true);
44     userInfoScroll->setWidget(userInfoView);
45     userInfoScroll->setAlignment(Qt::AlignVCenter);
46     userInfoScroll->viewport()->setAutoFillBackground(false);
47     userInfoScroll->widget()->setAutoFillBackground(false);
48
49     m_panelVBox->addWidget(userInfoScroll);
50
51     connect(m_userInfo, SIGNAL(findUser(QPointF)),
52             this, SIGNAL(findUser(QPointF)));
53
54     connect(m_userInfo,SIGNAL(requestReverseGeo()),
55             this, SIGNAL(requestReverseGeo()));
56
57     connect(this, SIGNAL(reverseGeoReady(QString)),
58             m_userInfo, SIGNAL(reverseGeoReady(QString)));
59
60     connect(m_userInfo, SIGNAL(statusUpdate(QString,bool)),
61             this, SIGNAL(statusUpdate(QString,bool)));
62
63     connect(m_userInfo, SIGNAL(refreshUserData()),
64             this, SIGNAL(refreshUserData()));
65
66     connect(this, SIGNAL(messageUpdatedToSituare()),
67             m_userInfo, SIGNAL(messageUpdatedToSituare()));
68
69     connect(this, SIGNAL(messageSendingFailed(QString)),
70             m_userInfo, SIGNAL(messageSendingFailed(QString)));
71
72     connect (this, SIGNAL(messageSendingFailed(QString)),
73              m_userInfo, SLOT(verifyMessageUpdateToServer(QString)));
74
75     connect (m_userInfo, SIGNAL(notificateUpdateFailing(QString)),
76              this, SIGNAL(notificateUpdateFailing(QString)));
77 }
78
79 void UserInfoPanel::userDataReceived(User *user)
80 {
81     qDebug() << __PRETTY_FUNCTION__;
82
83     if(user) {
84         m_userInfo->setUserName(user->name());
85         m_userInfo->setProfileImage(user->profileImage());
86         m_userInfo->setMessageText(user->note());
87         m_userInfo->setAddress(user->address());
88         m_userInfo->setTime(user->timestamp());
89         m_userInfo->setCoordinates(user->coordinates());
90     }
91 }