[QGIS-Developer] how compatible .qml files are ?

Sandro Santilli strk at kbt.io
Sat Aug 31 00:10:53 PDT 2019


On Thu, Aug 29, 2019 at 08:41:03AM +1000, Nyall Dawson wrote:

> All this old 1.x compatiblity code was dropped in the 2 -> 3 migration

Do you have any reference of the exact commit which removed such
compatibility ?

This does not give me any hint:

  git log --stat src/core/qgsprojectfiletransform.cpp

Also, the methods of that class suggest there is conversion code
for versions as old as 0.8.0:

	QgsProjectFileTransform::TransformItem QgsProjectFileTransform::sTransformers[] =
	{
		{PFV( 0, 8, 0 ), PFV( 0, 8, 1 ), &QgsProjectFileTransform::transformNull},
		{PFV( 0, 8, 1 ), PFV( 0, 9, 0 ), &QgsProjectFileTransform::transform081to090},
		{PFV( 0, 9, 0 ), PFV( 0, 9, 1 ), &QgsProjectFileTransform::transformNull},
		{PFV( 0, 9, 1 ), PFV( 0, 10, 0 ), &QgsProjectFileTransform::transform091to0100},
		// Following line is a hack that takes us straight from 0.9.2 to 0.11.0
		// due to an unknown bug in migrating 0.9.2 files which we didn't pursue (TS & GS)
		{PFV( 0, 9, 2 ), PFV( 0, 11, 0 ), &QgsProjectFileTransform::transformNull},
		{PFV( 0, 10, 0 ), PFV( 0, 11, 0 ), &QgsProjectFileTransform::transform0100to0110},
		{PFV( 0, 11, 0 ), PFV( 1, 0, 0 ), &QgsProjectFileTransform::transform0110to1000},
		{PFV( 1, 0, 0 ), PFV( 1, 1, 0 ), &QgsProjectFileTransform::transformNull},
		{PFV( 1, 0, 2 ), PFV( 1, 1, 0 ), &QgsProjectFileTransform::transformNull},
		{PFV( 1, 1, 0 ), PFV( 1, 2, 0 ), &QgsProjectFileTransform::transform1100to1200},
		{PFV( 1, 2, 0 ), PFV( 1, 3, 0 ), &QgsProjectFileTransform::transformNull},
		{PFV( 1, 3, 0 ), PFV( 1, 4, 0 ), &QgsProjectFileTransform::transformNull},
		{PFV( 1, 4, 0 ), PFV( 1, 5, 0 ), &QgsProjectFileTransform::transform1400to1500},
		{PFV( 1, 5, 0 ), PFV( 1, 6, 0 ), &QgsProjectFileTransform::transformNull},
		{PFV( 1, 6, 0 ), PFV( 1, 7, 0 ), &QgsProjectFileTransform::transformNull},
		{PFV( 1, 7, 0 ), PFV( 1, 8, 0 ), &QgsProjectFileTransform::transformNull},
		{PFV( 1, 8, 0 ), PFV( 1, 9, 0 ), &QgsProjectFileTransform::transform1800to1900},
		{PFV( 1, 9, 0 ), PFV( 2, 0, 0 ), &QgsProjectFileTransform::transformNull},
		{PFV( 2, 0, 0 ), PFV( 2, 1, 0 ), &QgsProjectFileTransform::transformNull},
		{PFV( 2, 1, 0 ), PFV( 2, 2, 0 ), &QgsProjectFileTransform::transformNull},
		{PFV( 2, 2, 0 ), PFV( 2, 3, 0 ), &QgsProjectFileTransform::transform2200to2300},
		// A transformer with a NULL from version means that it should be run when upgrading
		// from any version and will take care that it's not going to cause trouble if it's
		// run several times on the same file.
		{PFV(), PFV( 3, 0, 0 ), &QgsProjectFileTransform::transform3000},
	};

--strk;


More information about the QGIS-Developer mailing list