QgsComposition::~QgsComposition() { removePaperItems(); deleteAndRemoveMultiFrames(); // make sure that all composer items are removed before // this class is deconstructed - to avoid segfaults // when composer items access in destructor composition that isn't valid anymore clear(); delete mActiveItemCommand; delete mActiveMultiFrameCommand; }
QgsComposition::~QgsComposition() { removePaperItems(); QSet<QgsComposerMultiFrame*>::iterator multiFrameIt = mMultiFrames.begin(); for ( ; multiFrameIt != mMultiFrames.end(); ++multiFrameIt ) { delete *multiFrameIt; } mMultiFrames.clear(); // make sure that all composer items are removed before // this class is deconstructed - to avoid segfaults // when composer items access in destructor composition that isn't valid anymore clear(); delete mActiveItemCommand; delete mActiveMultiFrameCommand; }
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; }