Displaying error messages from ODB API on file open

Made sure that the error messages from the ODB API are picked if file
open fails, and then displayed in an error messsage box.
This commit is contained in:
Stein Dale 2015-06-04 13:08:21 +02:00
parent bd6e6acc53
commit 43f50dac41
5 changed files with 14 additions and 11 deletions

View File

@ -68,14 +68,14 @@ const RigFemPartCollection* RigGeoMechCaseData::femParts() const
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RigGeoMechCaseData::openAndReadFemParts()
bool RigGeoMechCaseData::openAndReadFemParts(std::string* errorMessage)
{
#ifdef USE_ODB_API
m_readerInterface = new RifOdbReader;
#endif
if (m_readerInterface.notNull() && m_readerInterface->openFile(m_geoMechCaseFileName))
if (m_readerInterface.notNull() && m_readerInterface->openFile(m_geoMechCaseFileName, errorMessage))
{
m_femParts = new RigFemPartCollection();

View File

@ -37,7 +37,7 @@ public:
RigGeoMechCaseData(const std::string& fileName);
~RigGeoMechCaseData();
bool openAndReadFemParts();
bool openAndReadFemParts(std::string* errorMessage);
RigFemPartCollection* femParts();
const RigFemPartCollection* femParts() const;

View File

@ -65,7 +65,7 @@ RimGeoMechView* RimGeoMechCase::createAndAddReservoirView()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimGeoMechCase::openGeoMechCase()
bool RimGeoMechCase::openGeoMechCase(std::string* errorMessage)
{
// If read already, return
@ -79,7 +79,7 @@ bool RimGeoMechCase::openGeoMechCase()
m_geoMechCaseData = new RigGeoMechCaseData(m_caseFileName().toStdString());
return m_geoMechCaseData->openAndReadFemParts();
return m_geoMechCaseData->openAndReadFemParts(errorMessage);
}
//--------------------------------------------------------------------------------------------------

View File

@ -43,7 +43,7 @@ public:
void setFileName(const QString& fileName) {m_caseFileName = fileName;}
QString caseFileName() const {return m_caseFileName();}
bool openGeoMechCase();
bool openGeoMechCase(std::string* errorMessage);
RigGeoMechCaseData* geoMechData() { return m_geoMechCaseData.p(); }
const RigGeoMechCaseData* geoMechData() const { return m_geoMechCaseData.p(); }

View File

@ -122,14 +122,17 @@ void RimGeoMechView::loadDataAndUpdate()
if (m_geomechCase)
{
if (!m_geomechCase->openGeoMechCase())
{
std::string errorMessage;
if (!m_geomechCase->openGeoMechCase(&errorMessage))
{
QString displayMessage = errorMessage.empty() ? "Could not open the Odb file: \n" + m_geomechCase->caseFileName() : QString::fromStdString(errorMessage);
QMessageBox::warning(RiuMainWindow::instance(),
"Error when opening project file",
"Could not open the Odb file: \n"+ m_geomechCase->caseFileName());
"File open error",
displayMessage);
m_geomechCase = NULL;
return;
}
}
// m_geoMechFullModel->clearAndSetReservoir(m_geomechCase->geoMechData(), this);
}
progress.incrementProgress();