From 7f361ff48d32a04fd6d126e9adf052d75c4cb6cb Mon Sep 17 00:00:00 2001 From: Alejandro Martinez Date: Wed, 19 Aug 2015 21:26:28 -0300 Subject: [PATCH] Show field name in Calendar Text when field type is not text Fixes #1524 --- src/RideCache.cpp | 2 +- src/RideFile.cpp | 3 +-- src/RideMetadata.cpp | 21 +++++++++++++++++++-- src/RideMetadata.h | 1 + 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/RideCache.cpp b/src/RideCache.cpp index 60756f206..2d508229d 100644 --- a/src/RideCache.cpp +++ b/src/RideCache.cpp @@ -124,7 +124,7 @@ RideCache::configChanged(qint32 what) foreach (FieldDefinition field, context->athlete->rideMetadata()->getFields()) if (field.diary == true) - calendarText += QString("%1\n").arg(item->metadata_.value(field.name, "")); + calendarText += field.calendarText(item->metadata_.value(field.name, "")); item->metadata_.insert("Calendar Text", calendarText); } diff --git a/src/RideFile.cpp b/src/RideFile.cpp index 67faae9f1..b4dff43b0 100644 --- a/src/RideFile.cpp +++ b/src/RideFile.cpp @@ -618,8 +618,7 @@ RideFile *RideFileFactory::openRideFile(Context *context, QFile &file, QString calendarText; foreach (FieldDefinition field, context->athlete->rideMetadata()->getFields()) { if (field.diary == true && result->getTag(field.name, "") != "") { - calendarText += QString("%1\n") - .arg(result->getTag(field.name, "")); + calendarText += field.calendarText(result->getTag(field.name, "")); } } result->setTag("Calendar Text", calendarText); diff --git a/src/RideMetadata.cpp b/src/RideMetadata.cpp index 5c1ebdfac..b38c1ca7e 100644 --- a/src/RideMetadata.cpp +++ b/src/RideMetadata.cpp @@ -725,8 +725,7 @@ FormField::metadataFlush() QString calendarText; foreach (FieldDefinition field, meta->getFields()) { if (field.diary == true) { - calendarText += QString("%1\n") - .arg(ourRideItem->ride()->getTag(field.name, "")); + calendarText += field.calendarText(ourRideItem->ride()->getTag(field.name, "")); } } ourRideItem->ride()->setTag("Calendar Text", calendarText); @@ -1152,6 +1151,24 @@ FieldDefinition::getCompleter(QObject *parent) return completer; } +QString +FieldDefinition::calendarText(QString value) +{ + switch (type) { + case FIELD_INTEGER: + case FIELD_DOUBLE: + case FIELD_DATE: + case FIELD_TIME: + case FIELD_CHECKBOX: + return QString("%1: %2\n").arg(name).arg(value); + case FIELD_TEXT: + case FIELD_TEXTBOX: + case FIELD_SHORTTEXT: + default: + return QString("%1\n").arg(value); + } +} + unsigned long KeywordDefinition::fingerprint(QList list) { diff --git a/src/RideMetadata.h b/src/RideMetadata.h index ded8b09fc..c5569f2ab 100644 --- a/src/RideMetadata.h +++ b/src/RideMetadata.h @@ -66,6 +66,7 @@ class FieldDefinition static unsigned long fingerprint(QList); QCompleter *getCompleter(QObject *parent); + QString calendarText(QString value); FieldDefinition() : tab(""), name(""), type(0), diary(false), values() {} FieldDefinition(QString tab, QString name, int type, bool diary, QStringList values)