QgsMapSaveDialog::QgsMapSaveDialog( QWidget *parent, QgsMapCanvas *mapCanvas, const QList<QgsDecorationItem *> &decorations, const QList< QgsAnnotation *> &annotations, DialogType type ) : QDialog( parent ) , mDialogType( type ) , mMapCanvas( mapCanvas ) , mAnnotations( annotations ) { setupUi( this ); // Use unrotated visible extent to insure output size and scale matches canvas QgsMapSettings ms = mMapCanvas->mapSettings(); ms.setRotation( 0 ); mExtent = ms.visibleExtent(); mDpi = ms.outputDpi(); mSize = ms.outputSize(); mResolutionSpinBox->setValue( mDpi ); mExtentGroupBox->setOutputCrs( ms.destinationCrs() ); mExtentGroupBox->setCurrentExtent( mExtent, ms.destinationCrs() ); mExtentGroupBox->setOutputExtentFromCurrent(); mExtentGroupBox->setMapCanvas( mapCanvas ); mScaleWidget->setScale( ms.scale() ); mScaleWidget->setMapCanvas( mMapCanvas ); mScaleWidget->setShowCurrentScaleButton( true ); QString activeDecorations; Q_FOREACH ( QgsDecorationItem *decoration, decorations ) { mDecorations << decoration; if ( activeDecorations.isEmpty() ) activeDecorations = decoration->name().toLower(); else activeDecorations += QStringLiteral( ", %1" ).arg( decoration->name().toLower() ); }
void QgsExtentGroupBox::setOutputExtentFromCurrent() { if ( mCanvas ) { // Use unrotated visible extent to insure output size and scale matches canvas QgsMapSettings ms = mCanvas->mapSettings(); ms.setRotation( 0 ); setOutputExtent( ms.visibleExtent(), ms.destinationCrs(), CurrentExtent ); } else { setOutputExtent( mCurrentExtent, mCurrentCrs, CurrentExtent ); } }