mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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
1 changed files with 11 additions and 4 deletions
|
@ -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…
Add table
Reference in a new issue