#2710, #2719 Restart preference and dialog adjustments. And some bugfixes

This commit is contained in:
Bjørn Erik Jensen
2018-04-13 15:44:28 +02:00
parent 9f40679f22
commit e5e9692eb5
8 changed files with 219 additions and 134 deletions

View File

@@ -32,9 +32,9 @@ namespace caf
template<>
void RiaPreferences::SummaryRestartFilesImportModeType::setUp()
{
addItem(RiaPreferences::IMPORT, "IMPORT", "Always import");
addItem(RiaPreferences::NOT_IMPORT, "NOT_IMPORT", "Never import");
addItem(RiaPreferences::SEPARATE_CASES, "SEPARATE_CASES", "Import as separate summary cases");
addItem(RiaPreferences::IMPORT, "IMPORT", "Unified");
addItem(RiaPreferences::NOT_IMPORT, "NOT_IMPORT", "Skip");
addItem(RiaPreferences::SEPARATE_CASES, "SEPARATE_CASES", "Separate Cases");
setDefault(RiaPreferences::IMPORT);
}
}
@@ -102,8 +102,8 @@ RiaPreferences::RiaPreferences(void)
loadAndShowSoil.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitFieldNoDefault(&summaryRestartFilesShowImportDialog, "summaryRestartFilesShowImportDialog", "Show Import Dialog", "", "", "");
CAF_PDM_InitFieldNoDefault(&summaryRestartFilesImportMode, "summaryRestartFilesImportMode", "Default Import Mode", "", "", "");
CAF_PDM_InitFieldNoDefault(&importRestartGridCaseFiles, "importRestartGridCaseFiles", "Import Restart Grid Cases", "", "", "");
CAF_PDM_InitField(&summaryImportMode, "summaryImportMode", SummaryRestartFilesImportModeType(RiaPreferences::IMPORT), "Default Summary Import Option", "", "", "");
CAF_PDM_InitField(&gridImportMode, "gridImportMode", SummaryRestartFilesImportModeType(RiaPreferences::NOT_IMPORT), "Default Grid Import Option", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_readerSettings, "readerSettings", "Reader Settings", "", "", "");
m_readerSettings = new RifReaderSettings;
@@ -193,9 +193,12 @@ void RiaPreferences::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering&
m_readerSettings->defineUiOrdering(uiConfigName, *newCaseBehaviourGroup);
caf::PdmUiGroup* restartBehaviourGroup = uiOrdering.addNewGroup("Summary Restart Files");
caf::PdmUiGroup* restartBehaviourGroup = uiOrdering.addNewGroup("Restart Files");
restartBehaviourGroup->add(&summaryRestartFilesShowImportDialog);
restartBehaviourGroup->add(&summaryRestartFilesImportMode);
caf::PdmUiGroup* summaryImportOptionGroup = restartBehaviourGroup->addNewGroup("Origin Summary Files");
summaryImportOptionGroup->add(&summaryImportMode);
caf::PdmUiGroup* gridImportOptionGroup = restartBehaviourGroup->addNewGroup("Origin Grid Files");
gridImportOptionGroup->add(&gridImportMode);
}
else if (uiConfigName == m_tabNames[2])
{
@@ -240,6 +243,15 @@ QList<caf::PdmOptionItemInfo> RiaPreferences::calculateValueOptions(const caf::P
options.push_back(caf::PdmOptionItemInfo(fontSizes[oIdx], fontSizes[oIdx]));
}
}
else if (fieldNeedingOptions == &gridImportMode)
{
// Manual option handling in order to one only a subset of the enum values
SummaryRestartFilesImportModeType skip(RiaPreferences::NOT_IMPORT);
SummaryRestartFilesImportModeType separate(RiaPreferences::SEPARATE_CASES);
options.push_back(caf::PdmOptionItemInfo(skip.uiText(), RiaPreferences::NOT_IMPORT));
options.push_back(caf::PdmOptionItemInfo(separate.uiText(), RiaPreferences::SEPARATE_CASES));
}
return options;
}

View File

@@ -81,8 +81,8 @@ public: // Pdm Fields
caf::PdmField<bool> loadAndShowSoil;
caf::PdmField<bool> summaryRestartFilesShowImportDialog;
caf::PdmField<SummaryRestartFilesImportModeType> summaryRestartFilesImportMode;
caf::PdmField<bool> importRestartGridCaseFiles;
caf::PdmField<SummaryRestartFilesImportModeType> summaryImportMode;
caf::PdmField<SummaryRestartFilesImportModeType> gridImportMode;
protected:
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute);

