diff --git a/examples/DrawIntoPainter/mainwindow.h b/examples/DrawIntoPainter/mainwindow.h --- a/examples/DrawIntoPainter/mainwindow.h +++ b/examples/DrawIntoPainter/mainwindow.h @@ -34,6 +34,7 @@ QT_BEGIN_NAMESPACE class QLabel; +class QPrinter; QT_END_NAMESPACE class MainWindow : public QWidget, private Ui::MainWindow @@ -65,7 +66,8 @@ void on_vSBar_valueChanged( int value ); void on_savePB_clicked(); void on_savePDF_clicked(); - + void slotPaintRequested(QPrinter *printer); + void on_printButton_clicked(); private: void paintMarkers( bool checked, const QSize& printSize ); diff --git a/examples/DrawIntoPainter/mainwindow.cpp b/examples/DrawIntoPainter/mainwindow.cpp --- a/examples/DrawIntoPainter/mainwindow.cpp +++ b/examples/DrawIntoPainter/mainwindow.cpp @@ -36,6 +36,7 @@ #include #include #include +#include using namespace KChart; @@ -173,6 +174,20 @@ on_paintMarkersCB_toggled( false ); } +void MainWindow::slotPaintRequested(QPrinter *printer) +{ + QPainter painter(printer); + m_chart->paint(&painter, painter.window()); +} + +void MainWindow::on_printButton_clicked() +{ + static QPrinter printer; + QPrintPreviewDialog dialog(&printer); + connect(&dialog, SIGNAL(paintRequested(QPrinter*)), this, SLOT(slotPaintRequested(QPrinter*))); + dialog.exec(); +} + void MainWindow::on_lineTypeCB_currentIndexChanged( const QString & text ) { if ( text == "Normal" ) diff --git a/examples/DrawIntoPainter/mainwindow.ui b/examples/DrawIntoPainter/mainwindow.ui --- a/examples/DrawIntoPainter/mainwindow.ui +++ b/examples/DrawIntoPainter/mainwindow.ui @@ -385,6 +385,13 @@ + + + + Print + + + diff --git a/examples/HeadersFooters/Advanced/mainwindow.h b/examples/HeadersFooters/Advanced/mainwindow.h --- a/examples/HeadersFooters/Advanced/mainwindow.h +++ b/examples/HeadersFooters/Advanced/mainwindow.h @@ -29,6 +29,8 @@ #include #include +class QPrinter; + namespace KChart { class Chart; class DatasetProxyModel; @@ -44,12 +46,12 @@ private slots: void on_defaultButton_clicked(); + void slotPaintRequested(QPrinter *printer); void on_printButton_clicked(); void on_addHeaderPB_clicked(); void on_editHeaderPB_clicked(); void on_removeHeaderPB_clicked(); void on_headersTV_itemSelectionChanged(); - private: void setupAddHeaderDialog( QDialog* dlg, Ui::AddHeaderDialog& conf ) const; diff --git a/examples/HeadersFooters/Advanced/mainwindow.cpp b/examples/HeadersFooters/Advanced/mainwindow.cpp --- a/examples/HeadersFooters/Advanced/mainwindow.cpp +++ b/examples/HeadersFooters/Advanced/mainwindow.cpp @@ -29,7 +29,7 @@ #include #include #include -#include +#include class HeaderItem : public QTreeWidgetItem { @@ -120,14 +120,19 @@ m_chart->update(); } + +void MainWindow::slotPaintRequested(QPrinter *printer) +{ + QPainter painter(printer); + m_chart->paint(&painter, painter.window()); +} + void MainWindow::on_printButton_clicked() { static QPrinter printer; - QPrintDialog dialog(&printer); - if (!dialog.exec()) - return; - QPainter painter(&printer); - m_chart->paint(&painter, painter.window()); + QPrintPreviewDialog dialog(&printer); + connect(&dialog, SIGNAL(paintRequested(QPrinter*)), this, SLOT(slotPaintRequested(QPrinter*))); + dialog.exec(); } void MainWindow::on_addHeaderPB_clicked()