mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-01 05:33:23 +00:00
Don't rely on current_dive to get the dive site id
Since we are modifying the dive site inside of the dive, we can't ask the dive for the new one, and we also can't use the name of the dive site, as there's the possibility that two or more could have the same name, so rely only on the index of it to get the uuid. The index is variable since we will sort the dive_site_table alphabetically, but this doesn't matter since we are using it only temporarely to get the uuid, and this one never changes. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
ef10490e03
commit
1ee96f4ad6
2 changed files with 16 additions and 6 deletions
|
@ -1275,20 +1275,29 @@ void MainTab::on_tagWidget_textChanged()
|
|||
* mostly the same ). Check the currentTrip there to see if it`s being
|
||||
* correctly triggered.
|
||||
*/
|
||||
void MainTab::on_location_currentTextChanged(const QString &text)
|
||||
|
||||
|
||||
void MainTab::on_location_currentIndexChanged(int idx)
|
||||
{
|
||||
if (editMode == IGNORE || acceptingEdit == true)
|
||||
return;
|
||||
|
||||
if (currentTrip) {
|
||||
free(displayedTrip.location);
|
||||
displayedTrip.location = strdup(qPrintable(ui.location->currentText()));
|
||||
}
|
||||
if (current_dive && text == QString(get_dive_site_by_uuid(displayed_dive.dive_site_uuid)->name))
|
||||
|
||||
if (!get_dive_site(idx))
|
||||
return;
|
||||
|
||||
uint32_t uuid = ui.location->currentData(LocationInformationModel::DIVE_SITE_UUID).toInt();
|
||||
displayed_dive.dive_site_uuid = uuid;
|
||||
markChangedWidget(ui.location);
|
||||
if (current_dive) {
|
||||
struct dive_site *ds_from_dive = get_dive_site_by_uuid(displayed_dive.dive_site_uuid);
|
||||
if(ds_from_dive && ui.location->currentText() == ds_from_dive->name)
|
||||
return;
|
||||
displayed_dive.dive_site_uuid = get_dive_site(idx)->uuid;
|
||||
markChangedWidget(ui.location);
|
||||
emit diveSiteChanged();
|
||||
}
|
||||
}
|
||||
|
||||
/* TODO:
|
||||
|
|
|
@ -57,6 +57,7 @@ signals:
|
|||
void addDiveFinished();
|
||||
void dateTimeChanged();
|
||||
void requestDiveSiteEdit(uint32_t uuid);
|
||||
void diveSiteChanged();
|
||||
public
|
||||
slots:
|
||||
void addCylinder_clicked();
|
||||
|
@ -64,7 +65,7 @@ slots:
|
|||
void updateDiveInfo(bool clear = false);
|
||||
void acceptChanges();
|
||||
void rejectChanges();
|
||||
void on_location_currentTextChanged(const QString &text);
|
||||
void on_location_currentIndexChanged(int idx);
|
||||
void on_divemaster_textChanged();
|
||||
void on_buddy_textChanged();
|
||||
void on_suit_textChanged(const QString &text);
|
||||
|
|
Loading…
Add table
Reference in a new issue