void QgsProjectionSelectionWidget::comboIndexChanged( int idx ) { switch (( CrsOption )mCrsComboBox->itemData( idx ).toInt() ) { case QgsProjectionSelectionWidget::LayerCrs: emit crsChanged( mLayerCrs ); return; case QgsProjectionSelectionWidget::ProjectCrs: emit crsChanged( mProjectCrs ); return; case QgsProjectionSelectionWidget::CurrentCrs: emit crsChanged( mCrs ); return; case QgsProjectionSelectionWidget::DefaultCrs: emit crsChanged( mDefaultCrs ); return; case QgsProjectionSelectionWidget::RecentCrs: { long srsid = mCrsComboBox->itemData( idx, Qt::UserRole + 1 ).toLongLong(); QgsCoordinateReferenceSystem crs; crs.createFromSrsId( srsid ); emit crsChanged( crs ); return; } } }
void QgsProjectionSelectionWidget::setCrs( const QgsCoordinateReferenceSystem &crs ) { if ( crs.isValid() ) { if ( !optionVisible( QgsProjectionSelectionWidget::CurrentCrs ) ) setOptionVisible( QgsProjectionSelectionWidget::CurrentCrs, true ); mCrsComboBox->setItemText( mCrsComboBox->findData( QgsProjectionSelectionWidget::CurrentCrs ), crsOptionText( crs ) ); mCrsComboBox->blockSignals( true ); mCrsComboBox->setCurrentIndex( mCrsComboBox->findData( QgsProjectionSelectionWidget::CurrentCrs ) ); mCrsComboBox->blockSignals( false ); } else { int crsNotSetIndex = mCrsComboBox->findData( QgsProjectionSelectionWidget::CrsNotSet ); if ( crsNotSetIndex >= 0 ) { mCrsComboBox->blockSignals( true ); mCrsComboBox->setCurrentIndex( crsNotSetIndex ); mCrsComboBox->blockSignals( false ); } else { mCrsComboBox->setItemText( mCrsComboBox->findData( QgsProjectionSelectionWidget::CurrentCrs ), crsOptionText( crs ) ); } } if ( mCrs != crs ) { mCrs = crs; emit crsChanged( crs ); } }
void QgsProjectionSelectionWidget::selectCrs() { //find out crs id of current proj4 string if ( mCrs.isValid() ) { mDialog->setSelectedCrsId( mCrs.srsid() ); } if ( mDialog->exec() ) { mCrsComboBox->blockSignals( true ); mCrsComboBox->setCurrentIndex( mCrsComboBox->findData( QgsProjectionSelectionWidget::CurrentCrs ) ); mCrsComboBox->blockSignals( false ); QgsCoordinateReferenceSystem crs; crs.createFromOgcWmsCrs( mDialog->selectedAuthId() ); setCrs( crs ); emit crsChanged( crs ); } else { QApplication::restoreOverrideCursor(); } }
void QgsProjectionSelectionWidget::selectCrs() { //find out crs id of current proj4 string QgsProjectionSelectionDialog dlg( this ); dlg.setMessage( mMessage ); if ( mCrs.isValid() ) { dlg.setCrs( mCrs ); } if ( dlg.exec() ) { mCrsComboBox->blockSignals( true ); mCrsComboBox->setCurrentIndex( mCrsComboBox->findData( QgsProjectionSelectionWidget::CurrentCrs ) ); mCrsComboBox->blockSignals( false ); QgsCoordinateReferenceSystem crs = dlg.crs(); setCrs( crs ); emit crsChanged( crs ); } else { QApplication::restoreOverrideCursor(); } }