void QgsCoordinateTransformContext::readSettings() { d.detach(); d->mLock.lockForWrite(); d->mSourceDestDatumTransforms.clear(); #if 0 d->mSourceDatumTransforms.clear(); d->mDestDatumTransforms.clear(); #endif QgsSettings settings; settings.beginGroup( QStringLiteral( "/Projections" ) ); QStringList projectionKeys = settings.allKeys(); //collect src and dest entries that belong together QMap< QPair< QString, QString >, QPair< int, int > > transforms; QStringList::const_iterator pkeyIt = projectionKeys.constBegin(); for ( ; pkeyIt != projectionKeys.constEnd(); ++pkeyIt ) { if ( pkeyIt->contains( QLatin1String( "srcTransform" ) ) || pkeyIt->contains( QLatin1String( "destTransform" ) ) ) { QStringList split = pkeyIt->split( '/' ); QString srcAuthId, destAuthId; if ( ! split.isEmpty() ) { srcAuthId = split.at( 0 ); } if ( split.size() > 1 ) { destAuthId = split.at( 1 ).split( '_' ).at( 0 ); } QString proj = settings.value( *pkeyIt ).toString(); Q_NOWARN_DEPRECATED_PUSH int datumId = QgsDatumTransform::projStringToDatumTransformId( proj ); Q_NOWARN_DEPRECATED_POP if ( pkeyIt->contains( QLatin1String( "srcTransform" ) ) ) { transforms[ qMakePair( srcAuthId, destAuthId )].first = datumId; } else if ( pkeyIt->contains( QLatin1String( "destTransform" ) ) ) { transforms[ qMakePair( srcAuthId, destAuthId )].second = datumId; } } }