void QgsComposition::setNumPages( int pages ) { int currentPages = numPages(); int diff = pages - currentPages; if ( diff >= 0 ) { for ( int i = 0; i < diff; ++i ) { addPaperItem(); } } else { diff = -diff; for ( int i = 0; i < diff; ++i ) { delete mPages.last(); mPages.removeLast(); } } // update the corresponding variable QgsExpression::setSpecialColumn( "$numpages", QVariant(( int )numPages() ) ); emit nPagesChanged(); }
QgsComposition::QgsComposition( QgsMapRenderer* mapRenderer ): QGraphicsScene( 0 ), mMapRenderer( mapRenderer ), mPlotStyle( QgsComposition::Preview ), mPageWidth( 297 ), mPageHeight( 210 ), mSpaceBetweenPages( 10 ), mPrintAsRaster( false ), mSelectionTolerance( 0.0 ), mSnapToGrid( false ), mSnapGridResolution( 0.0 ), mSnapGridOffsetX( 0.0 ), mSnapGridOffsetY( 0.0 ), mActiveItemCommand( 0 ), mActiveMultiFrameCommand( 0 ) { setBackgroundBrush( Qt::gray ); addPaperItem(); mPrintResolution = 300; //hardcoded default loadSettings(); }
bool QgsComposition::readXML( const QDomElement& compositionElem, const QDomDocument& doc ) { Q_UNUSED( doc ); if ( compositionElem.isNull() ) { return false; } //create pages bool widthConversionOk, heightConversionOk; mPageWidth = compositionElem.attribute( "paperWidth" ).toDouble( &widthConversionOk ); mPageHeight = compositionElem.attribute( "paperHeight" ).toDouble( &heightConversionOk ); int numPages = compositionElem.attribute( "numPages", "1" ).toInt(); if ( widthConversionOk && heightConversionOk ) { removePaperItems(); for ( int i = 0; i < numPages; ++i ) { addPaperItem(); } } //snapping if ( compositionElem.attribute( "snapping" ) == "0" ) { mSnapToGrid = false; } else { mSnapToGrid = true; } mSnapGridResolution = compositionElem.attribute( "snapGridResolution" ).toDouble(); mSnapGridOffsetX = compositionElem.attribute( "snapGridOffsetX" ).toDouble(); mSnapGridOffsetY = compositionElem.attribute( "snapGridOffsetY" ).toDouble(); mPrintAsRaster = compositionElem.attribute( "printAsRaster" ).toInt(); mPrintResolution = compositionElem.attribute( "printResolution", "300" ).toInt(); updatePaperItems(); return true; }
void QgsComposition::setNumPages( int pages ) { int currentPages = numPages(); int diff = pages - currentPages; if ( diff >= 0 ) { for ( int i = 0; i < diff; ++i ) { addPaperItem(); } } else { diff = -diff; for ( int i = 0; i < diff; ++i ) { delete mPages.last(); mPages.removeLast(); } } emit nPagesChanged(); }