Merge branch 'fix_userinfo' into userinfo_collapse, review and fixes
[situare] / src / ui / userinfopanel.cpp
index 7d76313..e4e022c 100644 (file)
@@ -1,8 +1,10 @@
- /*
+/*
     Situare - A location system for Facebook
     Copyright (C) 2010  Ixonos Plc. Authors:
 
         Kaj Wallin - kaj.wallin@ixonos.com
+        Katri Kaikkonen - katri.kaikkonen@ixonos.com
+        Pekka Nissinen - pekka.nissinen@ixonos.com
 
     Situare is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License
     along with Situare; if not, write to the Free Software
     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
     USA.
- */
+*/
 
-#include "userinfopanel.h"
+#include <QScrollArea>
+#include <QVBoxLayout>
+
+#include "panelcommon.h"
 #include "userinfo.h"
 
+#include "userinfopanel.h"
+
 UserInfoPanel::UserInfoPanel(QWidget *parent)
-    : SidePanel(parent)
+    : QWidget(parent)
 {
     qDebug() << __PRETTY_FUNCTION__;
-    setType(SidePanel::UserPanel);
+
+    QVBoxLayout *userInfoPanelLayout = new QVBoxLayout;
+    userInfoPanelLayout->setMargin(0);
+    userInfoPanelLayout->setSpacing(0);
+    userInfoPanelLayout->setContentsMargins(PANEL_MARGIN_LEFT, PANEL_MARGIN_TOP,
+                                            PANEL_MARGIN_RIGHT, PANEL_MARGIN_BOTTOM);
+    setLayout(userInfoPanelLayout);
 
     m_userInfo = new UserInfo(this);
-    m_panelVBox->addWidget(m_userInfo, 0, Qt::AlignCenter);
+
+    QWidget *userInfoView = new QWidget(this);
+    QVBoxLayout *userInfoViewLayout = new QVBoxLayout(userInfoView);
+    userInfoViewLayout->setMargin(0);
+    userInfoViewLayout->setSpacing(0);
+    userInfoViewLayout->setStretch(0, 0);
+    userInfoViewLayout->setSizeConstraint(QLayout::SetFixedSize);
+    userInfoViewLayout->addWidget(m_userInfo);
+
+    QScrollArea *userInfoScroll = new QScrollArea();
+    userInfoScroll->setWidgetResizable(true);
+    userInfoScroll->setWidget(userInfoView);
+    userInfoScroll->setAlignment(Qt::AlignVCenter);
+    userInfoScroll->viewport()->setAutoFillBackground(false);
+    userInfoScroll->widget()->setAutoFillBackground(false);
+
+    userInfoPanelLayout->addWidget(userInfoScroll);
+
+    connect(m_userInfo, SIGNAL(findUser(GeoCoordinate)),
+            this, SIGNAL(findUser(GeoCoordinate)));
 
     connect(m_userInfo,SIGNAL(requestReverseGeo()),
             this, SIGNAL(requestReverseGeo()));
@@ -42,6 +74,15 @@ UserInfoPanel::UserInfoPanel(QWidget *parent)
 
     connect(m_userInfo, SIGNAL(refreshUserData()),
             this, SIGNAL(refreshUserData()));
+
+    connect(this, SIGNAL(clearUpdateLocationDialogData()),
+            m_userInfo, SLOT(clearUpdateLocationDialogData()));
+
+    connect(m_userInfo, SIGNAL(notificateUpdateFailing(QString, bool)),
+            this, SIGNAL(notificateUpdateFailing(QString, bool)));
+
+    connect(this, SIGNAL(collapse()),
+            m_userInfo, SLOT(collapse()));
 }
 
 void UserInfoPanel::userDataReceived(User *user)
@@ -50,9 +91,10 @@ void UserInfoPanel::userDataReceived(User *user)
 
     if(user) {
         m_userInfo->setUserName(user->name());
-        m_userInfo->setAvatar(user->profileImage());
+        m_userInfo->setProfileImage(user->profileImage());
         m_userInfo->setMessageText(user->note());
         m_userInfo->setAddress(user->address());
         m_userInfo->setTime(user->timestamp());
+        m_userInfo->setCoordinates(user->coordinates());
     }
 }