#6393 Snapshot : Make sure widgets are activated before taking snapshot

If the active plot window is maximized in the MDI area, all plots will create the same snapshot size.
This commit is contained in:
Magne Sjaastad
2020-08-28 13:19:51 +02:00
parent 7e097a7364
commit b1fb7990dc
3 changed files with 19 additions and 1 deletions

View File

@@ -113,16 +113,22 @@ caf::PdmScriptResponse RicfExportSnapshots::execute()
}
if ( m_type == RicfExportSnapshots::SnapshotsType::PLOTS || m_type == RicfExportSnapshots::SnapshotsType::ALL )
{
bool activateWidget = false;
if ( RiaRegressionTestRunner::instance()->isRunningRegressionTests() )
{
RiaRegressionTestRunner::setDefaultSnapshotSizeForPlotWindows();
QApplication::processEvents();
}
else
{
activateWidget = true;
}
QString fileSuffix = ".png";
if ( m_plotOutputFormat == PlotOutputFormat::PDF ) fileSuffix = ".pdf";
RicSnapshotAllPlotsToFileFeature::exportSnapshotOfPlotsIntoFolder( absolutePathToSnapshotDir,
activateWidget,
m_prefix,
m_viewId(),
fileSuffix );

View File

@@ -57,7 +57,8 @@ void RicSnapshotAllPlotsToFileFeature::saveAllPlots()
// Save images in snapshot catalog relative to project directory
QString snapshotFolderName = app->createAbsolutePathFromProjectRelativePath( "snapshots" );
exportSnapshotOfPlotsIntoFolder( snapshotFolderName );
bool activateWidget = true;
exportSnapshotOfPlotsIntoFolder( snapshotFolderName, activateWidget );
QString text = QString( "Exported snapshots to folder : \n%1" ).arg( snapshotFolderName );
RiaLogging::info( text );
@@ -67,6 +68,7 @@ void RicSnapshotAllPlotsToFileFeature::saveAllPlots()
///
//--------------------------------------------------------------------------------------------------
void RicSnapshotAllPlotsToFileFeature::exportSnapshotOfPlotsIntoFolder( const QString& snapshotFolderName,
bool activateWidget,
const QString& prefix,
int viewId,
const QString& preferredFileSuffix /*=".png"*/ )
@@ -99,6 +101,15 @@ void RicSnapshotAllPlotsToFileFeature::exportSnapshotOfPlotsIntoFolder( const QS
fileName.replace( " ", "_" );
if ( activateWidget )
{
// If the active MDI widget is maximized, all widgets will be maximized in the MDI area before taking
// snapshots
RiuPlotMainWindowTools::selectAsCurrentItem( viewWindow );
QApplication::processEvents();
}
QString absoluteFileName = caf::Utils::constructFullFileName( absSnapshotPath, fileName, preferredFileSuffix );
RicSnapshotViewToFileFeature::saveSnapshotAs( absoluteFileName, viewWindow );

View File

@@ -33,6 +33,7 @@ public:
static void saveAllPlots();
static void exportSnapshotOfPlotsIntoFolder( const QString& snapshotFolderName,
bool activateWidget = false,
const QString& prefix = "",
int viewId = -1,
const QString& preferredFileSuffix = ".png" );