Make sure there is a dive site if you try to edit it
If the user clicks on manage (or double clicks on the globe) and the displayed_dive doesn't actually have a dive site associated with it (e.g. because we are adding a dive or because it was imported or downloaded without dive site information, then we need to make sure that there is an empty dive site that we can make changes to. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
e32459d313
commit
cd77e2e700
@ -666,10 +666,16 @@ LocationInformationWidget::LocationInformationWidget(QWidget *parent) : QGroupBo
|
||||
void LocationInformationWidget::setLocationId(uint32_t uuid)
|
||||
{
|
||||
currentDs = get_dive_site_by_uuid(uuid);
|
||||
if (currentDs)
|
||||
displayed_dive_site = *currentDs;
|
||||
else
|
||||
memset(&displayed_dive, 0, sizeof(displayed_dive));
|
||||
|
||||
if (!currentDs) {
|
||||
currentDs = get_dive_site_by_uuid(create_dive_site(""));
|
||||
displayed_dive.dive_site_uuid = currentDs->uuid;
|
||||
ui.diveSiteName->clear();
|
||||
ui.diveSiteDescription->clear();
|
||||
ui.diveSiteNotes->clear();
|
||||
ui.diveSiteCoordinates->clear();
|
||||
}
|
||||
displayed_dive_site = *currentDs;
|
||||
ui.diveSiteName->setText(displayed_dive_site.name);
|
||||
ui.diveSiteDescription->setText(displayed_dive_site.description);
|
||||
ui.diveSiteNotes->setPlainText(displayed_dive_site.notes);
|
||||
@ -708,6 +714,7 @@ void LocationInformationWidget::acceptChanges()
|
||||
|
||||
void LocationInformationWidget::rejectChanges()
|
||||
{
|
||||
Q_ASSERT(currentDs != NULL);
|
||||
setLocationId(currentDs->uuid);
|
||||
emit informationManagementEnded();
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user