### Eclipse Workspace Patch 1.0 #P qgis Index: src/app/composer/qgscomposer.h =================================================================== --- src/app/composer/qgscomposer.h (revision 13525) +++ src/app/composer/qgscomposer.h (working copy) @@ -41,6 +41,8 @@ class QResizeEvent; class QFile; class QSizeGrip; +class QPageSetupDialog; +class QPrinter; /** \ingroup MapComposer * \brief A gui for composing a printable map. @@ -118,6 +120,9 @@ //! Print the composition void on_mActionPrint_triggered(); + //! Page Setup for composition + void on_mActionPageSetup_triggered(); + //! Print as image void on_mActionExportAsImage_triggered(); @@ -201,7 +206,7 @@ //! Save window state void saveWindowState(); - /**Add a composer arrow to the item/widget map and crete a configuration widget for it*/ + /**Add a composer arrow to the item/widget map and creates a configuration widget for it*/ void addComposerArrow( QgsComposerArrow* arrow ); /**Add a composer map to the item/widget map and creates a configuration widget for it*/ @@ -299,6 +304,9 @@ //! Window menu action to select this window QAction *mWindowAction; + + //! Page & Printer Setup + QPrinter *mPrinter; }; #endif Index: src/ui/qgscomposerbase.ui =================================================================== --- src/ui/qgscomposerbase.ui (revision 13525) +++ src/ui/qgscomposerbase.ui (working copy) @@ -474,6 +474,11 @@ Adds attribute table + + + Page Setup + + mCompositionNameComboBox Index: src/app/composer/qgscomposer.cpp =================================================================== --- src/app/composer/qgscomposer.cpp (revision 13525) +++ src/app/composer/qgscomposer.cpp (working copy) @@ -52,6 +52,7 @@ #include #include #include +#include #include #include @@ -74,6 +75,9 @@ setupTheme(); QObject::connect( mButtonBox, SIGNAL( rejected() ), this, SLOT( close() ) ); + // Create a default printer at mPrinter + mPrinter = new QPrinter(); + QToolButton* orderingToolButton = new QToolButton( this ); orderingToolButton->setPopupMode( QToolButton::InstantPopup ); orderingToolButton->setAutoRaise( true ); @@ -137,6 +141,7 @@ fileMenu->addAction( mActionExportAsPDF ); fileMenu->addAction( mActionExportAsSVG ); fileMenu->addSeparator(); + fileMenu->addAction( mActionPageSetup ); fileMenu->addAction( mActionPrint ); fileMenu->addSeparator(); fileMenu->addAction( mActionQuit ); @@ -486,26 +491,26 @@ void QgsComposer::on_mActionPrint_triggered() { - QPrinter printer; + //QPrinter printer; if ( mComposition ) { if ( mComposition->paperWidth() >= mComposition->paperHeight() ) { - printer.setOrientation( QPrinter::Landscape ); + mPrinter->setOrientation( QPrinter::Landscape ); } else { - printer.setOrientation( QPrinter::Portrait ); + mPrinter->setOrientation( QPrinter::Portrait ); } } - printer.setPaperSize( QSizeF( mComposition->paperWidth(), mComposition->paperHeight() ), QPrinter::Millimeter ); - QPrintDialog printDialog( &printer, 0 ); + mPrinter->setPaperSize( QSizeF( mComposition->paperWidth(), mComposition->paperHeight() ), QPrinter::Millimeter ); + QPrintDialog printDialog( mPrinter, 0 ); if ( printDialog.exec() != QDialog::Accepted ) { return; } - print( printer ); + print( *mPrinter ); } void QgsComposer::print( QPrinter &printer ) @@ -1498,4 +1503,14 @@ } } +void QgsComposer::on_mActionPageSetup_triggered() +{ + if ( !mComposition ) + return; + + QPageSetupDialog *pageSetupDialog; + pageSetupDialog = new QPageSetupDialog(mPrinter, this); + + pageSetupDialog->show(); +}