Skip to content

Commit aaa92cc

Browse files
committed
Recompute webpage viewport dimensions when resizing html frames (Funded by Sourcepole QGIS Enterprise)
1 parent 88b13e8 commit aaa92cc

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

src/core/composer/qgscomposerhtml.cpp

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ QgsComposerHtml::QgsComposerHtml( QgsComposition* c, bool createUndoCommands ):
4545
{
4646
mHtmlUnitsToMM = htmlUnitsToMM();
4747
mWebPage = new QWebPage();
48+
mWebPage->mainFrame()->setScrollBarPolicy( Qt::Horizontal, Qt::ScrollBarAlwaysOff );
49+
mWebPage->mainFrame()->setScrollBarPolicy( Qt::Vertical, Qt::ScrollBarAlwaysOff );
4850
mWebPage->setNetworkAccessManager( QgsNetworkAccessManager::instance() );
4951
QObject::connect( mWebPage, SIGNAL( loadFinished( bool ) ), this, SLOT( frameLoaded( bool ) ) );
5052
if ( mComposition )
@@ -181,6 +183,20 @@ void QgsComposerHtml::loadHtml()
181183
qApp->processEvents();
182184
}
183185

186+
renderCachedImage();
187+
recalculateFrameSizes();
188+
//trigger a repaint
189+
emit contentsChanged();
190+
}
191+
192+
void QgsComposerHtml::frameLoaded( bool ok )
193+
{
194+
Q_UNUSED( ok );
195+
mLoaded = true;
196+
}
197+
198+
void QgsComposerHtml::recalculateFrameSizes()
199+
{
184200
if ( frameCount() < 1 ) return;
185201

186202
QSize contentsSize = mWebPage->mainFrame()->contentsSize();
@@ -196,23 +212,10 @@ void QgsComposerHtml::loadHtml()
196212
contentsSize.setWidth( maxFrameWidth * mHtmlUnitsToMM );
197213

198214
mWebPage->setViewportSize( contentsSize );
199-
mWebPage->mainFrame()->setScrollBarPolicy( Qt::Horizontal, Qt::ScrollBarAlwaysOff );
200-
mWebPage->mainFrame()->setScrollBarPolicy( Qt::Vertical, Qt::ScrollBarAlwaysOff );
201215
mSize.setWidth( contentsSize.width() / mHtmlUnitsToMM );
202216
mSize.setHeight( contentsSize.height() / mHtmlUnitsToMM );
203-
204-
renderCachedImage();
205-
206-
recalculateFrameSizes();
217+
QgsComposerMultiFrame::recalculateFrameSizes();
207218
emit changed();
208-
//trigger a repaint
209-
emit contentsChanged();
210-
}
211-
212-
void QgsComposerHtml::frameLoaded( bool ok )
213-
{
214-
Q_UNUSED( ok );
215-
mLoaded = true;
216219
}
217220

218221
void QgsComposerHtml::renderCachedImage()

src/core/composer/qgscomposerhtml.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ class CORE_EXPORT QgsComposerHtml: public QgsComposerMultiFrame
214214
* @see url
215215
*/
216216
void loadHtml();
217-
217+
void recalculateFrameSizes();
218218
void refreshExpressionContext();
219219

220220
virtual void refreshDataDefinedProperty( const QgsComposerObject::DataDefinedProperty property = QgsComposerObject::AllProperties );

0 commit comments

Comments
 (0)