From 43f50dac4122bb5ef94395b5c46c75caf14e7f76 Mon Sep 17 00:00:00 2001 From: Stein Dale Date: Thu, 4 Jun 2015 13:08:21 +0200 Subject: [PATCH] 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. --- .../GeoMech/GeoMechDataModel/RigGeoMechCaseData.cpp | 4 ++-- .../GeoMech/GeoMechDataModel/RigGeoMechCaseData.h | 2 +- ApplicationCode/ProjectDataModel/RimGeoMechCase.cpp | 4 ++-- ApplicationCode/ProjectDataModel/RimGeoMechCase.h | 2 +- ApplicationCode/ProjectDataModel/RimGeoMechView.cpp | 13 ++++++++----- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/ApplicationCode/GeoMech/GeoMechDataModel/RigGeoMechCaseData.cpp b/ApplicationCode/GeoMech/GeoMechDataModel/RigGeoMechCaseData.cpp index 0a9eb9900c..aad06f3706 100644 --- a/ApplicationCode/GeoMech/GeoMechDataModel/RigGeoMechCaseData.cpp +++ b/ApplicationCode/GeoMech/GeoMechDataModel/RigGeoMechCaseData.cpp @@ -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(); diff --git a/ApplicationCode/GeoMech/GeoMechDataModel/RigGeoMechCaseData.h b/ApplicationCode/GeoMech/GeoMechDataModel/RigGeoMechCaseData.h index 867cb3c3a5..589f82d3b3 100644 --- a/ApplicationCode/GeoMech/GeoMechDataModel/RigGeoMechCaseData.h +++ b/ApplicationCode/GeoMech/GeoMechDataModel/RigGeoMechCaseData.h @@ -37,7 +37,7 @@ public: RigGeoMechCaseData(const std::string& fileName); ~RigGeoMechCaseData(); - bool openAndReadFemParts(); + bool openAndReadFemParts(std::string* errorMessage); RigFemPartCollection* femParts(); const RigFemPartCollection* femParts() const; diff --git a/ApplicationCode/ProjectDataModel/RimGeoMechCase.cpp b/ApplicationCode/ProjectDataModel/RimGeoMechCase.cpp index c6f8613457..d8cf7a4680 100644 --- a/ApplicationCode/ProjectDataModel/RimGeoMechCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimGeoMechCase.cpp @@ -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); } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimGeoMechCase.h b/ApplicationCode/ProjectDataModel/RimGeoMechCase.h index 09a0c739a7..0f6a39bfed 100644 --- a/ApplicationCode/ProjectDataModel/RimGeoMechCase.h +++ b/ApplicationCode/ProjectDataModel/RimGeoMechCase.h @@ -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(); } diff --git a/ApplicationCode/ProjectDataModel/RimGeoMechView.cpp b/ApplicationCode/ProjectDataModel/RimGeoMechView.cpp index 679e56576e..e3dd12709a 100644 --- a/ApplicationCode/ProjectDataModel/RimGeoMechView.cpp +++ b/ApplicationCode/ProjectDataModel/RimGeoMechView.cpp @@ -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();