summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qt-ui/diveplanner.cpp10
-rw-r--r--qt-ui/mainwindow.cpp9
-rw-r--r--qt-ui/mainwindow.h1
-rw-r--r--qt-ui/profile/profilewidget2.cpp24
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)