blob: c2bf7a8daa5cfe25eb82f3d5cc7454aa7a1325a2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#pragma once
#include <QObject>
#include <QParallelAnimationGroup>
#include <QTimer>
namespace kal
{
class ScreenSlideTimer : public QObject
{
Q_OBJECT
public:
static const int TRANSITION_BOOKEND_DELAY = 300;
explicit ScreenSlideTimer(QObject *parent = nullptr);
virtual ~ScreenSlideTimer();
void addAnimation(QAbstractAnimation *animation);
public Q_SLOTS:
void start();
void stop();
Q_SIGNALS:
void started();
void finished();
private:
enum TransitionState
{
NoTransition,
PreTransition,
GroupTransition,
PostTransition,
};
bool m_running = false;
TransitionState m_state = NoTransition;
QParallelAnimationGroup *m_group;
QTimer *m_pause;
private Q_SLOTS:
void startNextState();
};
} // namespace kal
|