Skip to content

Commit d0bf482

Browse files
committed
Add accessor for individual frame to QgsComposerMultiFrame. Adapt unit tests because composer items without frames are now the default
1 parent 1f53221 commit d0bf482

File tree

5 files changed

+20
-0
lines changed

5 files changed

+20
-0
lines changed

python/core/qgscomposermultiframe.sip

+1
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,5 @@ public:
4343
void deleteFrames();
4444

4545
int nFrames() const;
46+
QgsComposerFrame* frame( int i );
4647
};

src/core/composer/qgscomposermultiframe.cpp

+9
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,15 @@ void QgsComposerMultiFrame::deleteFrames()
238238
mResizeMode = bkResizeMode;
239239
}
240240

241+
QgsComposerFrame* QgsComposerMultiFrame::frame( int i )
242+
{
243+
if ( i >= mFrameItems.size() )
244+
{
245+
return 0;
246+
}
247+
return mFrameItems.at( i );
248+
}
249+
241250
bool QgsComposerMultiFrame::_writeXML( QDomElement& elem, QDomDocument& doc, bool ignoreFrames ) const
242251
{
243252
elem.setAttribute( "resizeMode", mResizeMode );

src/core/composer/qgscomposermultiframe.h

+1
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ class CORE_EXPORT QgsComposerMultiFrame: public QObject
7070
void deleteFrames();
7171

7272
int nFrames() const { return mFrameItems.size(); }
73+
QgsComposerFrame* frame( int i );
7374

7475
protected:
7576
QgsComposition* mComposition;

tests/src/core/testqgscomposerhtml.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ void TestQgsComposerHtml::table()
6161
{
6262
QgsComposerHtml* htmlItem = new QgsComposerHtml( mComposition, false );
6363
QgsComposerFrame* htmlFrame = new QgsComposerFrame( mComposition, htmlItem, 0, 0, 100, 200 );
64+
htmlFrame->setFrame( true );
6465
htmlItem->addFrame( htmlFrame );
6566
htmlItem->setUrl( QUrl( QString( "file:///%1" ).arg( QString( TEST_DATA_DIR ) + QDir::separator() + "html_table.html" ) ) );
6667
QgsCompositionChecker checker( "Composer html table", mComposition, QString( QString( TEST_DATA_DIR ) + QDir::separator() +
@@ -77,6 +78,12 @@ void TestQgsComposerHtml::tableMultiFrame()
7778
QgsComposerFrame* htmlFrame = new QgsComposerFrame( mComposition, htmlItem, 10, 10, 100, 50 );
7879
htmlItem->addFrame( htmlFrame );
7980
htmlItem->setResizeMode( QgsComposerMultiFrame::RepeatUntilFinished );
81+
int nFrames = htmlItem->nFrames();
82+
for ( int i = 0; i < nFrames; ++i )
83+
{
84+
htmlItem->frame( i )->setFrame( true );
85+
}
86+
8087
bool result = true;
8188
//page1
8289
htmlItem->setUrl( QUrl( QString( "file:///%1" ).arg( QString( TEST_DATA_DIR ) + QDir::separator() + "html_table.html" ) ) );

tests/src/core/testqgscomposermap.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ void TestQgsComposerMap::initTestCase()
6767
mComposition = new QgsComposition( mMapRenderer );
6868
mComposition->setPaperSize( 297, 210 ); //A4 landscape
6969
mComposerMap = new QgsComposerMap( mComposition, 20, 20, 200, 100 );
70+
mComposerMap->setFrame( true );
7071
mComposition->addComposerMap( mComposerMap );
7172
}
7273

@@ -121,6 +122,7 @@ void TestQgsComposerMap::grid()
121122
void TestQgsComposerMap::overviewMap()
122123
{
123124
QgsComposerMap* overviewMap = new QgsComposerMap( mComposition, 20, 130, 70, 70 );
125+
overviewMap->setFrame( true );
124126
mComposition->addComposerMap( overviewMap );
125127
mComposerMap->setNewExtent( QgsRectangle( 785462.375, 3341423.125, 789262.375, 3343323.125 ) ); //zoom in
126128
overviewMap->setNewExtent( QgsRectangle( 781662.375, 3339523.125, 793062.375, 3350923.125 ) );

0 commit comments

Comments
 (0)