2 Situare - A location system for Facebook
3 Copyright (C) 2010 Ixonos Plc. Authors:
5 Kaj Wallin - kaj.wallin@ixonos.com
6 Katri Kaikkonen - katri.kaikkonen@ixonos.com
7 Pekka Nissinen - pekka.nissinen@ixonos.com
9 Situare is free software; you can redistribute it and/or
10 modify it under the terms of the GNU General Public License
11 version 2 as published by the Free Software Foundation.
13 Situare is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with Situare; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
24 #include <QScrollArea>
25 #include <QVBoxLayout>
27 #include "imagebutton.h"
28 #include "panelcommon.h"
31 #include "userinfopanel.h"
33 UserInfoPanel::UserInfoPanel(QWidget *parent)
36 qDebug() << __PRETTY_FUNCTION__;
38 QVBoxLayout *userInfoPanelLayout = new QVBoxLayout;
39 userInfoPanelLayout->setMargin(0);
40 userInfoPanelLayout->setSpacing(0);
41 userInfoPanelLayout->setContentsMargins(PANEL_MARGIN_LEFT, PANEL_MARGIN_TOP,
42 PANEL_MARGIN_RIGHT, PANEL_MARGIN_BOTTOM);
43 setLayout(userInfoPanelLayout);
45 m_userInfo = new UserInfo(this);
47 QWidget *userInfoView = new QWidget(this);
48 QVBoxLayout *userInfoViewLayout = new QVBoxLayout(userInfoView);
49 userInfoViewLayout->setMargin(0);
50 userInfoViewLayout->setSpacing(0);
51 userInfoViewLayout->setStretch(0, 0);
52 userInfoViewLayout->setSizeConstraint(QLayout::SetFixedSize);
53 userInfoViewLayout->addWidget(m_userInfo);
55 QScrollArea *userInfoScroll = new QScrollArea();
56 userInfoScroll->setWidgetResizable(true);
57 userInfoScroll->setWidget(userInfoView);
58 userInfoScroll->setAlignment(Qt::AlignVCenter);
59 userInfoScroll->viewport()->setAutoFillBackground(false);
60 userInfoScroll->widget()->setAutoFillBackground(false);
62 userInfoPanelLayout->addWidget(userInfoScroll);
64 connect(m_userInfo, SIGNAL(findUser(GeoCoordinate)),
65 this, SIGNAL(findUser(GeoCoordinate)));
67 connect(m_userInfo,SIGNAL(requestReverseGeo()),
68 this, SIGNAL(requestReverseGeo()));
70 connect(m_userInfo, SIGNAL(statusUpdate(QString, bool)),
71 this, SIGNAL(statusUpdate(QString, bool)));
73 connect(m_userInfo, SIGNAL(notificateUpdateFailing(QString, bool)),
74 this, SIGNAL(notificateUpdateFailing(QString, bool)));
76 connect(this, SIGNAL(reverseGeoReady(QString)),
77 m_userInfo, SIGNAL(reverseGeoReady(QString)));
79 connect(this, SIGNAL(clearUpdateLocationDialogData()),
80 m_userInfo, SLOT(clearUpdateLocationDialogData()));
82 connect(this, SIGNAL(collapse()),
83 m_userInfo, SLOT(collapse()));
85 ImageButton *updateFriendsButton = new ImageButton(":/res/images/refresh.png",
86 ":/res/images/refresh_s.png",
88 ImageButton *updateStatusMessageButton = new ImageButton(":/res/images/send_position.png",
89 ":/res/images/send_position_s.png",
92 m_genericButtonsLayout->addWidget(updateFriendsButton);
93 m_genericButtonsLayout->addWidget(updateStatusMessageButton);
95 connect(updateFriendsButton, SIGNAL(clicked()),
96 this, SIGNAL(refreshUserData()));
98 connect(updateStatusMessageButton, SIGNAL(clicked()),
99 m_userInfo, SLOT(messageUpdate()));
103 void UserInfoPanel::showUserInfo(bool logged)
105 qDebug() << __PRETTY_FUNCTION__;
107 m_userInfo->setVisible(logged);
110 void UserInfoPanel::userDataReceived(User *user)
112 qDebug() << __PRETTY_FUNCTION__;
115 m_userInfo->setUserName(user->name());
116 m_userInfo->setProfileImage(user->profileImage());
117 m_userInfo->setMessageText(user->note());
118 m_userInfo->setAddress(user->address());
119 m_userInfo->setTime(user->timestamp());
120 m_userInfo->setCoordinates(user->coordinates());