mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Undo: implement undo of dive site country editing
Simply copy the code of notes editing, but use the taxonomy_* functions to read and set the value. Moreover, replace the three TAXONOMY_n field ids by a single TAXONOMY id. We will probably never show one column per taxonomy field, but rather a single column with a string derived from all taxonomy fields. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
4d183e0d75
commit
021aa4bd57
8 changed files with 54 additions and 20 deletions
|
@ -139,6 +139,9 @@ void LocationInformationWidget::diveSiteChanged(struct dive_site *ds, int field)
|
|||
case LocationInformationModel::NOTES:
|
||||
ui.diveSiteNotes->setText(diveSite->notes);
|
||||
return;
|
||||
case LocationInformationModel::TAXONOMY:
|
||||
ui.diveSiteCountry->setText(taxonomy_get_country(&diveSite->taxonomy));
|
||||
return;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
@ -183,18 +186,6 @@ void LocationInformationWidget::acceptChanges()
|
|||
return;
|
||||
}
|
||||
|
||||
char *uiString;
|
||||
uiString = copy_qstring(ui.diveSiteCountry->text());
|
||||
// if the user entered a different country, first update the local taxonomy
|
||||
// this below will get copied into the diveSite
|
||||
if (!same_string(uiString, taxonomy_get_country(&taxonomy)) &&
|
||||
!empty_string(uiString))
|
||||
taxonomy_set_country(&taxonomy, uiString, taxonomy_origin::GEOMANUAL);
|
||||
else
|
||||
free(uiString);
|
||||
// now update the diveSite
|
||||
copy_taxonomy(&taxonomy, &diveSite->taxonomy);
|
||||
|
||||
if (!ui.diveSiteCoordinates->text().isEmpty())
|
||||
parseGpsText(ui.diveSiteCoordinates->text(), diveSite->location);
|
||||
mark_divelist_changed(true);
|
||||
|
@ -277,10 +268,10 @@ void LocationInformationWidget::on_diveSiteCoordinates_textChanged(const QString
|
|||
}
|
||||
}
|
||||
|
||||
void LocationInformationWidget::on_diveSiteCountry_textChanged(const QString& text)
|
||||
void LocationInformationWidget::on_diveSiteCountry_editingFinished()
|
||||
{
|
||||
if (!same_string(qPrintable(text), taxonomy_get_country(&taxonomy)))
|
||||
markChangedWidget(ui.diveSiteCountry);
|
||||
if (diveSite)
|
||||
Command::editDiveSiteCountry(diveSite, ui.diveSiteCountry->text());
|
||||
}
|
||||
|
||||
void LocationInformationWidget::on_diveSiteDescription_editingFinished()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue