diff options
Diffstat (limited to 'src/aoclocklabel.cpp')
| -rw-r--r-- | src/aoclocklabel.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/aoclocklabel.cpp b/src/aoclocklabel.cpp new file mode 100644 index 00000000..4c9c4819 --- /dev/null +++ b/src/aoclocklabel.cpp @@ -0,0 +1,59 @@ +#include "aoclocklabel.h" + +AOClockLabel::AOClockLabel(QWidget *parent) : QLabel(parent) {} + +void AOClockLabel::start() +{ + timer.start(1000 / 60, this); +} + +void AOClockLabel::start(int msecs) +{ + this->set(msecs); + this->start(); +} + +void AOClockLabel::set(int msecs, bool update_text) +{ + target_time = QTime::currentTime().addMSecs(msecs); + if (update_text) + { + if (QTime::currentTime() >= target_time) + { + this->setText("00:00:00.000"); + } + else + { + QTime timeleft = QTime(0,0).addMSecs(QTime::currentTime().msecsTo(target_time)); + QString timestring = timeleft.toString("hh:mm:ss.zzz"); + this->setText(timestring); + } + } +} + +void AOClockLabel::pause() +{ + timer.stop(); +} + +void AOClockLabel::stop() +{ + this->setText("00:00:00.000"); + timer.stop(); +} + +void AOClockLabel::timerEvent(QTimerEvent *event) +{ + if (event->timerId() == timer.timerId()) { + if (QTime::currentTime() >= target_time) + { + this->stop(); + return; + } + QTime timeleft = QTime(0,0).addMSecs(QTime::currentTime().msecsTo(target_time)); + QString timestring = timeleft.toString("hh:mm:ss.zzz"); + this->setText(timestring); + } else { + QWidget::timerEvent(event); + } +} |
