Merge branch 'save_message'
[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     m_panelVBox->setContentsMargins(SLIDINGBAR_WIDTH+1, 0, SIDEBAR_WIDTH, 0);
51
52     connect(m_userInfo, SIGNAL(findUser(QPointF)),
53             this, SIGNAL(findUser(QPointF)));
54
55     connect(m_userInfo,SIGNAL(requestReverseGeo()),
56             this, SIGNAL(requestReverseGeo()));
57
58     connect(this, SIGNAL(reverseGeoReady(QString)),
59             m_userInfo, SIGNAL(reverseGeoReady(QString)));
60
61     connect(m_userInfo, SIGNAL(statusUpdate(QString,bool)),
62             this, SIGNAL(statusUpdate(QString,bool)));
63
64     connect(m_userInfo, SIGNAL(refreshUserData()),
65             this, SIGNAL(refreshUserData()));
66
67     connect(this, SIGNAL(updateWasSuccessful()),
68             m_userInfo, SLOT(clearUpdateLocationDialogData()));
69
70     connect(this, SIGNAL(messageSendingFailed(QString)),
71             m_userInfo, SIGNAL(messageSendingFailed(QString)));
72
73     connect (this, SIGNAL(messageSendingFailed(QString)),
74              m_userInfo, SLOT(verifyMessageUpdateFailure(QString)));
75
76     connect (m_userInfo, SIGNAL(notificateUpdateFailing(QString)),
77              this, SIGNAL(notificateUpdateFailing(QString)));
78 }
79
80 void UserInfoPanel::userDataReceived(User *user)
81 {
82     qDebug() << __PRETTY_FUNCTION__;
83
84     if(user) {
85         m_userInfo->setUserName(user->name());
86         m_userInfo->setProfileImage(user->profileImage());
87         m_userInfo->setMessageText(user->note());
88         m_userInfo->setAddress(user->address());
89         m_userInfo->setTime(user->timestamp());
90         m_userInfo->setCoordinates(user->coordinates());
91     }
92 }