Added app defined log fields and editable comboboxes

This commit is contained in:
Jordan Sherer 2019-06-07 14:19:37 -04:00
parent 6cd22b48a9
commit 87eff6070d
2 changed files with 13 additions and 4 deletions

View File

@ -7,7 +7,6 @@
const QStringList ADIF_FIELDS = {
// ADIF 3.1.0 - pulled from http://www.adif.org/310/adx310.xsd on 2019-06-04
"USERDEF",
"APP",
"ADDRESS",
"ADDRESS_INTL",
@ -365,8 +364,14 @@ QByteArray ADIF::QSOToADIF(QString const& hisCall, QString const& hisGrid, QStri
">" + operator_call;
foreach(auto key, additionalFields.keys()){
auto value = additionalFields[key].toString();
t += QString(" <%1:%2>%3").arg(key).arg(value.length()).arg(value);
auto k = key.toUpper();
auto value = additionalFields[k].toString();
if(ADIF_FIELDS.contains(k)){
t += QString(" <%1:%2>%3").arg(k).arg(value.length()).arg(value);
} else {
t += QString(" <APP_JS8CALL_%1:%2>%3").arg(k).arg(value.length()).arg(value);
}
}
return t.toLatin1 ();

View File

@ -81,7 +81,10 @@ void LogQSO::createAdditionalField(QString key, QString value){
QComboBox * c = new QComboBox(this);
c->insertItems(0, ADIF_FIELDS);
c->insertItem(0, "");
c->setEditable(false);
c->setEditable(true);
c->setAutoCompletion(true);
c->setAutoCompletionCaseSensitivity(Qt::CaseInsensitive);
c->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
connect(c, &QComboBox::currentTextChanged, this, [this, l](const QString &text){
l->setProperty("fieldKey", QVariant(text));
});
@ -102,6 +105,7 @@ void LogQSO::createAdditionalField(QString key, QString value){
m_additionalFieldsControls.append(l);
ui->additionalFields->setVisible(true);
ui->additionalFields->adjustSize();
}
QMap<QString, QVariant> LogQSO::collectAdditionalFields(){