Added engine to master
[situare] / src / ui / listviewscreen.cpp
index 259228f..74456cc 100644 (file)
 */
 
 #include <QGraphicsScene>
-#include <QGraphicsWidget>
 #include <QGraphicsView>
+#include <QGraphicsWidget>
 #include <QtGui/QVBoxLayout>
+#include <QGraphicsProxyWidget>
 #include <QStateMachine>
 #include "listviewscreen.h"
-#include "pixmap.h"
+#include <QDebug>
 
 ListViewScreen::ListViewScreen(QWidget *parent)
-   : QWidget(parent)
+    : QWidget(parent)
 {
-    Pixmap *infoTab = new Pixmap(QPixmap(":/resources/personal_infotab_background.png")); //350x140 pix
-    Pixmap *userPic = new Pixmap(QPixmap(":/resources/facebook_user_64.png")); //64x64 pix
-    Pixmap *envelope = new Pixmap(QPixmap(":/resources/list_small.png"));
-    Pixmap *compass = new Pixmap(QPixmap(":/resources/compas_small.png"));
-    Pixmap *clock = new Pixmap(QPixmap(":/resources/clock_small.png"));
-    Pixmap *reload = new Pixmap(QPixmap(":/resources/reload_icon.png"));
-    Pixmap *reloca = new Pixmap(QPixmap(":/resources/sendPosition_icon.png"));
-
-    QGraphicsScene *scene= new QGraphicsScene(0,0,700,360);
-    scene->setBackgroundBrush(Qt::white);
-    scene->addItem(infoTab);
-    scene->addItem(userPic);
-    scene->addItem(envelope);
-    scene->addItem(compass);
-    scene->addItem(clock);
-    scene->addItem(reload);
-    scene->addItem(reloca);
+
+    m_arrowbutton = new Pixmap(QPixmap(":/res/images/arrow_right.png"));
+
+    m_personalInfo = new InfoTab;
+    m_personalInfo->setAvatar(QPixmap(":/res/images/facebook_user_64.png"));
+    m_personalInfo->setUserName("Fred Facebook");
+    m_personalInfo->setMessageText("Hello Maemo Situare !");
+    m_personalInfo->setTime("1 hour ago");
+    m_personalInfo->setAddress("Kiviharjunlenkki 1E, 91910 Oulu");
+
+
+    m_widgetProxy = new QGraphicsProxyWidget();
+    m_widgetProxy->setWidget(m_personalInfo);
+
+    QGraphicsScene *scene= new QGraphicsScene(this);
+    scene->setBackgroundBrush(Qt::white);    
+    scene->addItem(m_widgetProxy);
+    scene->addItem(m_arrowbutton);
+    qDebug() << "Scene width: " << scene->width();
+    qDebug() << "Scene heigth: " << scene->height();
 
     QGraphicsView *view = new QGraphicsView(scene);
+    view->setAlignment(Qt::AlignLeft|Qt::AlignTop);
+    view->setSceneRect(0,0,7000,3000);
+    view->centerOn(QPointF(0,0));
     view->setFrameStyle(0);
     view->setAlignment(Qt::AlignLeft | Qt::AlignTop);
     view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
     view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
 
-    QStateMachine *machine = new QStateMachine;
+    QStateMachine *machine = new QStateMachine(this);
     machine->setGlobalRestorePolicy(QStateMachine::RestoreProperties);
 
     QState *state1 = new QState(machine);
@@ -63,49 +70,60 @@ ListViewScreen::ListViewScreen(QWidget *parent)
     machine->setInitialState(state1);
 
     // State 1
-    state1->assignProperty(infoTab,"pos",QPointF(-330,110));
-    state1->assignProperty(userPic,"pos",QPointF(-320,120));
-    state1->assignProperty(envelope,"pos",QPointF(-246,165));
-    state1->assignProperty(compass,"pos",QPointF(-246,190));
-    state1->assignProperty(clock,"pos",QPointF(-246,220));
-    state1->assignProperty(reload,"pos",QPointF(-60,120));
-    state1->assignProperty(reloca,"pos",QPointF(-60,180));
+    state1->assignProperty(m_widgetProxy,"pos",QPointF(-(m_personalInfo->width()),0));
+    state1->assignProperty(m_arrowbutton,"pos",QPointF(0,(m_personalInfo->height()/4)));
 
     // State 2
-    state2->assignProperty(infoTab,"pos",QPointF(0,110));
-    state2->assignProperty(userPic,"pos",QPointF(10,120));
-    state2->assignProperty(envelope,"pos",QPointF(84,165));
-    state2->assignProperty(compass,"pos",QPointF(84,190));
-    state2->assignProperty(clock,"pos",QPointF(84,220));
-    state2->assignProperty(reload,"pos",QPointF(290,120));
-    state2->assignProperty(reloca,"pos",QPointF(290,180));
-
-    QAbstractTransition *trans1 = state1->addTransition(infoTab,SIGNAL(clicked()),state2);
-    trans1->addAnimation(new QPropertyAnimation(infoTab,"pos"));
-    trans1->addAnimation(new QPropertyAnimation(userPic,"pos"));
-    trans1->addAnimation(new QPropertyAnimation(envelope,"pos"));
-    trans1->addAnimation(new QPropertyAnimation(compass,"pos"));
-    trans1->addAnimation(new QPropertyAnimation(clock,"pos"));
-    trans1->addAnimation(new QPropertyAnimation(reload,"pos"));
-    trans1->addAnimation(new QPropertyAnimation(reloca,"pos"));
-
-    QAbstractTransition *trans2 = state2->addTransition(infoTab,SIGNAL(clicked()),state1);
-    trans2->addAnimation(new QPropertyAnimation(infoTab,"pos"));
-    trans2->addAnimation(new QPropertyAnimation(userPic,"pos"));
-    trans2->addAnimation(new QPropertyAnimation(envelope,"pos"));
-    trans2->addAnimation(new QPropertyAnimation(compass,"pos"));
-    trans2->addAnimation(new QPropertyAnimation(clock,"pos"));
-    trans2->addAnimation(new QPropertyAnimation(reload,"pos"));
-    trans2->addAnimation(new QPropertyAnimation(reloca,"pos"));
+    state2->assignProperty(m_widgetProxy,"pos",QPointF(0,0));
+    state2->assignProperty(m_arrowbutton,"pos",QPointF((m_personalInfo->width()),(m_personalInfo->height()/4)));
+
+    m_trans1 = state1->addTransition(m_arrowbutton,SIGNAL(clicked()),state2);
+    m_anim1 = new QPropertyAnimation(m_widgetProxy,"pos");
+    m_anim2 = new QPropertyAnimation(m_arrowbutton,"pos");
+    m_trans1->addAnimation(m_anim1);
+    m_trans1->addAnimation(m_anim2);
+
+    m_trans2 = state2->addTransition(m_arrowbutton,SIGNAL(clicked()),state1);
+    m_anim3= new QPropertyAnimation(m_widgetProxy,"pos");
+    m_anim4= new QPropertyAnimation(m_arrowbutton,"pos");
+    m_trans2->addAnimation(m_anim3);
+    m_trans2->addAnimation(m_anim4);
 
     machine->start();
 
-    vbox = new QVBoxLayout(this);
-    vbox->addWidget(view);
+    m_vbox = new QVBoxLayout(this);
+    m_vbox->addWidget(view);
+    m_vbox->setMargin(0);
+
+    setObjectName("List view");
+
+    //connect(m_personalInfo,SIGNAL(launchMessageUpdate()),this,SLOT(updateMessage()));
 }
 
 ListViewScreen::~ListViewScreen()
 {
-    if (vbox)
-        delete vbox;
+    if (m_personalInfo)
+        delete m_personalInfo;
+    if (m_arrowbutton)
+        delete m_arrowbutton;
+    if (m_trans1)
+        delete m_trans1;
+    if (m_trans2)
+        delete m_trans2;
+    if (m_anim1)
+        delete m_anim1;
+    if (m_anim2)
+        delete m_anim2;
+    if (m_anim3)
+        delete m_anim3;
+    if (m_anim4)
+        delete m_anim4;
+    if (m_vbox)
+        delete m_vbox;
+}
+
+void ListViewScreen::updateMessage()
+{
+   qDebug() << __PRETTY_FUNCTION__;
+//   m_locationDialog->exec();
 }