aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2013-07-09 15:37:53 +0300
committerGravatar Lubomir I. Ivanov <neolit123@gmail.com>2013-07-09 21:01:42 +0300
commit52534bfb686ade48938768bb137d82c0bb849efc (patch)
tree066a148d3170dadcbb4d0de64762541cff5dfa18 /qt-ui
parent35356e364d2f0765c04c6d8838ff403743d20ae3 (diff)
downloadsubsurface-52534bfb686ade48938768bb137d82c0bb849efc.tar.gz
Print: add UI for a print dialog
PrintOptions is a QWidget class to be used as an addition to a future print dialog (possibly based on QPrintDialog). Currently only contains a couple of radio buttons. PrintDialog (printdialog.cpp/h) which is a basic QDialog is currently added for testing only and it holds an instance of PrintOptions. Calling File->Print opens this test dialog for now. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/mainwindow.cpp3
-rw-r--r--qt-ui/printdialog.cpp42
-rw-r--r--qt-ui/printdialog.h25
-rw-r--r--qt-ui/printoptions.cpp14
-rw-r--r--qt-ui/printoptions.h23
5 files changed, 106 insertions, 1 deletions
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index c0cdc9eb5..a78b84565 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -34,6 +34,7 @@
#include "simplewidgets.h"
#include "diveplanner.h"
#include "about.h"
+#include "printdialog.h"
static MainWindow* instance = 0;
@@ -218,7 +219,7 @@ void MainWindow::on_actionExportUDDF_triggered()
void MainWindow::on_actionPrint_triggered()
{
- qDebug("actionPrint");
+ PrintDialog::instance()->runDialog();
}
void MainWindow::disableDcShortcuts()
diff --git a/qt-ui/printdialog.cpp b/qt-ui/printdialog.cpp
new file mode 100644
index 000000000..c1aff2a9b
--- /dev/null
+++ b/qt-ui/printdialog.cpp
@@ -0,0 +1,42 @@
+#include "printdialog.h"
+
+#include <QDebug>
+#include <QPushButton>
+#include <QVBoxLayout>
+
+PrintDialog *PrintDialog::instance()
+{
+ static PrintDialog *self = new PrintDialog();
+ self->setAttribute(Qt::WA_QuitOnClose, false);
+ return self;
+}
+
+PrintDialog::PrintDialog(QWidget *parent, Qt::WindowFlags f)
+{
+ // options template (are we storing these in the settings?)
+ struct options tempOptions = {options::PRETTY, 0, 2, false, 65, 15, 12};
+ printOptions = tempOptions;
+ /* temporary.
+ * add the PrintOptions widget and a Print button for testing purposes. */
+ optionsWidget = PrintOptions::instance();
+ QVBoxLayout *layout = new QVBoxLayout(this);
+ setLayout(layout);
+ layout->addWidget(optionsWidget);
+
+ QPushButton *printButton = new QPushButton(tr("&Print"));
+ connect(printButton, SIGNAL(clicked(bool)), this, SLOT(printClicked()));
+ layout->addWidget(printButton);
+
+ setFixedSize(600, 400);
+ setWindowTitle("Print");
+}
+
+void PrintDialog::runDialog()
+{
+ exec();
+}
+
+void PrintDialog::printClicked(void)
+{
+ // nop for now
+}
diff --git a/qt-ui/printdialog.h b/qt-ui/printdialog.h
new file mode 100644
index 000000000..b3dcfa826
--- /dev/null
+++ b/qt-ui/printdialog.h
@@ -0,0 +1,25 @@
+#ifndef PRINTDIALOG_H
+#define PRINTDIALOG_H
+
+#include <QDialog>
+#include "../display.h"
+#include "printoptions.h"
+
+// should be based on a custom QPrintDialog class
+class PrintDialog : public QDialog {
+Q_OBJECT
+
+public:
+ static PrintDialog *instance();
+ void runDialog();
+ struct options printOptions;
+
+private:
+ explicit PrintDialog(QWidget *parent = 0, Qt::WindowFlags f = 0);
+ PrintOptions *optionsWidget;
+
+private slots:
+ void printClicked();
+};
+
+#endif
diff --git a/qt-ui/printoptions.cpp b/qt-ui/printoptions.cpp
new file mode 100644
index 000000000..6d1910303
--- /dev/null
+++ b/qt-ui/printoptions.cpp
@@ -0,0 +1,14 @@
+#include "printoptions.h"
+#include "ui_printoptions.h"
+
+PrintOptions *PrintOptions::instance()
+{
+ static PrintOptions *self = new PrintOptions();
+ return self;
+}
+
+PrintOptions::PrintOptions(QWidget *parent, Qt::WindowFlags f)
+: ui( new Ui::PrintOptions())
+{
+ ui->setupUi(this);
+}
diff --git a/qt-ui/printoptions.h b/qt-ui/printoptions.h
new file mode 100644
index 000000000..8d8fb4605
--- /dev/null
+++ b/qt-ui/printoptions.h
@@ -0,0 +1,23 @@
+#ifndef PRINTOPTIONS_H
+#define PRINTOPTIONS_H
+
+#include <QWidget>
+#include "../display.h"
+
+namespace Ui {
+ class PrintOptions;
+};
+
+// should be based on a custom QPrintDialog class
+class PrintOptions : public QWidget {
+Q_OBJECT
+
+public:
+ static PrintOptions *instance();
+
+private:
+ explicit PrintOptions(QWidget *parent = 0, Qt::WindowFlags f = 0);
+ Ui::PrintOptions *ui;
+};
+
+#endif