diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-10-13 08:57:46 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-10-13 21:41:41 -0400 |
commit | 954820aa81cb52cfe4442f2c6e81117827e32ccc (patch) | |
tree | 5392d9b44ed57542fb60be46a384bf783ed43c59 /desktop-widgets/mainwindow.cpp | |
parent | f0e349cdd68c259f07fd5867d8360cd8d65d50ef (diff) | |
download | subsurface-954820aa81cb52cfe4442f2c6e81117827e32ccc.tar.gz |
Dive site: explicitly init displayed_dive_site on show widget
The global object "displayed_dive_site" is used to store the
old dive site data for the edit-dive-site widget. The fields
of the widget were initialized from this object in the show
event. Therefore the object was updated in numerous parts of
the code to make sure that it was up-to-date. Instead, move
the initialization of the object to the function that also
initiatlizes the fields. Call this function explicitly before
showing the widget.
This makes the data-fow distinctly easier to understand.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets/mainwindow.cpp')
-rw-r--r-- | desktop-widgets/mainwindow.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp index 2b4411387..34924e25a 100644 --- a/desktop-widgets/mainwindow.cpp +++ b/desktop-widgets/mainwindow.cpp @@ -173,7 +173,7 @@ MainWindow::MainWindow() : QMainWindow(), profLayout->addWidget(profileWidget); profileContainer->setLayout(profLayout); - LocationInformationWidget * diveSiteEdit = new LocationInformationWidget(); + diveSiteEdit = new LocationInformationWidget(this); connect(diveSiteEdit, &LocationInformationWidget::endEditDiveSite, this, &MainWindow::setDefaultState); connect(diveSiteEdit, SIGNAL(endEditDiveSite()), this, SLOT(refreshDisplay())); @@ -445,7 +445,9 @@ void MainWindow::setStateProperties(const QByteArray& state, const PropertyList& stateProperties[state] = PropertiesForQuadrant(tl, tr, bl, br); } -void MainWindow::on_actionDiveSiteEdit_triggered() { +void MainWindow::on_actionDiveSiteEdit_triggered() +{ + diveSiteEdit->initFields(get_dive_site_for_dive(&displayed_dive)); setApplicationState("EditDiveSite"); } @@ -957,7 +959,6 @@ void MainWindow::setupForAddAndPlan(const char *model) { // clean out the dive and give it an id and the correct dc model clear_dive(&displayed_dive); - clear_dive_site(&displayed_dive_site); displayed_dive.id = dive_getUniqID(); displayed_dive.when = QDateTime::currentMSecsSinceEpoch() / 1000L + gettimezoneoffset() + 3600; displayed_dive.dc.model = strdup(model); // don't translate! this is stored in the XML file |