QML UI: make sure the dive list is empty before loading dives

When testing subsurface-mobile on the desktop from an account that had a
default file set up in the Subsurface preferences that file would already
be loaded creating rather confusing output.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2015-07-24 13:18:30 -07:00
parent 7e7dcb2451
commit a05e37188b
4 changed files with 20 additions and 13 deletions

View file

@ -1098,3 +1098,16 @@ void report_datafile_version(int version)
if (min_datafile_version == 0 || min_datafile_version > version) if (min_datafile_version == 0 || min_datafile_version > version)
min_datafile_version = version; min_datafile_version = version;
} }
void clear_dive_file_data()
{
while (dive_table.nr)
delete_single_dive(0);
while (dive_site_table.nr)
delete_dive_site(get_dive_site(0)->uuid);
free((void *)existing_filename);
existing_filename = NULL;
reset_min_datafile_version();
}

View file

@ -47,6 +47,7 @@ extern void set_dive_nr_for_current_dive();
int get_min_datafile_version(); int get_min_datafile_version();
void reset_min_datafile_version(); void reset_min_datafile_version();
void report_datafile_version(int version); void report_datafile_version(int version);
void clear_dive_file_data();
#ifdef DEBUG_TRIP #ifdef DEBUG_TRIP
extern void dump_selection(void); extern void dump_selection(void);

View file

@ -58,7 +58,7 @@ void QMLManager::loadDives()
showMessage(get_error_string()); showMessage(get_error_string());
return; return;
} }
showMessage("got email / password"); clear_dive_file_data();
QByteArray fileNamePrt = QFile::encodeName(url); QByteArray fileNamePrt = QFile::encodeName(url);
int error = parse_file(fileNamePrt.data()); int error = parse_file(fileNamePrt.data());
@ -70,11 +70,13 @@ void QMLManager::loadDives()
showMessage(get_error_string()); showMessage(get_error_string());
} }
process_dives(false, false); process_dives(false, false);
int i; int i;
struct dive *d; struct dive *d;
for_each_dive(i, d) for_each_dive(i, d) {
DiveListModel::instance()->addDive(d); DiveListModel::instance()->addDive(d);
}
} }
void QMLManager::commitChanges(QString diveId, QString suit, QString buddy, QString diveMaster, QString notes) void QMLManager::commitChanges(QString diveId, QString suit, QString buddy, QString diveMaster, QString notes)

View file

@ -433,16 +433,7 @@ void MainWindow::closeCurrentFile()
graphics()->setEmptyState(); graphics()->setEmptyState();
/* free the dives and trips */ /* free the dives and trips */
clear_git_id(); clear_git_id();
while (dive_table.nr) clear_dive_file_data();
delete_single_dive(0);
while (dive_site_table.nr)
delete_dive_site(get_dive_site(0)->uuid);
free((void *)existing_filename);
existing_filename = NULL;
reset_min_datafile_version();
cleanUpEmpty(); cleanUpEmpty();
mark_divelist_changed(false); mark_divelist_changed(false);