-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtimetracker.h
More file actions
43 lines (34 loc) · 1.13 KB
/
timetracker.h
File metadata and controls
43 lines (34 loc) · 1.13 KB
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
#ifndef TIMETRACKER_H
#define TIMETRACKER_H
#include <QObject>
#include <QTimer>
#include <keyboardhandler.h>
class TimeTracker : public QObject
{
Q_OBJECT
public:
explicit TimeTracker(QObject* parent = nullptr);
Q_INVOKABLE void start(int endTime = 0); // запускает по текущему режиму
Q_INVOKABLE void stop();
Q_INVOKABLE void reset();
Q_INVOKABLE void setIsTimer(bool isTimer); // установить режим таймера/секундомера
signals:
void timeChanged(int newTime); // передаёт либо прошедшее время, либо оставшееся
void timerFinished();
public slots:
void setKeyboardHandler(KeyboardHandler* keyboardHandler);
QList<double> getListSpeed();
int getTime();
private slots:
void onTimeout();
private:
QTimer m_timer;
int m_elapsedTime; // для секундомера
int m_remainingTime; // для таймера
bool m_isTimer;
bool m_timerStarted;
double m_speed;
QList<double> m_speedLog;
KeyboardHandler* m_keyboardHandler;
};
#endif // TIMETRACKER_H