diff options
Diffstat (limited to 'qt-ui/maintab.cpp')
-rw-r--r-- | qt-ui/maintab.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp index f4c0d3af3..e5204a285 100644 --- a/qt-ui/maintab.cpp +++ b/qt-ui/maintab.cpp @@ -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: |