#1768 Add flag in preferences to control use of Result Index File

This commit is contained in:
Magne Sjaastad 2017-08-29 11:03:18 +02:00
parent 56312a4883
commit 6629447fa1
4 changed files with 61 additions and 19 deletions

View File

@ -19,9 +19,13 @@
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
#include "RifEclipseUnifiedRestartFileAccess.h" #include "RifEclipseUnifiedRestartFileAccess.h"
#include "RifEclipseOutputFileTools.h"
#include "RiaApplication.h"
#include "RiaLogging.h" #include "RiaLogging.h"
#include "RiaPreferences.h"
#include "RifEclipseOutputFileTools.h"
#include "RifReaderSettings.h"
#include "ert/ecl/ecl_file.h" #include "ert/ecl/ecl_file.h"
#include "ert/ecl/ecl_kw_magic.h" #include "ert/ecl/ecl_kw_magic.h"
@ -68,6 +72,9 @@ bool RifEclipseUnifiedRestartFileAccess::openFile()
if (!m_ecl_file) if (!m_ecl_file)
{ {
QString indexFileName = RifEclipseOutputFileTools::createIndexFileName(m_filename); QString indexFileName = RifEclipseOutputFileTools::createIndexFileName(m_filename);
if (useResultIndexFile())
{
if (caf::Utils::fileExists(indexFileName)) if (caf::Utils::fileExists(indexFileName))
{ {
QFileInfo indexFileInfo(indexFileName); QFileInfo indexFileInfo(indexFileName);
@ -81,24 +88,41 @@ bool RifEclipseUnifiedRestartFileAccess::openFile()
RiaLogging::error(QString("Failed to open file %1 using index file.").arg(m_filename)); RiaLogging::error(QString("Failed to open file %1 using index file.").arg(m_filename));
RiaLogging::info(QString("Will try to open file without index file.")); RiaLogging::info(QString("Will try to open file without index file."));
} }
else
{
RiaLogging::info(QString("Imported file %1 using index file.").arg(m_filename));
}
}
} }
} }
if (!m_ecl_file) if (!m_ecl_file)
{ {
m_ecl_file = ecl_file_open(m_filename.toAscii().data(), ECL_FILE_CLOSE_STREAM); m_ecl_file = ecl_file_open(m_filename.toAscii().data(), ECL_FILE_CLOSE_STREAM);
if (m_ecl_file) if (!m_ecl_file)
{
RiaLogging::error(QString("Failed to open file %1").arg(m_filename));
}
else
{
if (useResultIndexFile())
{ {
QFileInfo fi(indexFileName); QFileInfo fi(indexFileName);
QString resultPath = fi.absolutePath(); QString resultPath = fi.absolutePath();
if (caf::Utils::isFolderWritable(resultPath)) if (caf::Utils::isFolderWritable(resultPath))
{ {
ecl_file_write_index(m_ecl_file, indexFileName.toAscii().data()); bool success = ecl_file_write_index(m_ecl_file, indexFileName.toAscii().data());
}
if (success)
{
RiaLogging::info(QString("Exported index file to %1 ").arg(indexFileName));
} }
else else
{ {
RiaLogging::error(QString("Failed to open file %1").arg(m_filename)); RiaLogging::info(QString("Failed to exported index file to %1 ").arg(indexFileName));
}
}
}
} }
} }
} }
@ -108,6 +132,17 @@ bool RifEclipseUnifiedRestartFileAccess::openFile()
return true; return true;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RifEclipseUnifiedRestartFileAccess::useResultIndexFile() const
{
RiaPreferences* prefs = RiaApplication::instance()->preferences();
const RifReaderSettings* readerSettings = prefs->readerSettings();
return readerSettings->useResultIndexFile();
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// Close file /// Close file
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -59,6 +59,7 @@ public:
private: private:
bool openFile(); bool openFile();
bool useResultIndexFile() const;
private: private:
QString m_filename; QString m_filename;

View File

@ -40,6 +40,9 @@ RifReaderSettings::RifReaderSettings()
CAF_PDM_InitField(&importAdvancedMswData, "importAdvancedMswData", false, "Import Advanced MSW Data", "", "", ""); CAF_PDM_InitField(&importAdvancedMswData, "importAdvancedMswData", false, "Import Advanced MSW Data", "", "", "");
importAdvancedMswData.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN); importAdvancedMswData.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitField(&useResultIndexFile, "useResultIndexFile", false, "Use Result Index File", "", "", "");
useResultIndexFile.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitField(&faultIncludeFileAbsolutePathPrefix, "faultIncludeFileAbsolutePathPrefix", QString(), "Fault Include File Absolute Path Prefix", "", "Path used to prefix absolute UNIX paths in fault include statements on Windows", ""); CAF_PDM_InitField(&faultIncludeFileAbsolutePathPrefix, "faultIncludeFileAbsolutePathPrefix", QString(), "Fault Include File Absolute Path Prefix", "", "Path used to prefix absolute UNIX paths in fault include statements on Windows", "");
} }
@ -50,7 +53,8 @@ void RifReaderSettings::defineEditorAttribute(const caf::PdmFieldHandle* field,
{ {
if (field == &importFaults || if (field == &importFaults ||
field == &importAdvancedMswData || field == &importAdvancedMswData ||
field == &importNNCs) field == &importNNCs ||
field == &useResultIndexFile)
{ {
caf::PdmUiCheckBoxEditorAttribute* myAttr = dynamic_cast<caf::PdmUiCheckBoxEditorAttribute*>(attribute); caf::PdmUiCheckBoxEditorAttribute* myAttr = dynamic_cast<caf::PdmUiCheckBoxEditorAttribute*>(attribute);
if (myAttr) if (myAttr)
@ -65,6 +69,7 @@ void RifReaderSettings::defineUiOrdering(QString uiConfigName, caf::PdmUiOrderin
uiOrdering.add(&importFaults); uiOrdering.add(&importFaults);
uiOrdering.add(&importNNCs); uiOrdering.add(&importNNCs);
uiOrdering.add(&importAdvancedMswData); uiOrdering.add(&importAdvancedMswData);
uiOrdering.add(&useResultIndexFile);
#ifdef WIN32 #ifdef WIN32
uiOrdering.add(&faultIncludeFileAbsolutePathPrefix); uiOrdering.add(&faultIncludeFileAbsolutePathPrefix);
#endif #endif

View File

@ -40,6 +40,7 @@ public:
caf::PdmField<bool> importNNCs; caf::PdmField<bool> importNNCs;
caf::PdmField<bool> importAdvancedMswData; caf::PdmField<bool> importAdvancedMswData;
caf::PdmField<QString> faultIncludeFileAbsolutePathPrefix; caf::PdmField<QString> faultIncludeFileAbsolutePathPrefix;
caf::PdmField<bool> useResultIndexFile;
protected: protected:
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute); virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute);