Simplify model handling and crashes fixes

So, there's only one crash left (that I put a big TODO: on the maintab.cpp
about) and I'll fix it tomorrow as it's quite late here and I'm almost
sleeping at the keyboard.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2015-06-01 23:13:51 -03:00 committed by Dirk Hohndel
parent ee9746c622
commit 6cd85d9b73
6 changed files with 41 additions and 13 deletions

View file

@ -91,7 +91,7 @@ void LocationInformationWidget::acceptChanges()
currentDs->notes = copy_string(uiString);
}
if (dive_site_is_empty(currentDs)) {
delete_dive_site(currentDs->uuid);
LocationInformationModel::instance()->removeRow(get_divesite_idx(currentDs));
displayed_dive.dive_site_uuid = 0;
}
@ -104,7 +104,7 @@ void LocationInformationWidget::acceptChanges()
void LocationInformationWidget::rejectChanges()
{
if (currentDs && dive_site_is_empty(currentDs)) {
delete_dive_site(currentDs->uuid);
LocationInformationModel::instance()->removeRow(get_divesite_idx(currentDs));
displayed_dive.dive_site_uuid = 0;
}
resetState();

View file

@ -243,6 +243,10 @@ void MainTab::disableGeoLookupEdition()
}
void MainTab::prepareDiveSiteEdit() {
// TODO: This is wrong. We can only set this if we Accepted the dive site edit
// And not if we cancelled. Currently we are seting directly without even
// thinking - but too tired, fix this tomorrow.
uint32_t dive_site_uuid = LocationInformationModel::instance()->addDiveSite(tr("Unnamed"));
displayed_dive.dive_site_uuid = dive_site_uuid;
emit requestDiveSiteEdit(dive_site_uuid);
@ -429,7 +433,10 @@ bool MainTab::isEditing()
void MainTab::showLocation()
{
ui.location->setCurrentText(get_dive_location(&displayed_dive));
if (get_dive_site_by_uuid(displayed_dive.dive_site_uuid))
ui.location->setCurrentText(get_dive_location(&displayed_dive));
else
ui.location->setCurrentIndex(-1);
}
void MainTab::updateDiveInfo(bool clear)