-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCutdownTimer.cpp
117 lines (96 loc) · 2.38 KB
/
CutdownTimer.cpp
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include "CutdownTimer.h"
/*!
* \brief CutdownTimer::CutdownTimer - konstruktor klasy. W ciele znajdują się połączenia sygnałów i slotów, ustawienie czasu do powtarzania i odliczania.
* \param parent - wskaźnik na obiekt nadrzędny.
* \param sek - nastawa czasu dla licznika, wyrażana w sekundach.
* \param repetative - flaga do zapętlania licznika.
*
*/
CutdownTimer::CutdownTimer(QObject *parent, int sek, bool repetative) :
QTimer(parent)
{
this->setInterval(1000);
setRepetating(repetative);
setTimeToElaps(sek);
connect(this, SIGNAL(elapsStrated()),
this, SLOT(start()));
connect(this, SIGNAL(timeout()),
this, SLOT(isElapsed()));
connect(this, SIGNAL(elapsed()),
this, SLOT(elapsStop()));
}
/*!
* \brief CutdownTimer::elapsStrat() - metoda wyzwalająca licznik czasu.
*/
void CutdownTimer::elapsStrat()
{
timeElapsed = 0;
emit elapsStrated();
}
/*!
* \brief CutdownTimer::setRepetating() - metoda ustawiająca flagę zapętlenia licznika.
*/
void CutdownTimer::setRepetating(bool rep)
{
isRepetating = rep;
}
/*!
* \brief CutdownTimer::getRepetating() - metoda zwracająca flagę zapętlenia licznika.
*/
bool CutdownTimer::getRepetating()
{
return isRepetating;
}
/*!
* \brief CutdownTimer::isElapsed() - funckja do odliczania czasu.
*/
void CutdownTimer::isElapsed()
{
timeElapsed++;
if((getTimeToElaps() - timeElapsed) == 0)
{
timeElapsed = 0;
emit elapsed();
}
}
/*!
* \brief CutdownTimer::elapsStop() - funkcja do sprawdzania cykli odliczania.
*/
void CutdownTimer::elapsStop()
{
if(!getRepetating())
{
this->stop();
}
}
/*!
* \brief CutdownTimer::setTimeToElaps(int sek) - funkcja ustawiająca czas do odliczania.
*
* \param sek - zmienna typu integer zawierająca ilość sekund do odliczania.
*/
void CutdownTimer::setTimeToElaps(int sek)
{
_timeToElaps = sek;
}
/*!
* \brief CutdownTimer::getTimeToElaps() - funkcja pobierająca czas do odliczania.
*/
int CutdownTimer::getTimeToElaps()
{
return _timeToElaps;
}
/*!
* \brief CutdownTimer::getRameining() - funkcja zwracająca czas pozostały do odlicznia.
*/
int CutdownTimer::getRameining()
{
return (timeElapsed-getTimeToElaps());
}
/*!
* \brief CutdownTimer::~CutdownTimer() - destruktor
*/
CutdownTimer::~CutdownTimer()
{
this->stop();
this->deleteLater();
}