summaryrefslogtreecommitdiffstats
path: root/qt-ui/printdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/printdialog.cpp')
-rw-r--r--qt-ui/printdialog.cpp51
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)