diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index 36c8538a1..516c29126 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -277,6 +277,7 @@ DivePlannerWidget::DivePlannerWidget(QWidget *parent, Qt::WindowFlags f) : QWidg
connect(ui.display_duration, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayDuration(bool)));
connect(ui.display_runtime, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayRuntime(bool)));
connect(ui.display_transitions, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayTransitions(bool)));
+ connect(ui.printPlan, SIGNAL(pressed()), this, SLOT(printDecoPlan()));
// Creating (and canceling) the plan
connect(ui.buttonBox, SIGNAL(accepted()), plannerModel, SLOT(createPlan()));
@@ -320,6 +321,11 @@ void DivePlannerWidget::decoSacChanged(const QString &decosac)
plannerModel->setDecoSac(decosac.toInt());
}
+void DivePlannerWidget::printDecoPlan()
+{
+ MainWindow::instance()->printPlan();
+}
+
void DivePlannerPointsModel::setPlanMode(Mode m)
{
mode = m;
diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h
index f96094059..fabf2e683 100644
--- a/qt-ui/diveplanner.h
+++ b/qt-ui/diveplanner.h
@@ -136,6 +136,7 @@ slots:
void atmPressureChanged(const QString &pressure);
void bottomSacChanged(const QString &bottomSac);
void decoSacChanged(const QString &decosac);
+ void printDecoPlan();
private:
Ui::DivePlanner ui;
diff --git a/qt-ui/diveplanner.ui b/qt-ui/diveplanner.ui
index 4e1071470..043214340 100644
--- a/qt-ui/diveplanner.ui
+++ b/qt-ui/diveplanner.ui
@@ -124,7 +124,7 @@
-
- -
+
-
QDialogButtonBox::Abort|QDialogButtonBox::Save
@@ -189,6 +189,16 @@
-
+ -
+
+
+ In diveplan, list transitions or treat them as implicit
+
+
+ display transitions
+
+
+
-
@@ -212,13 +222,10 @@
- -
-
-
- In diveplan, list transitions or treat them as implicit
-
+
-
+
- display transitions
+ Print
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index a49cdc460..d94ec8561 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -20,6 +20,7 @@
#include
#include
#include
+#include
#include
#include "divelistview.h"
#include "starwidget.h"
@@ -419,6 +420,17 @@ void MainWindow::setPlanNotes(const char *notes)
ui.divePlanOutput->setHtml(notes);
}
+void MainWindow::printPlan()
+{
+ QPrinter printer;
+ QPrintDialog *dialog = new QPrintDialog(&printer, this);
+ dialog->setWindowTitle(tr("Print runtime table"));
+ if (dialog->exec() != QDialog::Accepted)
+ return;
+
+ ui.divePlanOutput->print(&printer);
+}
+
void MainWindow::on_actionDivePlanner_triggered()
{
if(!plannerStateClean())
diff --git a/qt-ui/mainwindow.h b/qt-ui/mainwindow.h
index 57c205ba4..6f352cc74 100644
--- a/qt-ui/mainwindow.h
+++ b/qt-ui/mainwindow.h
@@ -78,6 +78,7 @@ public:
void setLoadedWithFiles(bool filesFromCommandLine);
bool filesFromCommandLine() const;
void setPlanNotes(const char *notes);
+ void printPlan();
private
slots:
/* file menu action */