@@ -161,7 +161,7 @@ QgsCoordinateTransform::TransformPair QgsCoordinateTransformContext::calculateDa
161161#endif
162162}
163163
164- void QgsCoordinateTransformContext::readXml ( const QDomElement &element, const QgsReadWriteContext & )
164+ bool QgsCoordinateTransformContext::readXml ( const QDomElement &element, const QgsReadWriteContext &, QStringList &missingTransforms )
165165{
166166 d.detach ();
167167 d->mLock .lockForWrite ();
@@ -176,9 +176,12 @@ void QgsCoordinateTransformContext::readXml( const QDomElement &element, const Q
176176 if ( contextNodes.count () < 1 )
177177 {
178178 d->mLock .unlock ();
179- return ;
179+ return true ;
180180 }
181181
182+ missingTransforms.clear ();
183+ bool result = true ;
184+
182185 const QDomElement contextElem = contextNodes.at ( 0 ).toElement ();
183186
184187 // src/dest transforms
@@ -194,11 +197,26 @@ void QgsCoordinateTransformContext::readXml( const QDomElement &element, const Q
194197
195198 int datumId1 = -1 ;
196199 int datumId2 = -1 ;
200+ // warn if value1 or value2 is non-empty, yet no matching transform was found
197201 if ( !value1.isEmpty () )
202+ {
198203 datumId1 = QgsCoordinateTransform::projStringToDatumTransformId ( value1 );
204+ if ( datumId1 < 0 )
205+ {
206+ result = false ;
207+ missingTransforms << value1;
208+ }
209+ }
199210 if ( !value2.isEmpty () )
211+ {
200212 datumId2 = QgsCoordinateTransform::projStringToDatumTransformId ( value2 );
201- // TODO - throw warning if value1 or value2 is non-empty, yet no matching transform was found
213+ if ( datumId2 < 0 )
214+ {
215+ result = false ;
216+ missingTransforms << value2;
217+ }
218+ }
219+
202220 d->mSourceDestDatumTransforms .insert ( qMakePair ( key1, key2 ), QgsCoordinateTransform::TransformPair ( datumId1, datumId2 ) );
203221 }
204222
@@ -235,6 +253,7 @@ void QgsCoordinateTransformContext::readXml( const QDomElement &element, const Q
235253#endif
236254
237255 d->mLock .unlock ();
256+ return result;
238257}
239258
240259void QgsCoordinateTransformContext::writeXml ( QDomElement &element, const QgsReadWriteContext & ) const
0 commit comments