You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

115 lines
3.1 KiB

//------------------------------------------------------------------------------
//
// Project: Anonymizer
//
// Brno University of Technology
// Faculty of Information Technology
//
//------------------------------------------------------------------------------
//
// This project was financially supported by project VG20102015006 funds
// provided by Ministry of the Interior of the Czech republic.
//
//------------------------------------------------------------------------------
/*!
@file timelabel.cpp
@brief Implementation of methods ...
@details Details
@authors Martin Borek (mborekcz@gmail.com)
@authors Filip Orsag (orsag@fit.vutbr.cz)
@date 2014-2015
@note This project was supported by MV CR project VG20102015006.
@copyright BUT OPEN SOURCE LICENCE (see License.txt)
*/
#include "timelabel.h"
#include <QDebug>
void TimeConversion::convert_time(Time &converted)
{
converted.hr = converted.raw / ms2hr;
unsigned long rest = converted.raw % ms2hr;
converted.min = rest / ms2min;
rest %= ms2min;
//converted.sec = (rest % ms2min) / ms2sec;
converted.sec = rest / ms2sec;
converted.ms = rest % ms2sec;
}
void TimeConversion::Time2QString(Time const &time, QString &timeString, bool showHours)
{
timeString = time.hr ? "%1:%2:%3.%4" : "%1:%2.%3";
if (showHours)
timeString = timeString.arg(time.hr);
timeString = timeString.arg(time.min, (showHours ? 2 : 1), 10, QChar('0'));
timeString = timeString.arg(time.sec, 2, 10, QChar('0')); // Second argument ~ number of digits
timeString = timeString.arg(time.ms/100, 1, 10, QChar('0')); // Second argument ~ number of digits
}
TimeLabel::TimeLabel(QWidget *parent) : QLabel(parent)
{
showHours = true;
totalTime.raw = 0;
currentTime.raw = 0;
}
TimeLabel::~TimeLabel()
{
}
void TimeLabel::set_total_time(const unsigned long &time)
{
totalTime.raw = time;
convert_time(totalTime);
if (totalTime.hr)
showHours = true;
else
showHours = false;
Time2QString(totalTime, totalTimeString, showHours);
}
void TimeLabel::display_time(const unsigned long &time, bool includeTotal)
{
currentTime.raw = time;
convert_time(currentTime);
if (currentTime.raw > totalTime.raw && currentTime.sec > totalTime.sec)
{
qDebug() << "Error: Current time is bigger than total time";
currentTime = totalTime;
}
Time2QString(currentTime, currentTimeString, showHours);
// qDebug() << "Time current:" << currentTimeString;
// qDebug() << "Time total:" << totalTimeString;
if (includeTotal)
setText(QString("%1 / %2").arg(currentTimeString).arg(totalTimeString));
else
setText(currentTimeString);
}
void TimeLabel::set_frame_count(unsigned long frameCount)
{
totalFrameCount = frameCount;
}
void TimeLabel::display_frame_num(unsigned long frameNumber, bool includeTotal)
{
if (includeTotal)
setText(QString("%1 / %2").arg(QString::number(frameNumber)).arg(QString::number(totalFrameCount)));
else
setText(QString::number(frameNumber));
}