#2685 Origin summary. Split preferences settings into two fields

This commit is contained in:
Bjørn Erik Jensen 2018-04-09 13:21:48 +02:00
parent 3116a4a223
commit ee9e9b2989
6 changed files with 40 additions and 19 deletions

View File

@ -32,11 +32,10 @@ namespace caf
template<>
void RiaPreferences::SummaryRestartFilesImportModeType::setUp()
{
addItem(RiaPreferences::ASK_USER, "ASK_USER", "Ask user");
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");
setDefault(RiaPreferences::ASK_USER);
setDefault(RiaPreferences::IMPORT);
}
}
@ -102,8 +101,8 @@ RiaPreferences::RiaPreferences(void)
CAF_PDM_InitField(&loadAndShowSoil, "loadAndShowSoil", true, "Load and Show SOIL", "", "", "");
loadAndShowSoil.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitFieldNoDefault(&summaryRestartFilesImportMode, "summaryRestartFilesImportMode", "Import summary restart files", "", "", "");
//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(&m_readerSettings, "readerSettings", "Reader Settings", "", "", "");
m_readerSettings = new RifReaderSettings;
@ -194,6 +193,7 @@ void RiaPreferences::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering&
m_readerSettings->defineUiOrdering(uiConfigName, *newCaseBehaviourGroup);
caf::PdmUiGroup* restartBehaviourGroup = uiOrdering.addNewGroup("Summary Restart Files");
restartBehaviourGroup->add(&summaryRestartFilesShowImportDialog);
restartBehaviourGroup->add(&summaryRestartFilesImportMode);
}
else if (uiConfigName == m_tabNames[2])

View File

@ -37,7 +37,7 @@ class RiaPreferences : public caf::PdmObject
CAF_PDM_HEADER_INIT;
public:
enum SummaryRestartFilesImportMode { ASK_USER, IMPORT, NOT_IMPORT, SEPARATE_CASES };
enum SummaryRestartFilesImportMode { IMPORT, NOT_IMPORT, SEPARATE_CASES };
typedef caf::AppEnum<SummaryRestartFilesImportMode> SummaryRestartFilesImportModeType;
RiaPreferences(void);
@ -80,7 +80,8 @@ public: // Pdm Fields
caf::PdmField<bool> autocomputeDepthRelatedProperties;
caf::PdmField<bool> loadAndShowSoil;
caf::PdmField<SummaryRestartFilesImportModeType> summaryRestartFilesImportMode;
caf::PdmField<bool> summaryRestartFilesShowImportDialog;
caf::PdmField<SummaryRestartFilesImportModeType> summaryRestartFilesImportMode;
protected:
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute);

View File

