#include "headers/speedtimerqmladapter.h" SpeedTimerQmlAdapter::SpeedTimerQmlAdapter(QObject *parent) : QObject(parent) { this->state = SpeedTimer::IDLE; connect(pGlobalSpeedTimer, &SpeedTimer::stateChanged, this, &SpeedTimerQmlAdapter::setState); connect(pGlobalSpeedTimer, &SpeedTimer::startCanceled, this, &SpeedTimerQmlAdapter::startCanceled); this->refreshTimer = new QTimer(); refreshTimer->setInterval(1); refreshTimer->setSingleShot(true); refreshTimer->connect(refreshTimer, &QTimer::timeout, this, &SpeedTimerQmlAdapter::refreshValues); refreshTimer->start(); } QString SpeedTimerQmlAdapter::getState(){ switch(state){ case SpeedTimer::IDLE: return("IDLE"); case SpeedTimer::STARTING: return("STARTING"); case SpeedTimer::RUNNING: return("RUNNING"); case SpeedTimer::STOPPED: return("STOPPED"); } } void SpeedTimerQmlAdapter::setState(SpeedTimer::timerState newState){ this->state = newState; qDebug() << "tmer state changed: " << newState; emit this->stateChanged(newState); } QString SpeedTimerQmlAdapter::getText(){ return(this->text); } void SpeedTimerQmlAdapter::refreshValues(){ //qDebug() << this->getState(); QString newText; switch (this->state) { case SpeedTimer::IDLE: newText = "Click Start to start"; break; case SpeedTimer::STARTING: newText = "0.000 sec"; break; case SpeedTimer::RUNNING: newText = QString::number( pGlobalSpeedTimer->getCurrTime() / 1000.0, 'f', 3 ) + " sec"; break; case SpeedTimer::STOPPED: newText = QString::number( pGlobalSpeedTimer->stoppedTime / 1000.0, 'f', 3 ) + " sec"; } if(this->text != newText){ this->text = newText; emit textChanged(); } //qDebug() << this->text; refreshTimer->start(); } bool SpeedTimerQmlAdapter::setStarting(){ if(pGlobalSpeedTimer->remoteControlled){ return false; } pGlobalSpeedTimer->setState(SpeedTimer::STARTING); return true; } bool SpeedTimerQmlAdapter::start(){ if(pGlobalSpeedTimer->remoteControlled){ return false; } pGlobalSpeedTimer->start(); return true; } bool SpeedTimerQmlAdapter::stop(QString type){ if(pGlobalSpeedTimer->remoteControlled){ return false; } pGlobalSpeedTimer->stop(type); return true; } bool SpeedTimerQmlAdapter::reset(){ if(pGlobalSpeedTimer->remoteControlled){ return false; } pGlobalSpeedTimer->reset(); return true; }