core: port tag-list to C++

Also adds a new test, which tests merging of two tag-lists.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2024-05-29 17:57:48 +02:00 committed by bstoeger
parent 640ecb345b
commit f18acf6fb9
25 changed files with 195 additions and 227 deletions

View file

@ -341,11 +341,8 @@ void DiveComponentSelection::buttonClicked(QAbstractButton *button)
text << tr("Suit: ") << current_dive->suit << "\n";
if (what-> tags) {
text << tr("Tags: ");
tag_entry *entry = current_dive->tag_list;
while (entry) {
text << entry->tag->name.c_str() << " ";
entry = entry->next;
}
for (const divetag *tag: current_dive->tags)
text << tag->name.c_str() << " ";
text << "\n";
}
if (what->cylinders) {

View file

@ -118,7 +118,7 @@ void TabDiveNotes::divesChanged(const QVector<dive *> &dives, DiveField field)
if (field.divesite)
updateDiveSite(currentDive);
if (field.tags)
ui.tagWidget->setText(QString::fromStdString(taglist_get_tagstring(currentDive->tag_list)));
ui.tagWidget->setText(QString::fromStdString(taglist_get_tagstring(currentDive->tags)));
if (field.buddy)
ui.buddy->setText(currentDive->buddy);
if (field.diveguide)
@ -253,7 +253,7 @@ void TabDiveNotes::updateData(const std::vector<dive *> &, dive *currentDive, in
// reset labels in case we last displayed trip notes
ui.LocationLabel->setText(tr("Location"));
ui.NotesLabel->setText(tr("Notes"));
ui.tagWidget->setText(QString::fromStdString(taglist_get_tagstring(currentDive->tag_list)));
ui.tagWidget->setText(QString::fromStdString(taglist_get_tagstring(currentDive->tags)));
bool isManual = is_dc_manually_added_dive(&currentDive->dcs[0]);
ui.depth->setVisible(isManual);
ui.depthLabel->setVisible(isManual);

View file

@ -552,7 +552,7 @@ QVariant TemplateLayout::getValue(QString list, QString property, const State &s
} else if (property == "notes") {
return formatNotes(d);
} else if (property == "tags") {
return QString::fromStdString(taglist_get_tagstring(d->tag_list));
return QString::fromStdString(taglist_get_tagstring(d->tags));
} else if (property == "gas") {
return formatGas(d);
} else if (property == "sac") {