View File

@@ -83,7 +83,8 @@ bool RiaImportEclipseCaseTools::openEclipseCasesFromFile(const QStringList& file
for (RimSummaryCase* newSumCase : newSumCases)
{
QString gridCaseFile = RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(newSumCase->summaryHeaderFilename());
if (!gridCaseFile.isEmpty())
RimEclipseCase* gridCase = project->eclipseCaseFromGridFileName(gridCaseFile);
if (gridCase)
{
RimSummaryCase* existingFileSummaryCase = sumCaseColl->findSummaryCaseFromFileName(newSumCase->summaryHeaderFilename());
if (existingFileSummaryCase)

View File

@@ -67,11 +67,12 @@ RicSummaryCaseRestartDialog::RicSummaryCaseRestartDialog(QWidget* parent)
: QDialog(parent, RiuTools::defaultDialogFlags())
{
// Create widgets
m_currentFileGridLayout = new QGridLayout();
m_readAllRadioButton = new QRadioButton(this);
m_notReadRadionButton = new QRadioButton(this);
m_separateCasesRadionButton = new QRadioButton(this);
m_includeGridHistoryFiles = new QCheckBox(this);
m_currentSummaryFileLayout = new QGridLayout();
m_summaryReadAllBtn = new QRadioButton(this);
m_summarySeparateCasesBtn = new QRadioButton(this);
m_summaryNotReadBtn = new QRadioButton(this);
m_gridSeparateCasesBtn = new QRadioButton(this);
m_gridNotReadBtn = new QRadioButton(this);
m_applyToAllCheckBox = new QCheckBox(this);
m_buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
@@ -81,38 +82,65 @@ RicSummaryCaseRestartDialog::RicSummaryCaseRestartDialog(QWidget* parent)
connect(m_buttons, SIGNAL(rejected()), this, SLOT(slotDialogCancelClicked()));
// Set widget properties
m_readAllRadioButton->setText("Import All Restart Files");
m_notReadRadionButton->setText("Do Not Import Restart Files");
m_separateCasesRadionButton->setText("Import Restart Files as Separate Cases");
m_includeGridHistoryFiles->setText("Import Historic Grid Case Files");
m_summaryReadAllBtn->setText("Unified");
m_summarySeparateCasesBtn->setText("Separate Cases");
m_summaryNotReadBtn->setText("Skip");
m_gridSeparateCasesBtn->setText("Separate Cases");
m_gridNotReadBtn->setText("Skip");
m_applyToAllCheckBox->setText("Apply to All Files");
// Define layout
QVBoxLayout* dialogLayout = new QVBoxLayout();
QGroupBox* currentFileGroup = new QGroupBox("Current Summary File");
m_currentFileGridLayout = new QGridLayout();
currentFileGroup->setLayout(m_currentFileGridLayout);
m_currentSummaryFileLayout = new QGridLayout();
currentFileGroup->setLayout(m_currentSummaryFileLayout);
QGroupBox* filesGroup = new QGroupBox("Found Restart Files");
m_filesGridLayout = new QGridLayout();
filesGroup->setLayout(m_filesGridLayout);
// Summary files
QGroupBox* summaryFilesGroup = new QGroupBox("Found Origin Summary Files");
{
QVBoxLayout* filesGroupLayout = new QVBoxLayout();
summaryFilesGroup->setLayout(filesGroupLayout);
QGroupBox* optionsGroup = new QGroupBox("Read Options");
QVBoxLayout* optionsLayout = new QVBoxLayout();
optionsLayout->addWidget(m_readAllRadioButton);
optionsLayout->addWidget(m_notReadRadionButton);
optionsLayout->addWidget(m_separateCasesRadionButton);
optionsLayout->addWidget(m_includeGridHistoryFiles);
optionsGroup->setLayout(optionsLayout);
m_summaryFilesLayout = new QGridLayout();
filesGroupLayout->addLayout(m_summaryFilesLayout);
m_summaryFilesLayout->setContentsMargins(0, 0, 0, 20);
QGroupBox* optionsGroup = new QGroupBox("Import Options");
QVBoxLayout* optionsLayout = new QVBoxLayout();
optionsGroup->setLayout(optionsLayout);
optionsLayout->addWidget(m_summaryReadAllBtn);
optionsLayout->addWidget(m_summarySeparateCasesBtn);
optionsLayout->addWidget(m_summaryNotReadBtn);
filesGroupLayout->addWidget(optionsGroup);
}
// Grid files
m_gridFilesGroup = new QGroupBox("Found Origin Grid Files");
{
QVBoxLayout* filesGroupLayout = new QVBoxLayout();
m_gridFilesGroup->setLayout(filesGroupLayout);
m_gridFilesLayout = new QGridLayout();
filesGroupLayout->addLayout(m_gridFilesLayout);
m_gridFilesLayout->setContentsMargins(0, 0, 0, 20);
QGroupBox* optionsGroup = new QGroupBox("Import Options");
QVBoxLayout* optionsLayout = new QVBoxLayout();
optionsGroup->setLayout(optionsLayout);
optionsLayout->addWidget(m_gridSeparateCasesBtn);
optionsLayout->addWidget(m_gridNotReadBtn);
filesGroupLayout->addWidget(optionsGroup);
}
// Apply to all checkbox and buttons
QHBoxLayout* buttonsLayout = new QHBoxLayout();
buttonsLayout->addWidget(m_applyToAllCheckBox);
buttonsLayout->addWidget(m_buttons);
dialogLayout->addWidget(currentFileGroup);
dialogLayout->addWidget(filesGroup);
dialogLayout->addWidget(optionsGroup);
dialogLayout->addWidget(summaryFilesGroup);
dialogLayout->addWidget(m_gridFilesGroup);
dialogLayout->addLayout(buttonsLayout);
setLayout(dialogLayout);
@@ -131,7 +159,8 @@ RicSummaryCaseRestartDialog::~RicSummaryCaseRestartDialog()
RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const QString& summaryHeaderFile,
bool showApplyToAllWidget,
bool buildGridCaseFileList,
ReadOptions defaultReadOption,
ImportOptions defaultSummaryImportOption,
ImportOptions defaultGridImportOption,
RicSummaryCaseRestartDialogResult *lastResult,
QWidget *parent)
{
@@ -144,13 +173,13 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
}
RifReaderEclipseSummary reader;
std::vector<RifRestartFileInfo> restartFileInfos = reader.getRestartFiles(summaryHeaderFile);
std::vector<RifRestartFileInfo> originFileInfos = reader.getRestartFiles(summaryHeaderFile);
// If no restart files are found, do not show dialog
if (restartFileInfos.empty())
if (originFileInfos.empty())
{
QString gridCaseFile = RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(summaryHeaderFile);
return RicSummaryCaseRestartDialogResult(true, NOT_IMPORT, QStringList({ summaryHeaderFile }), false, false, QStringList({ gridCaseFile }));
return RicSummaryCaseRestartDialogResult(true, NOT_IMPORT, NOT_IMPORT, QStringList({ summaryHeaderFile }), QStringList({ gridCaseFile }), false);
}
RicSummaryCaseRestartDialogResult dialogResult;
@@ -158,60 +187,84 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
{
dialogResult = *lastResult;
dialogResult.summaryFiles.clear();
dialogResult.restartGridFilesToImport.clear();
dialogResult.gridFiles.clear();
}
else
{
dialog.setWindowTitle("Summary Case Restart Files");
dialog.setWindowTitle("Restart Files");
dialog.appendFileInfoToGridLayout(*dialog.m_currentFileGridLayout, currentFileInfo);
for (const auto& restartFileInfo : restartFileInfos)
dialog.appendFileInfoToGridLayout(*dialog.m_currentSummaryFileLayout, currentFileInfo);
for (const auto& ofi : originFileInfos)
{
dialog.appendFileInfoToGridLayout(*dialog.m_filesGridLayout, restartFileInfo);
dialog.appendFileInfoToGridLayout(*dialog.m_summaryFilesLayout, ofi);
}
switch (defaultReadOption)
switch (defaultSummaryImportOption)
{
case ReadOptions::IMPORT_ALL: dialog.m_readAllRadioButton->setChecked(true); break;
case ReadOptions::NOT_IMPORT: dialog.m_notReadRadionButton->setChecked(true); break;
case ReadOptions::SEPARATE_CASES: dialog.m_separateCasesRadionButton->setChecked(true); break;
case ImportOptions::IMPORT_ALL: dialog.m_summaryReadAllBtn->setChecked(true); break;
case ImportOptions::SEPARATE_CASES: dialog.m_summarySeparateCasesBtn->setChecked(true); break;
case ImportOptions::NOT_IMPORT: dialog.m_summaryNotReadBtn->setChecked(true); break;
}
dialog.m_gridFilesGroup->setVisible(buildGridCaseFileList);
if (buildGridCaseFileList)
{
bool gridFilesAdded = false;
for (const auto& ofi : originFileInfos)
{
QString gridFile = RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(ofi.fileName);
if (QFileInfo(gridFile).exists())
{
dialog.appendFileInfoToGridLayout(*dialog.m_gridFilesLayout, RifRestartFileInfo(gridFile, ofi.startDate, ofi.endDate));
gridFilesAdded = true;
}
}
if (!gridFilesAdded) dialog.m_gridFilesGroup->setVisible(false);
switch (defaultGridImportOption)
{
case ImportOptions::SEPARATE_CASES: dialog.m_gridSeparateCasesBtn->setChecked(true); break;
case ImportOptions::NOT_IMPORT: dialog.m_gridNotReadBtn->setChecked(true); break;
}
}
dialog.m_includeGridHistoryFiles->setVisible(buildGridCaseFileList);
dialog.m_includeGridHistoryFiles->setChecked(lastResult->includeGridHistoryFiles);
dialog.m_applyToAllCheckBox->setVisible(showApplyToAllWidget);
dialog.resize(DEFAULT_DIALOG_WIDTH, DEFAULT_DIALOG_INIT_HEIGHT);
dialog.exec();
dialogResult = RicSummaryCaseRestartDialogResult(dialog.result() == QDialog::Accepted,
dialog.selectedOption(),
dialog.selectedSummaryImportOption(),
dialog.selectedGridImportOption(),
{},
dialog.applyToAllSelected(),
dialog.includeGridHistoryFiles());
{},
dialog.applyToAllSelected());
}
if (!dialogResult.ok)
{
return RicSummaryCaseRestartDialogResult(false, NOT_IMPORT, QStringList(), false, false);
return RicSummaryCaseRestartDialogResult(false, NOT_IMPORT, NOT_IMPORT, QStringList(), QStringList(), false);
}
dialogResult.summaryFiles.push_back(RiaFilePathTools::toInternalSeparator(summaryHeaderFile));
if (dialogResult.option == SEPARATE_CASES)
if (dialogResult.summaryImportOption == SEPARATE_CASES)
{
for (const auto& restartFileInfo : restartFileInfos)
for (const auto& ofi : originFileInfos)
{
dialogResult.summaryFiles.push_back(RiaFilePathTools::toInternalSeparator(restartFileInfo.fileName));
dialogResult.summaryFiles.push_back(RiaFilePathTools::toInternalSeparator(ofi.fileName));
}
}
if (dialogResult.includeGridHistoryFiles)
if (buildGridCaseFileList)
{
QString gridCaseFile = RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(summaryHeaderFile);
dialogResult.restartGridFilesToImport.push_back(gridCaseFile);
dialogResult.gridFiles.push_back(gridCaseFile);
for (const auto& restartFileInfo : restartFileInfos)
if (dialogResult.gridImportOption == SEPARATE_CASES)
{
QString gridCaseFile = RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(restartFileInfo.fileName);
if (buildGridCaseFileList && !gridCaseFile.isEmpty()) dialogResult.restartGridFilesToImport.push_back(gridCaseFile);
for (const auto& ofi : originFileInfos)
{
QString gridFile = RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(ofi.fileName);
if (buildGridCaseFileList && !gridCaseFile.isEmpty()) dialogResult.gridFiles.push_back(gridFile);
}
}
}
return dialogResult;
@@ -220,14 +273,23 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RicSummaryCaseRestartDialog::ReadOptions RicSummaryCaseRestartDialog::selectedOption() const
RicSummaryCaseRestartDialog::ImportOptions RicSummaryCaseRestartDialog::selectedSummaryImportOption() const
{
return
m_readAllRadioButton->isChecked() ? IMPORT_ALL :
m_separateCasesRadionButton->isChecked() ? SEPARATE_CASES :
m_summaryReadAllBtn->isChecked() ? IMPORT_ALL :
m_summarySeparateCasesBtn->isChecked() ? SEPARATE_CASES :
NOT_IMPORT;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RicSummaryCaseRestartDialog::ImportOptions RicSummaryCaseRestartDialog::selectedGridImportOption() const
{
return
m_gridSeparateCasesBtn->isChecked() ? SEPARATE_CASES : NOT_IMPORT;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -236,14 +298,6 @@ bool RicSummaryCaseRestartDialog::applyToAllSelected() const
return m_applyToAllCheckBox->isChecked();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RicSummaryCaseRestartDialog::includeGridHistoryFiles() const
{
return m_includeGridHistoryFiles->isChecked();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -36,6 +36,7 @@ class QMainWindow;
class QListWidget;
class QGridLayout;
class QCheckBox;
class QGroupBox;
class RicSummaryCaseRestartDialogResult;
//==================================================================================================
@@ -46,7 +47,7 @@ class RicSummaryCaseRestartDialog : public QDialog
Q_OBJECT
public:
enum ReadOptions { NOT_IMPORT, IMPORT_ALL, SEPARATE_CASES };
enum ImportOptions { IMPORT_ALL, SEPARATE_CASES, NOT_IMPORT };
RicSummaryCaseRestartDialog(QWidget* parent);
~RicSummaryCaseRestartDialog();
@@ -54,13 +55,14 @@ public:
static RicSummaryCaseRestartDialogResult openDialog(const QString& summaryHeaderFile,
bool showApplyToAllWidget,
bool buildGridCaseFileList,
ReadOptions defaultReadOption,
ImportOptions defaultSummaryImportOption,
ImportOptions defaultGridImportOption,
RicSummaryCaseRestartDialogResult *lastResult = nullptr,
QWidget *parent = nullptr);
ReadOptions selectedOption() const;
ImportOptions selectedSummaryImportOption() const;
ImportOptions selectedGridImportOption() const;
bool applyToAllSelected() const;
bool includeGridHistoryFiles() const;
private:
void appendFileInfoToGridLayout(QGridLayout& gridLayout, const RifRestartFileInfo& fileInfo);
@@ -72,15 +74,19 @@ private slots:
void slotDialogCancelClicked();
private:
QGridLayout* m_currentFileGridLayout;
QGridLayout* m_currentSummaryFileLayout;
QGridLayout* m_filesGridLayout;
QGridLayout* m_summaryFilesLayout;
QRadioButton* m_readAllRadioButton;
QRadioButton* m_notReadRadionButton;
QRadioButton* m_separateCasesRadionButton;
QRadioButton* m_summaryReadAllBtn;
QRadioButton* m_summarySeparateCasesBtn;
QRadioButton* m_summaryNotReadBtn;
QCheckBox* m_includeGridHistoryFiles;
QGroupBox* m_gridFilesGroup;
QGridLayout* m_gridFilesLayout;
QRadioButton* m_gridNotReadBtn;
QRadioButton* m_gridSeparateCasesBtn;
QCheckBox* m_applyToAllCheckBox;
QDialogButtonBox* m_buttons;
@@ -94,27 +100,30 @@ class RicSummaryCaseRestartDialogResult
{
public:
RicSummaryCaseRestartDialogResult() :
ok(false), option(RicSummaryCaseRestartDialog::IMPORT_ALL), applyToAll(false) {}
ok(false),
summaryImportOption(RicSummaryCaseRestartDialog::IMPORT_ALL),
gridImportOption(RicSummaryCaseRestartDialog::NOT_IMPORT),
applyToAll(false) {}
RicSummaryCaseRestartDialogResult(bool _ok,
RicSummaryCaseRestartDialog::ReadOptions _option,
RicSummaryCaseRestartDialog::ImportOptions _summaryImportOption,
RicSummaryCaseRestartDialog::ImportOptions _gridImportOption,
QStringList _summaryFiles,
bool _applyToAll,
bool _includeGridHistoryFiles,
QStringList _restartGridFilesToImport = {}) :
QStringList _gridFiles,
bool _applyToAll) :
ok(_ok),
option(_option),
summaryImportOption(_summaryImportOption),
gridImportOption(_gridImportOption),
summaryFiles(_summaryFiles),
applyToAll(_applyToAll),
includeGridHistoryFiles(_includeGridHistoryFiles),
restartGridFilesToImport(_restartGridFilesToImport) {
gridFiles(_gridFiles),
applyToAll(_applyToAll)
{
}
bool ok;
RicSummaryCaseRestartDialog::ReadOptions option;
QStringList summaryFiles;
bool applyToAll;
bool includeGridHistoryFiles;
QStringList restartGridFilesToImport;
bool ok;
RicSummaryCaseRestartDialog::ImportOptions summaryImportOption;
RicSummaryCaseRestartDialog::ImportOptions gridImportOption;
QStringList summaryFiles;
QStringList gridFiles;
bool applyToAll;
};

View File

@@ -38,6 +38,8 @@ class RifRestartFileInfo
{
public:
RifRestartFileInfo() : startDate(0), endDate(0) {}
RifRestartFileInfo(const QString& _fileName, time_t _startDate, time_t _endDate) :
fileName(_fileName), startDate(_startDate), endDate(_endDate) {}
bool valid() { return !fileName.isEmpty(); }
QString fileName;

View File

@@ -51,12 +51,12 @@ bool vectorContains(const std::vector<T>& vector, T item)
//--------------------------------------------------------------------------------------------------
/// INternal function
//--------------------------------------------------------------------------------------------------
RicSummaryCaseRestartDialog::ReadOptions mapReadOption(RiaPreferences::SummaryRestartFilesImportMode mode)
RicSummaryCaseRestartDialog::ImportOptions mapReadOption(RiaPreferences::SummaryRestartFilesImportMode mode)
{
return
mode == RiaPreferences::SummaryRestartFilesImportMode::NOT_IMPORT ? RicSummaryCaseRestartDialog::ReadOptions::NOT_IMPORT :
mode == RiaPreferences::SummaryRestartFilesImportMode::SEPARATE_CASES ? RicSummaryCaseRestartDialog::ReadOptions::SEPARATE_CASES :
RicSummaryCaseRestartDialog::ReadOptions::IMPORT_ALL;
mode == RiaPreferences::SummaryRestartFilesImportMode::NOT_IMPORT ? RicSummaryCaseRestartDialog::ImportOptions::NOT_IMPORT :
mode == RiaPreferences::SummaryRestartFilesImportMode::SEPARATE_CASES ? RicSummaryCaseRestartDialog::ImportOptions::SEPARATE_CASES :
RicSummaryCaseRestartDialog::ImportOptions::IMPORT_ALL;
}
//--------------------------------------------------------------------------------------------------
@@ -66,11 +66,11 @@ RifSummaryCaseRestartSelector::RifSummaryCaseRestartSelector()
{
RiaPreferences* prefs = RiaApplication::instance()->preferences();
m_showDialog = prefs->summaryRestartFilesShowImportDialog();
m_defaultRestartImportMode = mapReadOption(prefs->summaryRestartFilesImportMode());
m_importRestartGridCaseFiles = prefs->importRestartGridCaseFiles();
m_defaultSummaryImportMode = mapReadOption(prefs->summaryImportMode());
m_defaultGridImportMode = mapReadOption(prefs->gridImportMode());
m_buildGridCaseFileList = false;
m_gridCaseFiles.clear();
m_buildGridFileList = false;
m_gridFiles.clear();
}
//--------------------------------------------------------------------------------------------------
@@ -127,12 +127,17 @@ std::vector<RifSummaryCaseFileInfo> RifSummaryCaseRestartSelector::getFilesToImp
for (const QString& summaryFile : initialSummaryFiles)
{
RicSummaryCaseRestartDialogResult result = RicSummaryCaseRestartDialog::openDialog(summaryFile, enableApplyToAllField, m_buildGridCaseFileList, m_defaultRestartImportMode, &lastResult);
RicSummaryCaseRestartDialogResult result = RicSummaryCaseRestartDialog::openDialog(summaryFile,
enableApplyToAllField,
m_buildGridFileList,
m_defaultSummaryImportMode,
m_defaultGridImportMode,
&lastResult);
if (result.ok)
{
for (const QString& file : result.summaryFiles)
{
RifSummaryCaseFileInfo fi(file, result.option == RicSummaryCaseRestartDialog::IMPORT_ALL);
RifSummaryCaseFileInfo fi(file, result.summaryImportOption == RicSummaryCaseRestartDialog::IMPORT_ALL);
if (!vectorContains(filesToImport, fi))
{
filesToImport.push_back(fi);
@@ -140,15 +145,15 @@ std::vector<RifSummaryCaseFileInfo> RifSummaryCaseRestartSelector::getFilesToImp
}
lastResult = result;
for (const QString& gridCaseFile : result.restartGridFilesToImport)
for (const QString& gridFile : result.gridFiles)
{
m_gridCaseFiles.push_back(gridCaseFile);
m_gridFiles.push_back(gridFile);
}
}
else
{
// Cancel pressed, cancel everything
m_gridCaseFiles.clear();
m_gridFiles.clear();
return std::vector<RifSummaryCaseFileInfo>();
}
}
@@ -163,35 +168,23 @@ std::vector<RifSummaryCaseFileInfo> RifSummaryCaseRestartSelector::getFilesToImp
std::vector<RifSummaryCaseFileInfo> filesToImport;
RicSummaryCaseRestartDialogResult lastResult;
m_gridCaseFiles.clear();
m_gridFiles.clear();
for (const QString& summaryFile : initialSummaryFiles)
{
QString file = RiaFilePathTools::toInternalSeparator(summaryFile);
if (m_defaultRestartImportMode == RicSummaryCaseRestartDialog::IMPORT_ALL)
if (m_defaultSummaryImportMode == RicSummaryCaseRestartDialog::IMPORT_ALL)
{
filesToImport.push_back(RifSummaryCaseFileInfo(file, true));
if (m_buildGridCaseFileList)
{
m_gridCaseFiles.push_back(RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(file));
}
}
else if (m_defaultRestartImportMode == RicSummaryCaseRestartDialog::NOT_IMPORT)
else if (m_defaultSummaryImportMode == RicSummaryCaseRestartDialog::NOT_IMPORT)
{
filesToImport.push_back(RifSummaryCaseFileInfo(file, false));
if (m_buildGridCaseFileList)
{
m_gridCaseFiles.push_back(RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(file));
}
}
else if (m_defaultRestartImportMode == RicSummaryCaseRestartDialog::SEPARATE_CASES)
else if (m_defaultSummaryImportMode == RicSummaryCaseRestartDialog::SEPARATE_CASES)
{
filesToImport.push_back(RifSummaryCaseFileInfo(file, false));
if (m_buildGridCaseFileList)
{
m_gridCaseFiles.push_back(RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(file));
}
RifReaderEclipseSummary reader;
std::vector<RifRestartFileInfo> restartFileInfos = reader.getRestartFiles(file);
@@ -201,10 +194,24 @@ std::vector<RifSummaryCaseFileInfo> RifSummaryCaseRestartSelector::getFilesToImp
if (!vectorContains(filesToImport, fi))
{
filesToImport.push_back(fi);
}
}
}
if (m_buildGridCaseFileList)
if (m_buildGridFileList)
{
m_gridFiles.push_back(RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(file));
if (m_defaultGridImportMode == RicSummaryCaseRestartDialog::SEPARATE_CASES)
{
RifReaderEclipseSummary reader;
std::vector<RifRestartFileInfo> restartFileInfos = reader.getRestartFiles(file);
for (const auto& rfi : restartFileInfos)
{
RifSummaryCaseFileInfo fi(RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(rfi.fileName), false);
if (!m_gridFiles.contains(fi.fileName) && QFileInfo(fi.fileName).exists())
{
m_gridCaseFiles.push_back(RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(fi.fileName));
m_gridFiles.push_back(fi.fileName);
}
}
}

View File

@@ -45,8 +45,8 @@ public:
std::vector<RifSummaryCaseFileInfo> getFilesToImportFromGridFiles(const QStringList& initialGridFiles);
void showDialog(bool show) { m_showDialog = show; }
void buildGridCaseFileList(bool build) { m_buildGridCaseFileList = build; }
QStringList gridCaseFiles() const { return m_gridCaseFiles; }
void buildGridCaseFileList(bool build) { m_buildGridFileList = build; }
QStringList gridCaseFiles() const { return m_gridFiles; }
static QStringList getSummaryFilesFromGridFiles(const QStringList& gridFiles);
@@ -58,11 +58,11 @@ private:
std::vector<RifSummaryCaseFileInfo> getFilesToImportUsingPrefs(const QStringList& initialSummaryFiles);
bool m_showDialog;
RicSummaryCaseRestartDialog::ReadOptions m_defaultRestartImportMode;
bool m_importRestartGridCaseFiles;
RicSummaryCaseRestartDialog::ImportOptions m_defaultSummaryImportMode;
RicSummaryCaseRestartDialog::ImportOptions m_defaultGridImportMode;
bool m_buildGridCaseFileList;
QStringList m_gridCaseFiles;
bool m_buildGridFileList;
QStringList m_gridFiles;
};
//==================================================================================================