aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2013-12-04 13:51:34 +0200
committerGravatar Lubomir I. Ivanov <neolit123@gmail.com>2013-12-04 13:51:34 +0200
commitd90cca5c4ed8d98704aaf24e59ba00160cb7dc4e (patch)
tree0cb4c62ce5cc5cd30ee7d1b3b8f645def49bb238
parent576c3f559f263cb1e14ade637cab5e4fdf067b43 (diff)
downloadsubsurface-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.cpp23
-rw-r--r--qt-ui/printdialog.h1
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 *);
};