Skip to content

Commit 6b973e1

Browse files
committed
[composer] When opening pre 2.3 projects keep picture item placement at middle (fix #10458)
1 parent a5c0e7e commit 6b973e1

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/core/qgsprojectfiletransform.cpp

+16-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,11 @@ QgsProjectFileTransform::transform QgsProjectFileTransform::transformers[] =
5252
{PFV( 1, 5, 0 ), PFV( 1, 6, 0 ), &QgsProjectFileTransform::transformNull},
5353
{PFV( 1, 6, 0 ), PFV( 1, 7, 0 ), &QgsProjectFileTransform::transformNull},
5454
{PFV( 1, 7, 0 ), PFV( 1, 8, 0 ), &QgsProjectFileTransform::transformNull},
55-
{PFV( 1, 8, 0 ), PFV( 1, 9, 0 ), &QgsProjectFileTransform::transform1800to1900}
55+
{PFV( 1, 8, 0 ), PFV( 1, 9, 0 ), &QgsProjectFileTransform::transform1800to1900},
56+
{PFV( 1, 9, 0 ), PFV( 2, 0, 0 ), &QgsProjectFileTransform::transformNull},
57+
{PFV( 2, 0, 0 ), PFV( 2, 1, 0 ), &QgsProjectFileTransform::transformNull},
58+
{PFV( 2, 1, 0 ), PFV( 2, 2, 0 ), &QgsProjectFileTransform::transformNull},
59+
{PFV( 2, 2, 0 ), PFV( 2, 3, 0 ), &QgsProjectFileTransform::transform2200to2300},
5660
};
5761

5862
bool QgsProjectFileTransform::updateRevision( QgsProjectVersion newVersion )
@@ -594,6 +598,17 @@ void QgsProjectFileTransform::transform1800to1900()
594598
QgsDebugMsg( mDom.toString() );
595599
}
596600

601+
void QgsProjectFileTransform::transform2200to2300()
602+
{
603+
//composer: set placement for all picture items to middle, to mimic <=2.2 behaviour
604+
QDomNodeList composerPictureList = mDom.elementsByTagName( "ComposerPicture" );
605+
for ( int i = 0; i < composerPictureList.size(); ++i )
606+
{
607+
QDomElement picture = composerPictureList.at( i ).toElement();
608+
picture.setAttribute( "anchorPoint", QString::number( 4 ) );
609+
}
610+
}
611+
597612
void QgsProjectFileTransform::convertRasterProperties( QDomDocument& doc, QDomNode& parentNode,
598613
QDomElement& rasterPropertiesElem, QgsRasterLayer* rlayer )
599614
{

src/core/qgsprojectfiletransform.h

+1
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ class CORE_EXPORT QgsProjectFileTransform
8585
void transform1100to1200();
8686
void transform1400to1500();
8787
void transform1800to1900();
88+
void transform2200to2300();
8889

8990
//helper functions
9091
static int rasterBandNumber( const QDomElement &rasterPropertiesElem, const QString &bandName, QgsRasterLayer *rlayer );

0 commit comments

Comments
 (0)