diff options
-rw-r--r-- | qt-ui/diveplanner.cpp | 10 | ||||
-rw-r--r-- | qt-ui/mainwindow.cpp | 9 | ||||
-rw-r--r-- | qt-ui/mainwindow.h | 1 | ||||
-rw-r--r-- | qt-ui/profile/profilewidget2.cpp | 24 |
4 files changed, 25 insertions, 19 deletions
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp index e8e0b2ca3..6943283d9 100644 --- a/qt-ui/diveplanner.cpp +++ b/qt-ui/diveplanner.cpp @@ -256,7 +256,7 @@ DivePlannerWidget::DivePlannerWidget(QWidget *parent, Qt::WindowFlags f) : QWidg connect(ui.buttonBox, SIGNAL(rejected()), plannerModel, SLOT(cancelPlan())); connect(plannerModel, SIGNAL(planCreated()), MainWindow::instance(), SLOT(removeFakeDiveForAddAndPlan())); connect(plannerModel, SIGNAL(planCreated()), MainWindow::instance(), SLOT(showProfile())); - connect(plannerModel, SIGNAL(planCanceled()), MainWindow::instance(), SLOT(showProfile())); + connect(plannerModel, SIGNAL(planCanceled()), MainWindow::instance(), SLOT(planCanceled())); /* set defaults. */ ui.startTime->setTime(QTime(1, 0)); @@ -653,18 +653,14 @@ void DivePlannerPointsModel::cancelPlan() return; } } - // we unselected all dives earlier, so restore that first and then recreate the dive list - MainWindow::instance()->removeFakeDiveForAddAndPlan(); - MainWindow::instance()->dive_list()->restoreSelection(); - MainWindow::instance()->dive_list()->reload(DiveTripModel::CURRENT); - MainWindow::instance()->refreshDisplay(); - emit planCanceled(); + if (mode != ADD) { free(stagingDive); stagingDive = NULL; } setPlanMode(NOTHING); diveplan.dp = NULL; + emit planCanceled(); } DivePlannerPointsModel::Mode DivePlannerPointsModel::currentMode() const diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index ff932d31b..6cf7160b7 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -397,6 +397,15 @@ void MainWindow::removeFakeDiveForAddAndPlan() delete_single_dive(idx); } +void MainWindow::planCanceled() +{ + removeFakeDiveForAddAndPlan(); + showProfile(); + dive_list()->restoreSelection(); + dive_list()->reload(DiveTripModel::CURRENT); + refreshDisplay(); +} + void MainWindow::on_actionDivePlanner_triggered() { if(!plannerStateClean()) diff --git a/qt-ui/mainwindow.h b/qt-ui/mainwindow.h index 882534722..f34c7a58a 100644 --- a/qt-ui/mainwindow.h +++ b/qt-ui/mainwindow.h @@ -152,6 +152,7 @@ slots: void showProfile(); void editCurrentDive(); void removeFakeDiveForAddAndPlan(); + void planCanceled(); private: Ui::MainWindow ui; diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp index 6cb258060..8f2668767 100644 --- a/qt-ui/profile/profilewidget2.cpp +++ b/qt-ui/profile/profilewidget2.cpp @@ -88,7 +88,8 @@ ProfileWidget2::ProfileWidget2(QWidget *parent) : QGraphicsView(parent), rulerItem(new RulerItem2()), isGrayscale(false), printMode(false), - shouldCalculateMaxTime(true) + shouldCalculateMaxTime(true), + backgroundFile(":poster") { memset(&plotInfo, 0, sizeof(plotInfo)); @@ -566,9 +567,9 @@ void ProfileWidget2::mouseReleaseEvent(QMouseEvent *event) void ProfileWidget2::fixBackgroundPos() { + static QPixmap toBeScaled(backgroundFile); if (currentState != EMPTY) return; - QPixmap toBeScaled = QPixmap(backgroundFile); QPixmap p = toBeScaled.scaledToHeight(viewport()->height() - 40, Qt::SmoothTransformation); int x = viewport()->width() / 2 - p.width() / 2; int y = viewport()->height() / 2 - p.height() / 2; @@ -666,7 +667,6 @@ void ProfileWidget2::setEmptyState() currentState = EMPTY; MainWindow::instance()->setToolButtonsEnabled(false); - backgroundFile = QString(":poster"); fixBackgroundPos(); background->setVisible(true); @@ -684,12 +684,14 @@ void ProfileWidget2::setEmptyState() pn2GasItem->setVisible(false); po2GasItem->setVisible(false); pheGasItem->setVisible(false); - Q_FOREACH (DiveCalculatedTissue *tissue, allTissues) { - tissue->setVisible(false); - } - Q_FOREACH (DiveEventItem *event, eventItems) { - event->setVisible(false); - } + + #define HIDE_ALL(TYPE, CONTAINER) \ + Q_FOREACH (TYPE *item, CONTAINER) item->setVisible(false); + HIDE_ALL(DiveCalculatedTissue, allTissues); + HIDE_ALL(DiveEventItem, eventItems); + HIDE_ALL(DiveHandler, handles); + HIDE_ALL(QGraphicsSimpleTextItem, gases); + #undef HIDE_ALL } void ProfileWidget2::setProfileState() @@ -1030,10 +1032,8 @@ void ProfileWidget2::disconnectTemporaryConnections() disconnect(plannerModel, SIGNAL(rowsRemoved(const QModelIndex &, int, int)), this, SLOT(pointsRemoved(const QModelIndex &, int, int))); - - Q_FOREACH (QAction *action, actionsForKeys.values()) { + Q_FOREACH (QAction *action, actionsForKeys.values()) action->setShortcut(QKeySequence()); - } } void ProfileWidget2::pointInserted(const QModelIndex &parent, int start, int end) |