1 #include "slidewidget.h"
\r
3 SlideWidget::SlideWidget(QWidget *parent) :
\r
8 QAbstractTransition * t1 = stateIn.addTransition(this, SIGNAL(signalDoStateOut()), &stateOut);
\r
9 QAbstractTransition * t2 = stateOut.addTransition(this, SIGNAL(signalDoStateIn()), &stateIn);
\r
11 t1->addAnimation(&animPosOut);
\r
12 t2->addAnimation(&animPosIn);
\r
14 connect(&animPosIn, SIGNAL(finished()), this, SIGNAL(signalTransitionInFinished()));
\r
15 connect(&animPosIn, SIGNAL(finished()), this, SLOT(slotStateInFinished()));
\r
16 connect(&animPosOut, SIGNAL(finished()), this, SIGNAL(signalTransitionOutFinished()));
\r
17 connect(&animPosOut, SIGNAL(finished()), this, SLOT(slotStateOutFinished()));
\r
19 machine.addState(&stateIn);
\r
20 machine.addState(&stateOut);
\r
21 machine.setInitialState(&stateOut);
\r
25 SlideWidget::~SlideWidget()
\r
29 void SlideWidget::initStates()
\r
31 animPosIn.setTargetObject(this);
\r
32 animPosIn.setPropertyName("pos");
\r
33 animPosIn.setDuration(500);
\r
34 animPosIn.setEasingCurve(QEasingCurve::OutExpo);
\r
36 animPosOut.setTargetObject(this);
\r
37 animPosOut.setPropertyName("pos");
\r
38 animPosOut.setDuration(500);
\r
39 animPosOut.setEasingCurve(QEasingCurve::OutExpo);
\r
41 stateIn.assignProperty(this, "pos", QPoint(0, 0));
\r
43 stateOut.assignProperty(this, "pos", QPoint(0, -this->height()));
\r
46 void SlideWidget::setStateIn()
\r
48 qDebug() << "State In";
\r
49 emit signalDoStateIn();
\r
52 void SlideWidget::setStateOut()
\r
54 qDebug() << "State Out";
\r
55 emit signalDoStateOut();
\r
58 void SlideWidget::slotStateInFinished()
\r
60 qDebug() << "State in finished" << pos();
\r
63 void SlideWidget::slotStateOutFinished()
\r
65 qDebug() << "State out finished" << pos();
\r