Fix advanced snapshot export.

This commit is contained in:
Jon Jenssen authored and JJ committed 2026-06-17 13:55:32 +02:00
1 parent a88d0824b0
commit 7c9b9705b7
1 file changed
+16 -9
@@ -526,18 +526,25 @@ QImage Rim3dView::captureSnapshot( int width, int height )
QImage image;
if ( m_viewer )
{
QSize orgSize = m_viewer->layoutWidget()->size();
if ( width <= 0 || height <= 0 )
{
image = m_viewer->snapshotImage();
}
else
{
QSize orgSize = m_viewer->layoutWidget()->size();
// adjust for possible display DPI scaling
const auto ratio = m_viewer->displayScalingRatio();
m_viewer->layoutWidget()->setFixedSize( (int)( 1.0 * width / ratio ), (int)( 1.0 * height / ratio ) );
// adjust for possible display DPI scaling
const auto ratio = m_viewer->displayScalingRatio();
m_viewer->layoutWidget()->setFixedSize( (int)( 1.0 * width / ratio ), (int)( 1.0 * height / ratio ) );
image = m_viewer->snapshotImage();
image = m_viewer->snapshotImage();
// reset fixed size and restore original size
m_viewer->layoutWidget()->setMinimumSize( 0, 0 );
m_viewer->layoutWidget()->setMaximumSize( QWIDGETSIZE_MAX, QWIDGETSIZE_MAX );
m_viewer->layoutWidget()->resize( orgSize );
// reset fixed size and restore original size
m_viewer->layoutWidget()->setMinimumSize( 0, 0 );
m_viewer->layoutWidget()->setMaximumSize( QWIDGETSIZE_MAX, QWIDGETSIZE_MAX );
m_viewer->layoutWidget()->resize( orgSize );
}
}
return image;