#7493 Refactor: make stim plan fracture template xml import more general

This commit is contained in:
Kristian Bendiksen 2021-03-26 14:13:57 +01:00
parent acd483f04b
commit 8b1fd48166
2 changed files with 19 additions and 3 deletions

View File

@ -37,6 +37,7 @@
#include <QAction>
#include <QFileInfo>
#include <vector>
CAF_CMD_SOURCE_INIT( RicNewStimPlanFractureTemplateFeature, "RicNewStimPlanFractureTemplateFeature" );
@ -84,7 +85,23 @@ std::vector<RimStimPlanFractureTemplate*> RicNewStimPlanFractureTemplateFeature:
defaultDir,
"StimPlan XML File (*.xml);;All files(*.*)" );
if ( fileNames.isEmpty() ) return std::vector<RimStimPlanFractureTemplate*>();
auto templates = createNewTemplatesFromFiles( fileNames.toVector().toStdVector() );
if ( !fileNames.isEmpty() )
{
app->setLastUsedDialogDirectory( "STIMPLAN_XML_DIR", QFileInfo( fileNames.last() ).absolutePath() );
}
return templates;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<RimStimPlanFractureTemplate*>
RicNewStimPlanFractureTemplateFeature::createNewTemplatesFromFiles( const std::vector<QString>& fileNames )
{
if ( fileNames.empty() ) return std::vector<RimStimPlanFractureTemplate*>();
RimProject* project = RimProject::current();
CVF_ASSERT( project );
@ -119,8 +136,6 @@ std::vector<RimStimPlanFractureTemplate*> RicNewStimPlanFractureTemplateFeature:
newFractures.push_back( fractureDef );
}
app->setLastUsedDialogDirectory( "STIMPLAN_XML_DIR", QFileInfo( fileNames.last() ).absolutePath() );
return newFractures;
}

View File

@ -35,6 +35,7 @@ class RicNewStimPlanFractureTemplateFeature : public caf::CmdFeature
CAF_CMD_HEADER_INIT;
static void createNewTemplateForFractureAndUpdate( RimFracture* fracture );
static void selectFractureTemplateAndUpdate( RimFractureTemplate* fractureTemplate );
static std::vector<RimStimPlanFractureTemplate*> createNewTemplatesFromFiles( const std::vector<QString>& fileNames );
protected:
static std::vector<RimStimPlanFractureTemplate*> createNewTemplates();