mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-13 16:18:42 +00:00
Merge pull request #1282 from amtriathlon/master
Added completers to Sport and Workout Code fields in ManualRideDialog
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
#include "RideCache.h"
|
||||
#include "RideItem.h"
|
||||
#include "Settings.h"
|
||||
#include "RideMetadata.h"
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <QtGui>
|
||||
@@ -165,6 +166,17 @@ ManualRideDialog::ManualRideDialog(Context *context) : context(context)
|
||||
QLabel *notesLabel = new QLabel(tr("Notes:"), this);
|
||||
notes = new QTextEdit(this);
|
||||
|
||||
// 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));
|
||||
else if (field.name == "Workout Code")
|
||||
wcode->setCompleter(field.getCompleter(this));
|
||||
}
|
||||
}
|
||||
|
||||
// METRICS
|
||||
|
||||
// average heartrate
|
||||
|
||||
@@ -479,25 +479,7 @@ FormField::FormField(FieldDefinition field, RideMetadata *meta) : definition(fie
|
||||
case FIELD_TEXT : // text
|
||||
case FIELD_SHORTTEXT : // shorttext
|
||||
|
||||
if (field.values.count()) {
|
||||
if (field.values.count() == 1 && field.values.at(0) == "*") {
|
||||
|
||||
// get the metdata values from the metric db ....
|
||||
QStringList values;
|
||||
|
||||
// set values from whatever we have done in the past
|
||||
completer = new QCompleter(values, this);
|
||||
completer->setCaseSensitivity(Qt::CaseInsensitive);
|
||||
completer->setCompletionMode(QCompleter::InlineCompletion);
|
||||
|
||||
} else {
|
||||
|
||||
// user specified restricted values
|
||||
completer = new QCompleter(field.values, this);
|
||||
completer->setCaseSensitivity(Qt::CaseInsensitive);
|
||||
completer->setCompletionMode(QCompleter::UnfilteredPopupCompletion);
|
||||
}
|
||||
}
|
||||
completer = field.getCompleter(this);
|
||||
widget = new QLineEdit(this);
|
||||
dynamic_cast<QLineEdit*>(widget)->setCompleter(completer);
|
||||
|
||||
@@ -977,6 +959,32 @@ FieldDefinition::fingerprint(QList<FieldDefinition> list)
|
||||
return qChecksum(ba, ba.length());
|
||||
}
|
||||
|
||||
QCompleter *
|
||||
FieldDefinition::getCompleter(QObject *parent)
|
||||
{
|
||||
QCompleter *completer = NULL;
|
||||
if (values.count()) {
|
||||
if (values.count() == 1 && values.at(0) == "*") {
|
||||
|
||||
// get the metdata values from the metric db ....
|
||||
QStringList past_values;
|
||||
|
||||
// set values from whatever we have done in the past
|
||||
completer = new QCompleter(past_values, parent);
|
||||
completer->setCaseSensitivity(Qt::CaseInsensitive);
|
||||
completer->setCompletionMode(QCompleter::InlineCompletion);
|
||||
|
||||
} else {
|
||||
|
||||
// user specified restricted values
|
||||
completer = new QCompleter(values, parent);
|
||||
completer->setCaseSensitivity(Qt::CaseInsensitive);
|
||||
completer->setCompletionMode(QCompleter::UnfilteredPopupCompletion);
|
||||
}
|
||||
}
|
||||
return completer;
|
||||
}
|
||||
|
||||
unsigned long
|
||||
KeywordDefinition::fingerprint(QList<KeywordDefinition> list)
|
||||
{
|
||||
|
||||
@@ -65,6 +65,7 @@ class FieldDefinition
|
||||
QStringList values; // autocomplete 'defaults'
|
||||
|
||||
static unsigned long fingerprint(QList<FieldDefinition>);
|
||||
QCompleter *getCompleter(QObject *parent);
|
||||
|
||||
FieldDefinition() : tab(""), name(""), type(0), diary(false), values() {}
|
||||
FieldDefinition(QString tab, QString name, int type, bool diary, QStringList values)
|
||||
|
||||
Reference in New Issue
Block a user