diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2013-12-04 13:51:34 +0200 |
---|---|---|
committer | Lubomir I. Ivanov <neolit123@gmail.com> | 2013-12-04 13:51:34 +0200 |
commit | d90cca5c4ed8d98704aaf24e59ba00160cb7dc4e (patch) | |
tree | 0cb4c62ce5cc5cd30ee7d1b3b8f645def49bb238 | |
parent | 576c3f559f263cb1e14ade637cab5e4fdf067b43 (diff) | |
download | subsurface-d90cca5c4ed8d98704aaf24e59ba00160cb7dc4e.tar.gz |
PrintDialog: add separate Preview/Print buttons
We rename our old 'Print' button to 'Preview' (as it did just that),
and add a new one called 'Print' which does the direct printing,
by creating a QPrintDialog instance. Both buttons are located
on top of the dialog for now in a QHBoxLayout.
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
-rw-r--r-- | qt-ui/printdialog.cpp | 23 | ||||
-rw-r--r-- | qt-ui/printdialog.h | 1 |
2 files changed, 20 insertions, 4 deletions
diff --git a/qt-ui/printdialog.cpp b/qt-ui/printdialog.cpp index 7836cd0f0..ac2513917 100644 --- a/qt-ui/printdialog.cpp +++ b/qt-ui/printdialog.cpp @@ -7,6 +7,7 @@ #include <QVBoxLayout> #include <QHBoxLayout> #include <QPrintPreviewDialog> +#include <QPrintDialog> PrintDialog *PrintDialog::instance() { @@ -30,9 +31,16 @@ PrintDialog::PrintDialog(QWidget *parent, Qt::WindowFlags f) QVBoxLayout *layout = new QVBoxLayout(this); setLayout(layout); + QHBoxLayout *hLayout = new QHBoxLayout(); + layout->addLayout(hLayout); + + QPushButton *previewButton = new QPushButton(tr("&Preview")); + connect(previewButton, SIGNAL(clicked(bool)), this, SLOT(previewClicked())); + hLayout->addWidget(previewButton); + QPushButton *printButton = new QPushButton(tr("&Print")); connect(printButton, SIGNAL(clicked(bool)), this, SLOT(printClicked())); - layout->addWidget(printButton); + hLayout->addWidget(printButton); QProgressBar *progressBar = new QProgressBar(); connect(printLayout, SIGNAL(signalProgress(int)), progressBar, SLOT(setValue(int))); @@ -53,11 +61,18 @@ void PrintDialog::runDialog() exec(); } -void PrintDialog::printClicked(void) +void PrintDialog::previewClicked(void) { QPrintPreviewDialog previewDialog(&printer, this); - QObject::connect(&previewDialog, SIGNAL(paintRequested(QPrinter *)), this, SLOT(onPaintRequested(QPrinter *))); - previewDialog.exec(); + QObject::connect(&previewDialog, SIGNAL(paintRequested(QPrinter *)), this, SLOT(onPaintRequested(QPrinter *))); + previewDialog.exec(); +} + +void PrintDialog::printClicked(void) +{ + QPrintDialog printDialog(&printer, this); + if (printDialog.exec() == QDialog::Accepted) + printLayout->print(); } void PrintDialog::onPaintRequested(QPrinter *printerPtr) diff --git a/qt-ui/printdialog.h b/qt-ui/printdialog.h index 097de9531..5c5c1fbf6 100644 --- a/qt-ui/printdialog.h +++ b/qt-ui/printdialog.h @@ -23,6 +23,7 @@ private: QPrinter printer; private slots: + void previewClicked(); void printClicked(); void onPaintRequested(QPrinter *); }; |