mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-04-15 05:32:21 +00:00
Activity Manual Entry - Metadata entry fields mimic RideMetadata behavior
Changed Notes format to preserve columns and Sport/Workout Code completers to honor retrieve previous values on "*"
This commit is contained in:
@@ -175,15 +175,16 @@ ManualRideDialog::ManualRideDialog(Context *context) : context(context)
|
||||
sport = new QLineEdit(this);
|
||||
QLabel *notesLabel = new QLabel(tr("Notes:"), this);
|
||||
notes = new QTextEdit(this);
|
||||
notes->setAcceptRichText(false);
|
||||
|
||||
// Set completer for Sport and Workout Code fields
|
||||
RideMetadata *rideMetadata = context->athlete->rideMetadata();
|
||||
if (rideMetadata) {
|
||||
foreach (FieldDefinition field, rideMetadata->getFields()) {
|
||||
if (field.name == "Sport")
|
||||
sport->setCompleter(field.getCompleter(this));
|
||||
sport->setCompleter(field.getCompleter(this, context->athlete->rideCache));
|
||||
else if (field.name == "Workout Code")
|
||||
wcode->setCompleter(field.getCompleter(this));
|
||||
wcode->setCompleter(field.getCompleter(this, context->athlete->rideCache));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -476,7 +477,7 @@ ManualRideDialog::okClicked()
|
||||
// basic metadata
|
||||
rideFile->setTag("Sport", sport->text());
|
||||
rideFile->setTag("Workout Code", wcode->text());
|
||||
rideFile->setTag("Notes", notes->toPlainText());
|
||||
rideFile->setTag("Notes", notes->document()->toPlainText());
|
||||
|
||||
// average metrics
|
||||
if (avgBPM->value()) {
|
||||
|
||||
@@ -505,7 +505,7 @@ FormField::FormField(FieldDefinition field, RideMetadata *meta) : definition(fie
|
||||
case FIELD_TEXT : // text
|
||||
case FIELD_SHORTTEXT : // shorttext
|
||||
|
||||
completer = field.getCompleter(this);
|
||||
completer = field.getCompleter(this, meta->context->athlete->rideCache);
|
||||
widget = new QLineEdit(this);
|
||||
dynamic_cast<QLineEdit*>(widget)->setCompleter(completer);
|
||||
|
||||
@@ -1083,21 +1083,7 @@ FormField::metadataChanged()
|
||||
switch (definition.type) {
|
||||
case FIELD_TEXT : // text
|
||||
case FIELD_SHORTTEXT : // shorttext
|
||||
{
|
||||
if (meta->context->athlete->rideCache && completer &&
|
||||
definition.values.count() == 1 && definition.values.at(0) == "*") {
|
||||
|
||||
// set completer if needed for wildcard matching
|
||||
QStringList values = meta->context->athlete->rideCache->getDistinctValues(definition.name);
|
||||
|
||||
delete completer;
|
||||
completer = new QCompleter(values, this);
|
||||
completer->setCaseSensitivity(Qt::CaseInsensitive);
|
||||
completer->setCompletionMode(QCompleter::InlineCompletion);
|
||||
dynamic_cast<QLineEdit*>(widget)->setCompleter(completer);
|
||||
}
|
||||
((QLineEdit*)widget)->setText(value);
|
||||
}
|
||||
break;
|
||||
|
||||
case FIELD_TEXTBOX : // textbox
|
||||
@@ -1169,14 +1155,14 @@ FieldDefinition::fingerprint(QList<FieldDefinition> list)
|
||||
}
|
||||
|
||||
QCompleter *
|
||||
FieldDefinition::getCompleter(QObject *parent)
|
||||
FieldDefinition::getCompleter(QObject *parent, RideCache* rideCache)
|
||||
{
|
||||
QCompleter *completer = NULL;
|
||||
if (values.count()) {
|
||||
if (values.count() == 1 && values.at(0) == "*") {
|
||||
if (values.count() == 1 && values.at(0) == "*" && rideCache) {
|
||||
|
||||
// get the metdata values from the metric db ....
|
||||
QStringList past_values;
|
||||
// get the metdata values from the ride cache
|
||||
QStringList past_values = rideCache->getDistinctValues(name);
|
||||
|
||||
// set values from whatever we have done in the past
|
||||
completer = new QCompleter(past_values, parent);
|
||||
|
||||
@@ -65,7 +65,7 @@ class FieldDefinition
|
||||
QStringList values; // autocomplete 'defaults'
|
||||
|
||||
static unsigned long fingerprint(QList<FieldDefinition>);
|
||||
QCompleter *getCompleter(QObject *parent);
|
||||
QCompleter *getCompleter(QObject *parent, RideCache *rideCache);
|
||||
QString calendarText(QString value);
|
||||
|
||||
FieldDefinition() : tab(""), name(""), type(0), diary(false), values() {}
|
||||
|
||||
Reference in New Issue
Block a user