File indexing completed on 2024-05-05 05:54:31
0001 /* 0002 SPDX-FileCopyrightText: 2014 Elvis Angelaccio <elvis.angelaccio@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "lap.h" 0008 0009 #include <QJsonObject> 0010 0011 Lap::Lap(const QTime& lap) : 0012 m_time {lap} 0013 {} 0014 0015 QTime Lap::time() const 0016 { 0017 return m_time; 0018 } 0019 0020 QTime Lap::timeTo(const Lap& lap) const 0021 { 0022 if (lap.time() < m_time) 0023 return {0, 0}; 0024 0025 const auto zero = QTime {0, 0}; 0026 return zero.addMSecs(m_time.msecsTo(lap.time())); 0027 } 0028 0029 void Lap::setRelativeTime(const QString& rel) 0030 { 0031 m_relativeTime = rel; 0032 } 0033 0034 QString Lap::relativeTime() const 0035 { 0036 return m_relativeTime; 0037 } 0038 0039 void Lap::setAbsoluteTime(const QString& abs) 0040 { 0041 m_absoluteTime = abs; 0042 } 0043 0044 QString Lap::absoluteTime() const 0045 { 0046 return m_absoluteTime; 0047 } 0048 0049 void Lap::setNote(const QString& note) 0050 { 0051 m_note = note; 0052 } 0053 0054 QString Lap::note() const 0055 { 0056 return m_note; 0057 } 0058 0059 int Lap::raw() const 0060 { 0061 const auto zero = QTime {0, 0}; 0062 return zero.msecsTo(m_time); 0063 } 0064 0065 void Lap::write(QJsonObject& json) const 0066 { 0067 json[QStringLiteral("time")] = raw(); 0068 json[QStringLiteral("reltime")] = m_relativeTime; 0069 json[QStringLiteral("abstime")] = m_absoluteTime; 0070 json[QStringLiteral("note")] = m_note; 0071 } 0072 0073 Lap Lap::fromJson(const QJsonObject& json) 0074 { 0075 auto lap = fromRawData(json[QStringLiteral("time")].toInt()); 0076 lap.m_relativeTime = json[QStringLiteral("reltime")].toString(); 0077 lap.m_absoluteTime = json[QStringLiteral("abstime")].toString(); 0078 lap.m_note = json[QStringLiteral("note")].toString(); 0079 0080 return lap; 0081 } 0082 0083 Lap Lap::fromRawData(int rawData) 0084 { 0085 if (rawData < 0) { 0086 return Lap {}; 0087 } 0088 0089 const auto zero = QTime {0, 0}; 0090 return Lap {zero.addMSecs(rawData)}; 0091 }