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);
45 // friendListView->setItemDelegate(new FriendListItemDelegate());
47 // FriendListItem *item1 = new FriendListItem();
48 // item1->setData(FriendListItem::Name, "Name 1");
49 // item1->setData(FriendListItem::Updated, "2 days ago");
50 // QString test = QString("Hello Maemo Situare! Hello Maemo Situare! ");
51 // test.append("Hello Maemo Situare! ");
52 // test.append("Hello Maemo Situare! ");
53 // test.append("Hello Maemo Situare! ");
54 // test.append("Hello Maemo Situare! ");
55 // item1->setData(FriendListItem::StatusText, test);
56 // item1->setData(FriendListItem::Location, "Kiviharjunlenkki 1E, 91910 Oulu");
57 // item1->setData(FriendListItem::Image, ":/resources/dummy_Avatar.png");
58 // FriendListItem *item2 = new FriendListItem();
59 // item2->setData(FriendListItem::Name, "Name 2");
60 // item2->setData(FriendListItem::Updated, "2 days ago");
61 // item2->setData(FriendListItem::StatusText, "Hello Maemo Situare!");
62 // item2->setData(FriendListItem::Location, "Kiviharjunlenkki 1E, 91910 Oulu");
63 // item2->setData(FriendListItem::Image, ":/resources/dummy_Avatar.png");
64 // FriendListItem *item3 = new FriendListItem();
65 // item3->setData(FriendListItem::Name, "Name 3");
66 // item3->setData(FriendListItem::Updated, "2 days ago");
67 // item3->setData(FriendListItem::StatusText, "Hello Maemo Situare!");
68 // item3->setData(FriendListItem::Location, "Kiviharjunlenkki 1E, 91910 Oulu");
69 // item3->setData(FriendListItem::Image, ":/resources/dummy_Avatar.png");
70 // FriendListItem *item4 = new FriendListItem();
71 // item4->setData(FriendListItem::Name, "Name 4");
72 // item4->setData(FriendListItem::Updated, "2 days ago");
73 // item4->setData(FriendListItem::StatusText, "Hello Maemo Situare!");
74 // item4->setData(FriendListItem::Location, "Kiviharjunlenkki 1E, 91910 Oulu");
75 // item4->setData(FriendListItem::Image, ":/resources/dummy_Avatar.png");
76 // FriendListItem *item5 = new FriendListItem();
77 // item5->setData(FriendListItem::Name, "Name 5");
78 // item5->setData(FriendListItem::Updated, "2 days ago");
79 // item5->setData(FriendListItem::StatusText, "Hello Maemo Situare!");
80 // item5->setData(FriendListItem::Location, "Kiviharjunlenkki 1E, 91910 Oulu");
81 // item5->setData(FriendListItem::Image, ":/resources/dummy_Avatar.png");
82 // FriendListItem *item6 = new FriendListItem();
83 // item6->setData(FriendListItem::Name, "Name 6");
84 // item6->setData(FriendListItem::Updated, "2 days ago");
85 // item6->setData(FriendListItem::StatusText, "Hello Maemo Situare!");
86 // item6->setData(FriendListItem::Location, "Kiviharjunlenkki 1E, 91910 Oulu");
87 // item6->setData(FriendListItem::Image, ":/resources/dummy_Avatar.png");
88 // friendListView->addItem(item1);
89 // friendListView->addItem(item2);
90 // friendListView->addItem(item3);
91 // friendListView->addItem(item4);
92 // friendListView->addItem(item5);
93 // friendListView->addItem(item6);
95 FriendListView *friendListView = new FriendListView(this);
97 User user1(QString("Kiviharjunlenkki 1E, 91910 Oulu"), QPointF(25.5, 65), QString("User 1"),
98 QString("Hello Maemo Situare!"), QUrl("http://static.ak.fbcdn.net/pics/q_silhouette.gif"), QString("2 days ago"), false, QString(),
100 User user2(QString("Kiviharjunlenkki 1E, 91910 Oulu"), QPointF(25.5, 65), QString("User 2"),
101 QString("Hello Maemo Situare! Hello Maemo Situare! Hello Maemo Situare!"),
102 QUrl("http://static.ak.fbcdn.net/pics/q_silhouette.gif"), QString("2 days ago"), false, QString(),
104 FriendListItem *item1 = new FriendListItem(friendListView);
105 item1->setData(user1);
106 FriendListItem *item2 = new FriendListItem(friendListView);
107 item2->setData(user1);
108 FriendListItem *item3 = new FriendListItem(friendListView);
109 item3->setData(user1);
110 FriendListItem *item4 = new FriendListItem(friendListView);
111 item4->setData(user2);
112 FriendListItem *item5 = new FriendListItem(friendListView);
113 item5->setData(user1);
114 FriendListItem *item6 = new FriendListItem(friendListView);
115 item6->setData(user1);
117 friendListView->addWidget(item1);
118 friendListView->addWidget(item2);
119 friendListView->addWidget(item3);
120 friendListView->addWidget(item4);
121 friendListView->addWidget(item5);
122 friendListView->addWidget(item6);
123 // friendListView->addWidget(new QPushButton("Hep", this));
125 QScrollArea *friendListScroll = new QScrollArea();
126 friendListScroll->setWidget(friendListView);
127 friendListScroll->setWidgetResizable(true);
131 m_arrowbutton = new Pixmap(QPixmap(":/res/images/arrow_right.png"));
133 m_personalInfo = new InfoTab;
134 m_personalInfo->setAvatar(QPixmap(":/res/images/facebook_user_64.png"));
135 m_personalInfo->setUserName("Fred Facebook");
136 m_personalInfo->setMessageText("Hello Maemo Situare !");
137 m_personalInfo->setTime("1 hour ago");
138 m_personalInfo->setAddress("Kiviharjunlenkki 1E, 91910 Oulu");
141 m_widgetProxy = new QGraphicsProxyWidget();
142 m_widgetProxy->setWidget(m_personalInfo);
144 QGraphicsScene *scene= new QGraphicsScene(this);
145 scene->setBackgroundBrush(Qt::white);
146 scene->addItem(m_widgetProxy);
147 scene->addItem(m_arrowbutton);
148 qDebug() << "Scene width: " << scene->width();
149 qDebug() << "Scene heigth: " << scene->height();
151 QGraphicsView *view = new QGraphicsView(scene);
152 view->setAlignment(Qt::AlignLeft|Qt::AlignTop);
153 view->setSceneRect(0,0,7000,3000);
154 view->centerOn(QPointF(0,0));
155 view->setFrameStyle(0);
156 view->setAlignment(Qt::AlignLeft | Qt::AlignTop);
157 view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
158 view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
159 view->setBackgroundBrush(Qt::white);
162 QStateMachine *machine = new QStateMachine(this);
163 machine->setGlobalRestorePolicy(QStateMachine::RestoreProperties);
165 QState *state1 = new QState(machine);
166 QState *state2 = new QState(machine);
167 machine->setInitialState(state1);
170 state1->assignProperty(m_widgetProxy,"pos",QPointF(-(m_personalInfo->width()),0));
171 state1->assignProperty(m_arrowbutton,"pos",QPointF(0,(m_personalInfo->height()/4)));
174 state2->assignProperty(m_widgetProxy,"pos",QPointF(0,0));
175 state2->assignProperty(m_arrowbutton,"pos",QPointF((m_personalInfo->width()),(m_personalInfo->height()/4)));
177 m_trans1 = state1->addTransition(m_arrowbutton,SIGNAL(clicked()),state2);
178 m_anim1 = new QPropertyAnimation(m_widgetProxy,"pos");
179 m_anim2 = new QPropertyAnimation(m_arrowbutton,"pos");
180 m_trans1->addAnimation(m_anim1);
181 m_trans1->addAnimation(m_anim2);
183 m_trans2 = state2->addTransition(m_arrowbutton,SIGNAL(clicked()),state1);
184 m_anim3= new QPropertyAnimation(m_widgetProxy,"pos");
185 m_anim4= new QPropertyAnimation(m_arrowbutton,"pos");
186 m_trans2->addAnimation(m_anim3);
187 m_trans2->addAnimation(m_anim4);
191 m_vbox = new QVBoxLayout(this);
192 // m_vbox->addWidget(view);
194 //m_vbox->addWidget(friendListView);
195 m_vbox->addWidget(friendListScroll);
197 m_vbox->setMargin(0);
199 //connect(m_personalInfo,SIGNAL(launchMessageUpdate()),this,SLOT(updateMessage()));
202 ListViewScreen::~ListViewScreen()
205 delete m_personalInfo;
207 delete m_arrowbutton;
224 void ListViewScreen::updateMessage()
226 qDebug() << __PRETTY_FUNCTION__;
227 // m_locationDialog->exec();