diff options
Diffstat (limited to 'qt-ui/printdialog.cpp')
-rw-r--r-- | qt-ui/printdialog.cpp | 51 |
1 files changed, 43 insertions, 8 deletions
diff --git a/qt-ui/printdialog.cpp b/qt-ui/printdialog.cpp index 8bf602c34..e029ff09b 100644 --- a/qt-ui/printdialog.cpp +++ b/qt-ui/printdialog.cpp @@ -1,10 +1,15 @@ #include "printdialog.h" +#include "printoptions.h" +#include "printlayout.h" #include "mainwindow.h" #include <QDebug> #include <QPushButton> +#include <QProgressBar> #include <QVBoxLayout> +#include <QHBoxLayout> #include <QPrintPreviewDialog> +#include <QPrintDialog> PrintDialog *PrintDialog::instance() { @@ -22,34 +27,64 @@ PrintDialog::PrintDialog(QWidget *parent, Qt::WindowFlags f) // create a print layout and pass the printer and options printLayout = new PrintLayout(this, &printer, &printOptions); - /* temporary. - * add the PrintOptions widget and a Print button for testing purposes. */ + // create a print options object and pass our options struct optionsWidget = new PrintOptions(this, &printOptions); QVBoxLayout *layout = new QVBoxLayout(this); setLayout(layout); - QPushButton *printButton = new QPushButton(tr("&Print")); + 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("P&rint")); connect(printButton, SIGNAL(clicked(bool)), this, SLOT(printClicked())); - layout->addWidget(printButton); + hLayout->addWidget(printButton); + + QPushButton *closeButton = new QPushButton(tr("&Close")); + connect(closeButton, SIGNAL(clicked(bool)), this, SLOT(closeClicked())); + hLayout->addWidget(closeButton); + + progressBar = new QProgressBar(); + connect(printLayout, SIGNAL(signalProgress(int)), progressBar, SLOT(setValue(int))); + progressBar->setMinimum(0); + progressBar->setMaximum(100); + progressBar->setTextVisible(false); + layout->addWidget(progressBar); layout->addWidget(optionsWidget); - setFixedSize(520, 320); + setFixedSize(520, 350); setWindowTitle(tr("Print")); setWindowIcon(QIcon(":subsurface-icon")); } void PrintDialog::runDialog() { + progressBar->setValue(0); 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::closeClicked(void) +{ + close(); } void PrintDialog::onPaintRequested(QPrinter *printerPtr) |