2013-07-09 12:37:53 +00:00
|
|
|
#include "printdialog.h"
|
|
|
|
|
|
|
|
#include <QDebug>
|
|
|
|
#include <QPushButton>
|
|
|
|
#include <QVBoxLayout>
|
2013-07-10 16:27:10 +00:00
|
|
|
#include <QPrintPreviewDialog>
|
2013-07-09 12:37:53 +00:00
|
|
|
|
|
|
|
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;
|
2013-07-10 12:34:57 +00:00
|
|
|
|
|
|
|
// create a print layout and pass the printer and options
|
|
|
|
printLayout = new PrintLayout(this, &printer, &printOptions);
|
|
|
|
|
2013-07-09 12:37:53 +00:00
|
|
|
/* temporary.
|
|
|
|
* add the PrintOptions widget and a Print button for testing purposes. */
|
2013-07-09 20:43:21 +00:00
|
|
|
optionsWidget = new PrintOptions(this, &printOptions);
|
|
|
|
|
2013-07-09 12:37:53 +00:00
|
|
|
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);
|
|
|
|
|
2013-07-09 20:43:21 +00:00
|
|
|
setFixedSize(520, 500);
|
2013-07-09 12:37:53 +00:00
|
|
|
setWindowTitle("Print");
|
|
|
|
}
|
|
|
|
|
|
|
|
void PrintDialog::runDialog()
|
|
|
|
{
|
|
|
|
exec();
|
|
|
|
}
|
|
|
|
|
|
|
|
void PrintDialog::printClicked(void)
|
|
|
|
{
|
2013-07-10 16:27:10 +00:00
|
|
|
// printer.setOutputFileName("print.pdf");
|
|
|
|
// printer.setOutputFormat(QPrinter::PdfFormat);
|
|
|
|
// temporary: use a preview dialog
|
2013-07-12 16:23:47 +00:00
|
|
|
printer.setResolution(300);
|
2013-07-10 16:27:10 +00:00
|
|
|
QPrintPreviewDialog previewDialog(&printer, this);
|
|
|
|
QObject::connect(&previewDialog, SIGNAL(paintRequested(QPrinter *)), this, SLOT(onPaintRequested(QPrinter *)));
|
|
|
|
previewDialog.exec();
|
|
|
|
}
|
|
|
|
|
|
|
|
void PrintDialog::onPaintRequested(QPrinter *printerPtr)
|
|
|
|
{
|
2013-07-10 12:34:57 +00:00
|
|
|
printLayout->print();
|
2013-07-09 12:37:53 +00:00
|
|
|
}
|