Train View - Save workout name as Route metadata

Fixes #3630
This commit is contained in:
Ale Martinez
2021-05-07 21:03:56 -03:00
parent 0a03aac7e8
commit ac606065aa
2 changed files with 15 additions and 4 deletions

View File

@@ -195,7 +195,7 @@ RideFile *CsvFileReader::openRideFile(QFile &file, QStringList &errors, QList<Ri
bool dfpmExists = false;
int iBikeVersion = 0;
int xTrainVersion = 0;
//UNUSED int xTrainVersion = 0;
//UNUSED int timestampIndex=-1;
int secsIndex=-1;
@@ -273,7 +273,7 @@ RideFile *CsvFileReader::openRideFile(QFile &file, QStringList &errors, QList<Ri
rideFile->setDeviceType("xtrainCSV");
rideFile->setFileFormat("xtrainCSV");
unitsHeader = 2;
xTrainVersion = line.section( ',', 1, 1 ).toInt();
//UNUSED xTrainVersion = line.section( ',', 1, 1 ).toInt();
++lineno;
continue;
@@ -1289,8 +1289,10 @@ RideFile *CsvFileReader::openRideFile(QFile &file, QStringList &errors, QList<Ri
return NULL;
}
// GC naming convention, with optional workout name for Train View
// yyyy_MM_dd_hh_mm_ss[_workoutname].csv
QRegExp rideTime("^.*/(\\d\\d\\d\\d)_(\\d\\d)_(\\d\\d)_"
"(\\d\\d)_(\\d\\d)_(\\d\\d)\\.csv$");
"(\\d\\d)_(\\d\\d)_(\\d\\d)(_[^\\.]*)?\\.csv$");
rideTime.setCaseSensitivity(Qt::CaseInsensitive);
if (startTime != QDateTime()) {
@@ -1309,6 +1311,9 @@ RideFile *CsvFileReader::openRideFile(QFile &file, QStringList &errors, QList<Ri
rideTime.cap(6).toInt()));
rideFile->setStartTime(datetime);
// Optional workout name saved as Route metadata if present
if (!rideTime.cap(7).isEmpty()) rideFile->setTag("Route", rideTime.cap(7).mid(1));
} else {
// Could be yyyyddmm_hhmmss_NAME.csv (case insensitive)

View File

@@ -1270,10 +1270,16 @@ void TrainSidebar::Start() // when start button is pressed
}
if (status & RT_RECORDING) {
QString workoutName;
if (context->currentErgFile()) {
workoutName = QFileInfo(context->currentErgFile()->filename).baseName();
}
QDateTime now = QDateTime::currentDateTime();
// setup file
QString filename = now.toString(QString("yyyy_MM_dd_hh_mm_ss")) + QString(".csv");
QString filename = now.toString(QString("yyyy_MM_dd_hh_mm_ss")) + "_" + workoutName + QString(".csv");
if (!context->athlete->home->records().exists())
context->athlete->home->createAllSubdirs();