Regression Test : Make it possible to override plot engine

Add GUI to override plot engine to either Qwt or QtCharts in regression test dialog
This commit is contained in:
Magne Sjaastad 2022-01-20 13:21:32 +01:00
parent 99fde63af1
commit 40d59b7bdc
5 changed files with 48 additions and 7 deletions

View File

@ -22,12 +22,21 @@
#include "cafPdmUiFilePathEditor.h"
#include "cafPdmUiTextEditor.h"
template <>
void caf::AppEnum<RiaRegressionTest::PlotEngine>::setUp()
{
addItem( RiaRegressionTest::PlotEngine::USE_QWT, "USE_QWT", "Use Qwt" );
addItem( RiaRegressionTest::PlotEngine::USER_QTCHARTS, "USER_QTCHARTS", "Use QtCharts" );
addItem( RiaRegressionTest::PlotEngine::NONE, "NONE", "None" );
setDefault( RiaRegressionTest::PlotEngine::NONE );
}
CAF_PDM_SOURCE_INIT( RiaRegressionTest, "RiaRegressionTest" );
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaRegressionTest::RiaRegressionTest( void )
RiaRegressionTest::RiaRegressionTest()
{
CAF_PDM_InitFieldNoDefault( &folderContainingCompareTool,
"workingFolder",
@ -73,12 +82,13 @@ RiaRegressionTest::RiaRegressionTest( void )
CAF_PDM_InitField( &appendTestsAfterTestFilter, "appendTestsAfterTestFilter", false, "Append All Tests After Test Filter" );
CAF_PDM_InitField( &invalidateExternalFilePaths, "invalidateExternalFilePaths", false, "Invalidate External File Paths" );
CAF_PDM_InitFieldNoDefault( &overridePlotEngine, "forcePlotEngine", "Force Plot Engine" );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaRegressionTest::~RiaRegressionTest( void )
RiaRegressionTest::~RiaRegressionTest()
{
}
@ -108,7 +118,7 @@ void RiaRegressionTest::defineEditorAttribute( const caf::PdmFieldHandle* field,
if ( field == &folderContainingDiffTool || field == &folderContainingCompareTool ||
field == &regressionTestFolder || field == &folderContainingGitTool )
{
caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast<caf::PdmUiFilePathEditorAttribute*>( attribute );
auto* myAttr = dynamic_cast<caf::PdmUiFilePathEditorAttribute*>( attribute );
if ( myAttr )
{
myAttr->m_selectDirectory = true;

View File

@ -27,8 +27,16 @@ class RiaRegressionTest : public caf::PdmObject
CAF_PDM_HEADER_INIT;
public:
RiaRegressionTest( void );
~RiaRegressionTest( void ) override;
enum class PlotEngine
{
USE_QWT,
USER_QTCHARTS,
NONE
};
public:
RiaRegressionTest();
~RiaRegressionTest() override;
void writeSettingsToApplicationStore() const;
void readSettingsFromApplicationStore();
@ -45,6 +53,8 @@ public:
caf::PdmField<bool> appendTestsAfterTestFilter;
caf::PdmField<bool> invalidateExternalFilePaths;
caf::PdmField<caf::AppEnum<PlotEngine>> overridePlotEngine;
protected:
void defineEditorAttribute( const caf::PdmFieldHandle* field,
QString uiConfigName,

View File

@ -643,6 +643,14 @@ bool RiaRegressionTestRunner::useOpenMPForGeometryCreation() const
return m_regressionTestSettings.useOpenMPForGeometryCreation;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaRegressionTest::PlotEngine RiaRegressionTestRunner::overridePlotEngine() const
{
return m_regressionTestSettings.overridePlotEngine();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -25,7 +25,6 @@
#include <QStringList>
class QDir;
class RiaRegressionTest;
//==================================================================================================
//
@ -41,6 +40,8 @@ public:
bool isRunningRegressionTests() const;
bool useOpenMPForGeometryCreation() const;
RiaRegressionTest::PlotEngine overridePlotEngine() const;
static void updateRegressionTest( const QString& testRootPath );
static void setDefaultSnapshotSizeFor3dViews();

View File

@ -22,6 +22,7 @@
#include "RiaDefines.h"
#include "RiaFieldHandleTools.h"
#include "RiaPlotDefines.h"
#include "RiaRegressionTestRunner.h"
#include "RiaSummaryAddressAnalyzer.h"
#include "RiaSummaryCurveDefinition.h"
#include "RiaSummaryTools.h"
@ -2017,7 +2018,18 @@ RiuPlotWidget* RimSummaryPlot::doCreatePlotViewWidget( QWidget* mainWindowParent
if ( !plotWidget() )
{
#ifdef USE_QTCHARTS
if ( m_useQtChartsPlot )
bool useQtCharts = m_useQtChartsPlot;
auto regTestRunner = RiaRegressionTestRunner::instance();
if ( regTestRunner->isRunningRegressionTests() )
{
if ( regTestRunner->overridePlotEngine() == RiaRegressionTest::PlotEngine::USE_QWT )
useQtCharts = false;
else if ( regTestRunner->overridePlotEngine() == RiaRegressionTest::PlotEngine::USER_QTCHARTS )
useQtCharts = true;
}
if ( useQtCharts )
{
m_summaryPlot = std::make_unique<RiuSummaryQtChartsPlot>( this, mainWindowParent );
}