Boxing Timer  0.1a
boxingtimer.h
Go to the documentation of this file.
1 #ifndef BOXINGTIMER_H
2 #define BOXINGTIMER_H
3 
4 #include <QTimer>
5 #include <QString>
6 #include <QStringList>
7 
8 #ifdef QT_DEBUG
9  #include <QDebug>
10 #endif
11 
16 class QSound;
17 class BoxingSettings;
18 
27 class BoxingTimer : public QTimer {
28  Q_OBJECT
29  Q_ENUMS(Status)
30 
31 
33  Q_PROPERTY(QString roundsToString READ roundsToString NOTIFY roundsToStringChanged)
34  Q_PROPERTY(Status status READ getStatus WRITE setStatus NOTIFY statusChanged)
35  Q_PROPERTY(bool isActive READ isActive NOTIFY activeChanged)
36  Q_PROPERTY(QString preset READ getPreset NOTIFY presetChanged)
39  public:
40 
48  Q_INVOKABLE void restore();
49 
57  Q_INVOKABLE void loadPreset(const QString &preset);
58 
65  explicit BoxingTimer();
66 
74  const QString roundsToString();
75 
83  const QString remainingTimeToString();
84 
91  enum class Status : short {
92  Default = 0,
93  Start,
94  Rest,
95  Pause,
96  Reset,
97  Stop
98  };
99 
105  Status getStatus() { return this->mStatus; }
106 
113  void setStatus(const Status &status);
114 
120  const QString getPreset();
121 
122  public slots:
128  void applyStatus();
129 
136 
137  protected:
143  void stop();
144 
150  void start(const int &milliseconds);
151 
152  private:
153  int mRound;
154 
155  int mRoundsMilliseconds;
156  int mRemainingMilliseconds;
157 
158  int mInnerTime;
159  int mNumberOfInnerTimers;
160  int mInnerRemainingMilliseconds;
161 
162  void setRemainingMilliseconds(const int &milliseconds);
163  void setRound(const int &round);
164 
165  QSound *playBell;
166  QSound *restBell;
167  QSound *stopBell;
168  QSound *innerBell;
169 
175  void songsBell();
176 
177  Status mStatus;
178  Status mOldStatus;
179 
180  BoxingSettings *settings;
181 
187  void nextRound();
188 
194  void updateInnerRemainingMilliseconds();
195 
201  void setInnerTimers();
202 
203  signals:
205  void roundsToStringChanged();
206 
207  void statusChanged();
208  void presetChanged();
209  void activeChanged();
210 };
211 
212 Q_DECLARE_METATYPE(BoxingTimer::Status)
213 
214 #endif // BOXINGTIMER_H
BoxingTimer()
Default constructor.
Definition: boxingtimer.cpp:9
Q_INVOKABLE void loadPreset(const QString &preset)
Load the preset to change settings of timer.
Definition: boxingtimer.cpp:190
const QString remainingTimeToString()
Convert remaining milliseconds in human readable time.
Definition: boxingtimer.cpp:155
Q_INVOKABLE void restore()
Start or restore the timer.
Definition: boxingtimer.cpp:169
void stop()
Override of stop function to emit statusChanged() signal.
Definition: boxingtimer.cpp:56
const QString roundsToString()
Convert round and total rounds for view.
Definition: boxingtimer.cpp:177
Status
Define the status of the timer Some statuses are not saved, they are used to activate something...
Definition: boxingtimer.h:91
void start(const int &milliseconds)
Override of start function to emit statusChanged() signal.
Definition: boxingtimer.cpp:62
void setStatus(const Status &status)
Definition: boxingtimer.cpp:46
void activeChanged()
void roundsToStringChanged()
void statusChanged()
Status getStatus()
Definition: boxingtimer.h:105
void applyStatus()
Apply status and exec relative functions.
Definition: boxingtimer.cpp:68
void presetChanged()
void updateRemainingMilliseconds()
Switch milliseconds from round to rest and back.
Definition: boxingtimer.cpp:107
Handle settings about timer. Can save, load and delete a specific preset.
Definition: boxingsettings.h:20
Boxing timer class.
Definition: boxingtimer.h:27
void remainingTimeToStringChanged()
const QString getPreset()
Definition: boxingtimer.cpp:30