diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2013-07-09 15:37:53 +0300 |
---|---|---|
committer | Lubomir I. Ivanov <neolit123@gmail.com> | 2013-07-09 21:01:42 +0300 |
commit | 52534bfb686ade48938768bb137d82c0bb849efc (patch) | |
tree | 066a148d3170dadcbb4d0de64762541cff5dfa18 /qt-ui | |
parent | 35356e364d2f0765c04c6d8838ff403743d20ae3 (diff) | |
download | subsurface-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.cpp | 3 | ||||
-rw-r--r-- | qt-ui/printdialog.cpp | 42 | ||||
-rw-r--r-- | qt-ui/printdialog.h | 25 | ||||
-rw-r--r-- | qt-ui/printoptions.cpp | 14 | ||||
-rw-r--r-- | qt-ui/printoptions.h | 23 |
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 |