@ -126,6 +126,7 @@ RicSummaryCaseRestartDialog::~RicSummaryCaseRestartDialog()
//--------------------------------------------------------------------------------------------------
RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const QString& summaryHeaderFile,
bool showApplyToAllWidget,
ReadOptions defaultReadOption,
RicSummaryCaseRestartDialogResult *lastResult,
QWidget *parent)
{
@ -148,7 +149,7 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
// If no restart files are found, do not show dialog
if (fileInfos.empty())
{
return RicSummaryCaseRestartDialogResult(true, READ_SINGLE, QStringList({ summaryHeaderFile }), false);
return RicSummaryCaseRestartDialogResult(true, NOT_IMPORT, QStringList({ summaryHeaderFile }), false);
}
RicSummaryCaseRestartDialogResult dialogResult;
@ -160,7 +161,12 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
else
{
dialog.setWindowTitle("Summary Case Restart Files");
dialog.m_readAllRadioButton->setChecked(true);
switch (defaultReadOption)
{
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;
}
dialog.m_applyToAllCheckBox->setVisible(showApplyToAllWidget);
dialog.resize(DEFAULT_DIALOG_WIDTH, DEFAULT_DIALOG_INIT_HEIGHT);
dialog.exec();
@ -173,7 +179,7 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
if (!dialogResult.ok)
{
return RicSummaryCaseRestartDialogResult(false, READ_SINGLE, QStringList(), false);
return RicSummaryCaseRestartDialogResult(false, NOT_IMPORT, QStringList(), false);
}
dialogResult.files.push_back(RiaFilePathTools::toInternalSeparator(summaryHeaderFile));
@ -193,9 +199,9 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
RicSummaryCaseRestartDialog::ReadOptions RicSummaryCaseRestartDialog::selectedOption() const
{
return
m_readAllRadioButton->isChecked() ? READ_ALL :
m_readAllRadioButton->isChecked() ? IMPORT_ALL :
m_separateCasesRadionButton->isChecked() ? SEPARATE_CASES :
READ_SINGLE;
NOT_IMPORT;
}
//--------------------------------------------------------------------------------------------------

View File

@ -46,13 +46,14 @@ class RicSummaryCaseRestartDialog : public QDialog
Q_OBJECT
public:
enum ReadOptions { READ_SINGLE, READ_ALL, SEPARATE_CASES };
enum ReadOptions { NOT_IMPORT, IMPORT_ALL, SEPARATE_CASES };
RicSummaryCaseRestartDialog(QWidget* parent);
~RicSummaryCaseRestartDialog();
static RicSummaryCaseRestartDialogResult openDialog(const QString& summaryHeaderFile,
bool showApplyToAllWidget,
ReadOptions defaultReadOption,
RicSummaryCaseRestartDialogResult *lastResult = nullptr,
QWidget *parent = nullptr);
@ -89,7 +90,7 @@ class RicSummaryCaseRestartDialogResult
{
public:
RicSummaryCaseRestartDialogResult() :
ok(false), option(RicSummaryCaseRestartDialog::READ_ALL), applyToAll(false) {}
ok(false), option(RicSummaryCaseRestartDialog::IMPORT_ALL), applyToAll(false) {}
RicSummaryCaseRestartDialogResult(bool _ok,
RicSummaryCaseRestartDialog::ReadOptions _option,

View File

@ -46,6 +46,17 @@ bool vectorContains(const std::vector<T>& vector, T item)
return false;
}
//--------------------------------------------------------------------------------------------------
/// INternal function
//--------------------------------------------------------------------------------------------------
RicSummaryCaseRestartDialog::ReadOptions 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;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -71,10 +82,10 @@ std::vector<RifSummaryCaseFileInfo> RifSummaryCaseRestartSelector::getFilesToImp
RiaPreferences* prefs = app->preferences();
std::vector<RifSummaryCaseFileInfo> fileInfos;
if (prefs->summaryRestartFilesImportMode == RiaPreferences::ASK_USER)
if (prefs->summaryRestartFilesShowImportDialog)
{
bool enableApplyToAllField = selectedFiles.size() > 1;
fileInfos = getFilesToImportByAskingUser(selectedFiles, enableApplyToAllField);
fileInfos = getFilesToImportByAskingUser(selectedFiles, enableApplyToAllField, prefs->summaryRestartFilesImportMode);
}
else
{
@ -88,19 +99,20 @@ std::vector<RifSummaryCaseFileInfo> RifSummaryCaseRestartSelector::getFilesToImp
///
//--------------------------------------------------------------------------------------------------
std::vector<RifSummaryCaseFileInfo> RifSummaryCaseRestartSelector::getFilesToImportByAskingUser(const QStringList& initialFiles,
bool enableApplyToAllField)
bool enableApplyToAllField,
RiaPreferences::SummaryRestartFilesImportModeType defaultSummaryRestartMode)
{
std::vector<RifSummaryCaseFileInfo> filesToImport;
RicSummaryCaseRestartDialogResult lastResult;
for (const QString& file : initialFiles)
{
RicSummaryCaseRestartDialogResult result = RicSummaryCaseRestartDialog::openDialog(file, enableApplyToAllField, &lastResult);
RicSummaryCaseRestartDialogResult result = RicSummaryCaseRestartDialog::openDialog(file, enableApplyToAllField, mapReadOption(defaultSummaryRestartMode), &lastResult);
if (result.ok)
{
for (const QString& file : result.files)
{
RifSummaryCaseFileInfo fi(file, result.option == RicSummaryCaseRestartDialog::READ_ALL);
RifSummaryCaseFileInfo fi(file, result.option == RicSummaryCaseRestartDialog::IMPORT_ALL);
if (!vectorContains(filesToImport, fi))
{
filesToImport.push_back(fi);

View File

@ -43,7 +43,8 @@ public:
private:
std::vector<RifSummaryCaseFileInfo> getFilesToImportByAskingUser(const QStringList& initialFiles,
bool enableApplyToAllField);
bool enableApplyToAllField,
RiaPreferences::SummaryRestartFilesImportModeType defaultSummaryRestartMode);
std::vector<RifSummaryCaseFileInfo> getFilesToImportUsingPrefs(const QStringList& initialFiles,
RiaPreferences::SummaryRestartFilesImportModeType summaryRestartMode);