Special case Start Date and Time in the cache

They are defined as metadata but stored in a different way.
Enables Start_Date and Start_Time in formulas to match autocompleters.
Fixes #4391
This commit is contained in:
Alejandro Martinez
2023-09-02 10:40:53 -03:00
parent 110652bf40
commit 8f2ba0e11d
2 changed files with 20 additions and 2 deletions

View File

@@ -806,6 +806,24 @@ RideItem::getStdVarianceForSymbol(QString name)
return 0.0f;
}
// access the metadata
QString
RideItem::getText(QString name, QString fallback) const
{
// Start Date and Time are special cases, defined as metadata fields but stored in a different way
if (name == "Start Date") return QString::number(QDate(1900,01,01).daysTo(dateTime.date()));
if (name == "Start Time") return QString::number(QTime(0,0,0).secsTo(dateTime.time()));
return metadata_.value(name, fallback);
}
bool
RideItem::hasText(QString name) const
{
if (name == "Start Date") return true;
if (name == "Start Time") return true;
return metadata_.contains(name);
}
QString
RideItem::getStringForSymbol(QString name, bool useMetricUnits)
{

View File

@@ -130,8 +130,8 @@ class RideItem : public QObject
QString getStringForSymbol(QString name, bool useMetricUnits=true);
// access the metadata
QString getText(QString name, QString fallback) const { return metadata_.value(name, fallback); }
bool hasText(QString name) { return metadata_.contains(name); }
QString getText(QString name, QString fallback) const;
bool hasText(QString name) const;
// get at the first class data
QString path;