2 Situare - A location system for Facebook
3 Copyright (C) 2010 Ixonos Plc. Authors:
5 Kaj Wallin - kaj.wallin@ixonos.com
6 Jukka Saastamoinen jukka.saastamoinen@ixonos.com
8 Situare is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License
10 version 2 as published by the Free Software Foundation.
12 Situare is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with Situare; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
23 #include <QGraphicsScene>
24 #include <QGraphicsView>
25 #include <QGraphicsWidget>
26 #include <QtGui/QVBoxLayout>
27 #include <QGraphicsProxyWidget>
28 #include <QStateMachine>
31 #include <QScrollArea>
33 #include "listviewscreen.h"
34 #include "friendlistitemdelegate.h"
35 #include "friendlistview.h"
36 #include "friendlistitem.h"
37 #include "friendlistmodel.h"
38 #include "user/user.h"
40 ListViewScreen::ListViewScreen(QWidget *parent)
44 FriendListView *friendListView = new FriendListView(this);
46 User user1(QString("Kiviharjunlenkki 1E, 91910 Oulu"), QPointF(25.5, 65), QString("User 1"),
47 QString("Hello Maemo Situare!"), QUrl("http://static.ak.fbcdn.net/pics/q_silhouette.gif"), QString("2 days ago" \
48 " 2 days ago 2 days ago 2 days ago"), false, QString(),
50 User user2(QString("Kiviharjunlenkki 1E, 91910 Oulu"), QPointF(25.5, 65), QString("User 2"),
51 QString("Hello Maemo Situare! Hello Maemo Situare! Hello Maemo Situare!"),
52 QUrl("http://static.ak.fbcdn.net/pics/q_silhouette.gif"), QString("2 days ago"), false, QString(),
54 User user3(QString("Kiviharjunlenkki 1E, 91910 Oulu"), QPointF(25.5, 65), QString("User 2"),
55 QString("Hello Maemo Situare! Hello Maemo Situare! Hello Maemo Situare!" \
56 "Hello Maemo Situare! Hello Maemo Situare! Hello Maemo Situare! " \
57 "Hello Maemo Situare! Hello Maemo Situare! Hello Maemo Situare! "),
58 QUrl("http://static.ak.fbcdn.net/pics/q_silhouette.gif"), QString("2 days ago"), false, QString(),
60 FriendListItem *item1 = new FriendListItem(friendListView);
61 item1->setData(user1);
62 FriendListItem *item2 = new FriendListItem(friendListView);
63 item2->setData(user1);
64 FriendListItem *item3 = new FriendListItem(friendListView);
65 item3->setData(user1);
66 FriendListItem *item4 = new FriendListItem(friendListView);
67 item4->setData(user2);
68 FriendListItem *item5 = new FriendListItem(friendListView);
69 item5->setData(user3);
70 FriendListItem *item6 = new FriendListItem(friendListView);
71 item6->setData(user1);
73 friendListView->addWidget(item1);
74 friendListView->addWidget(item2);
75 friendListView->addWidget(item3);
76 friendListView->addWidget(item4);
77 friendListView->addWidget(item5);
78 friendListView->addWidget(item6);
79 // friendListView->addWidget(new QPushButton("Hep", this));
81 QScrollArea *friendListScroll = new QScrollArea();
82 friendListScroll->setWidget(friendListView);
83 friendListScroll->setWidgetResizable(true);
87 m_arrowbutton = new Pixmap(QPixmap(":/res/images/arrow_right.png"));
89 m_personalInfo = new InfoTab;
90 m_personalInfo->setAvatar(QPixmap(":/res/images/facebook_user_64.png"));
91 m_personalInfo->setUserName("Fred Facebook");
92 m_personalInfo->setMessageText("Hello Maemo Situare !");
93 m_personalInfo->setTime("1 hour ago");
94 m_personalInfo->setAddress("Kiviharjunlenkki 1E, 91910 Oulu");
97 m_widgetProxy = new QGraphicsProxyWidget();
98 m_widgetProxy->setWidget(m_personalInfo);
100 QGraphicsScene *scene= new QGraphicsScene(this);
101 scene->setBackgroundBrush(Qt::white);
102 scene->addItem(m_widgetProxy);
103 scene->addItem(m_arrowbutton);
104 qDebug() << "Scene width: " << scene->width();
105 qDebug() << "Scene heigth: " << scene->height();
107 QGraphicsView *view = new QGraphicsView(scene);
108 view->setAlignment(Qt::AlignLeft|Qt::AlignTop);
109 view->setSceneRect(0,0,7000,3000);
110 view->centerOn(QPointF(0,0));
111 view->setFrameStyle(0);
112 view->setAlignment(Qt::AlignLeft | Qt::AlignTop);
113 view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
114 view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
115 view->setBackgroundBrush(Qt::white);
118 QStateMachine *machine = new QStateMachine(this);
119 machine->setGlobalRestorePolicy(QStateMachine::RestoreProperties);
121 QState *state1 = new QState(machine);
122 QState *state2 = new QState(machine);
123 machine->setInitialState(state1);
126 state1->assignProperty(m_widgetProxy,"pos",QPointF(-(m_personalInfo->width()),0));
127 state1->assignProperty(m_arrowbutton,"pos",QPointF(0,(m_personalInfo->height()/4)));
130 state2->assignProperty(m_widgetProxy,"pos",QPointF(0,0));
131 state2->assignProperty(m_arrowbutton,"pos",QPointF((m_personalInfo->width()),(m_personalInfo->height()/4)));
133 m_trans1 = state1->addTransition(m_arrowbutton,SIGNAL(clicked()),state2);
134 m_anim1 = new QPropertyAnimation(m_widgetProxy,"pos");
135 m_anim2 = new QPropertyAnimation(m_arrowbutton,"pos");
136 m_trans1->addAnimation(m_anim1);
137 m_trans1->addAnimation(m_anim2);
139 m_trans2 = state2->addTransition(m_arrowbutton,SIGNAL(clicked()),state1);
140 m_anim3= new QPropertyAnimation(m_widgetProxy,"pos");
141 m_anim4= new QPropertyAnimation(m_arrowbutton,"pos");
142 m_trans2->addAnimation(m_anim3);
143 m_trans2->addAnimation(m_anim4);
147 m_vbox = new QVBoxLayout(this);
148 // m_vbox->addWidget(view);
150 //m_vbox->addWidget(friendListView);
151 m_vbox->addWidget(friendListScroll);
153 m_vbox->setMargin(0);
155 //connect(m_personalInfo,SIGNAL(launchMessageUpdate()),this,SLOT(updateMessage()));
158 ListViewScreen::~ListViewScreen()
161 delete m_personalInfo;
163 delete m_arrowbutton;
180 void ListViewScreen::updateMessage()
182 qDebug() << __PRETTY_FUNCTION__;
183 // m_locationDialog->exec();