diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2021-01-25 14:38:57 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2021-04-02 13:53:23 -0700 |
commit | 94633d2156c62da917aa6b1a6d5d839fd9656522 (patch) | |
tree | ca8c26564240801ab4d68e9b093b640fbead6e20 | |
parent | dee1fea683a887bd117d1532a9c6377ecdc01f30 (diff) | |
download | subsurface-94633d2156c62da917aa6b1a6d5d839fd9656522.tar.gz |
profile: connect to DivePointsPlannerModel in separate function
The connection to the DivePointsPlannerModel was done in two
distinct functions: setAddState() and setPlanState(), which
means that these could easily get out-of-sync. Factor this out
into a single function.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r-- | profile-widget/profilewidget2.cpp | 29 | ||||
-rw-r--r-- | profile-widget/profilewidget2.h | 1 |
2 files changed, 16 insertions, 14 deletions
diff --git a/profile-widget/profilewidget2.cpp b/profile-widget/profilewidget2.cpp index f5ed95db0..91fc6f8b2 100644 --- a/profile-widget/profilewidget2.cpp +++ b/profile-widget/profilewidget2.cpp @@ -1264,6 +1264,17 @@ void ProfileWidget2::setToolTipVisibile(bool visible) toolTipItem->setVisible(visible); } +void ProfileWidget2::connectPlannerModel() +{ + DivePlannerPointsModel *plannerModel = DivePlannerPointsModel::instance(); + connect(plannerModel, &DivePlannerPointsModel::dataChanged, this, &ProfileWidget2::replot); + connect(plannerModel, &DivePlannerPointsModel::cylinderModelEdited, this, &ProfileWidget2::replot); + connect(plannerModel, &DivePlannerPointsModel::modelReset, this, &ProfileWidget2::pointsReset); + connect(plannerModel, &DivePlannerPointsModel::rowsInserted, this, &ProfileWidget2::pointInserted); + connect(plannerModel, &DivePlannerPointsModel::rowsRemoved, this, &ProfileWidget2::pointsRemoved); + connect(plannerModel, &DivePlannerPointsModel::rowsMoved, this, &ProfileWidget2::pointsMoved); +} + void ProfileWidget2::setAddState() { if (currentState == ADD) @@ -1283,13 +1294,8 @@ void ProfileWidget2::setAddState() actionsForKeys[Qt::Key_Escape]->setShortcut(Qt::Key_Escape); actionsForKeys[Qt::Key_Delete]->setShortcut(Qt::Key_Delete); - DivePlannerPointsModel *plannerModel = DivePlannerPointsModel::instance(); - connect(plannerModel, &DivePlannerPointsModel::dataChanged, this, &ProfileWidget2::replot); - connect(plannerModel, &DivePlannerPointsModel::cylinderModelEdited, this, &ProfileWidget2::replot); - connect(plannerModel, &DivePlannerPointsModel::modelReset, this, &ProfileWidget2::pointsReset); - connect(plannerModel, &DivePlannerPointsModel::rowsInserted, this, &ProfileWidget2::pointInserted); - connect(plannerModel, &DivePlannerPointsModel::rowsRemoved, this, &ProfileWidget2::pointsRemoved); - connect(plannerModel, &DivePlannerPointsModel::rowsMoved, this, &ProfileWidget2::pointsMoved); + connectPlannerModel(); + /* show the same stuff that the profile shows. */ currentState = ADD; /* enable the add state. */ diveCeiling->setVisible(true); @@ -1316,13 +1322,8 @@ void ProfileWidget2::setPlanState() actionsForKeys[Qt::Key_Escape]->setShortcut(Qt::Key_Escape); actionsForKeys[Qt::Key_Delete]->setShortcut(Qt::Key_Delete); - DivePlannerPointsModel *plannerModel = DivePlannerPointsModel::instance(); - connect(plannerModel, &DivePlannerPointsModel::dataChanged, this, &ProfileWidget2::replot); - connect(plannerModel, &DivePlannerPointsModel::cylinderModelEdited, this, &ProfileWidget2::replot); - connect(plannerModel, &DivePlannerPointsModel::modelReset, this, &ProfileWidget2::pointsReset); - connect(plannerModel, &DivePlannerPointsModel::rowsInserted, this, &ProfileWidget2::pointInserted); - connect(plannerModel, &DivePlannerPointsModel::rowsRemoved, this, &ProfileWidget2::pointsRemoved); - connect(plannerModel, &DivePlannerPointsModel::rowsMoved, this, &ProfileWidget2::pointsMoved); + connectPlannerModel(); + /* show the same stuff that the profile shows. */ currentState = PLAN; /* enable the add state. */ diveCeiling->setVisible(true); diff --git a/profile-widget/profilewidget2.h b/profile-widget/profilewidget2.h index 51cf2f28c..0a584bca4 100644 --- a/profile-widget/profilewidget2.h +++ b/profile-widget/profilewidget2.h @@ -256,6 +256,7 @@ private: std::vector<std::unique_ptr<DiveHandler>> handles; int handleIndex(const DiveHandler *h) const; #ifndef SUBSURFACE_MOBILE + void connectPlannerModel(); void repositionDiveHandlers(); int fixHandlerIndex(DiveHandler *activeHandler); DiveHandler *createHandle(); |