diff --git a/ApplicationCode/Application/RiaApplication.cpp b/ApplicationCode/Application/RiaApplication.cpp index 1e66c042ab..a06f9679dc 100644 --- a/ApplicationCode/Application/RiaApplication.cpp +++ b/ApplicationCode/Application/RiaApplication.cpp @@ -305,7 +305,7 @@ bool RiaApplication::loadProject(const QString& projectFileName) RimCase* ri = casesToLoad[cIdx]; CVF_ASSERT(ri); - caseProgress.setProgressDescription(ri->caseName()); + caseProgress.setProgressDescription(ri->caseUserDescription()); caf::ProgressInfo viewProgress(ri->reservoirViews().size() , "Creating Views"); @@ -495,11 +495,8 @@ bool RiaApplication::openEclipseCaseFromFile(const QString& fileName) //-------------------------------------------------------------------------------------------------- bool RiaApplication::openEclipseCase(const QString& caseName, const QString& caseFileName) { - QFileInfo gridFileName(caseFileName); - QString casePath = gridFileName.absolutePath(); - RimResultCase* rimResultReservoir = new RimResultCase(); - rimResultReservoir->setCaseInfo(caseName, caseFileName, casePath); + rimResultReservoir->setCaseInfo(caseName, caseFileName); m_project->reservoirs.push_back(rimResultReservoir); @@ -529,7 +526,7 @@ bool RiaApplication::openEclipseCase(const QString& caseName, const QString& cas bool RiaApplication::openInputEclipseCase(const QString& caseName, const QStringList& caseFileNames) { RimInputCase* rimInputReservoir = new RimInputCase(); - rimInputReservoir->caseName = caseName; + rimInputReservoir->caseUserDescription = caseName; rimInputReservoir->openDataFileSet(caseFileNames); m_project->reservoirs.push_back(rimInputReservoir); @@ -1205,7 +1202,7 @@ void RiaApplication::saveSnapshotForAllViews(const QString& snapshotFolderName) // Process all events to avoid a black image when grabbing frame buffer QCoreApplication::processEvents(); - QString fileName = ri->caseName() + "-" + riv->name(); + QString fileName = ri->caseUserDescription() + "-" + riv->name(); QString absoluteFileName = caf::Utils::constructFullFileName(snapshotPath, fileName, ".png"); saveSnapshotAs(absoluteFileName); @@ -1366,10 +1363,9 @@ bool RiaApplication::addEclipseCases(const QStringList& fileNames) QFileInfo gridFileName(firstFileName); QString caseName = gridFileName.completeBaseName(); - QString casePath = gridFileName.absolutePath(); RimResultCase* rimResultReservoir = new RimResultCase(); - rimResultReservoir->setCaseInfo(caseName, firstFileName, casePath); + rimResultReservoir->setCaseInfo(caseName, firstFileName); if (!rimResultReservoir->openEclipseGridFile()) { delete rimResultReservoir; @@ -1393,10 +1389,9 @@ bool RiaApplication::addEclipseCases(const QStringList& fileNames) QFileInfo gridFileName(caseFileName); QString caseName = gridFileName.completeBaseName(); - QString casePath = gridFileName.absolutePath(); RimResultCase* rimResultReservoir = new RimResultCase(); - rimResultReservoir->setCaseInfo(caseName, caseFileName, casePath); + rimResultReservoir->setCaseInfo(caseName, caseFileName); std::vector< std::vector > caseGridDimensions; rimResultReservoir->readGridDimensions(caseGridDimensions); diff --git a/ApplicationCode/ProjectDataModel/Rim3dOverlayInfoConfig.cpp b/ApplicationCode/ProjectDataModel/Rim3dOverlayInfoConfig.cpp index 09ec328590..0aa4acad71 100644 --- a/ApplicationCode/ProjectDataModel/Rim3dOverlayInfoConfig.cpp +++ b/ApplicationCode/ProjectDataModel/Rim3dOverlayInfoConfig.cpp @@ -89,7 +89,7 @@ void Rim3dOverlayInfoConfig::update3DInfo() if (m_reservoirView->eclipseCase() && m_reservoirView->eclipseCase()->reservoirData() && m_reservoirView->eclipseCase()->reservoirData()->mainGrid()) { - caseName = m_reservoirView->eclipseCase()->caseName(); + caseName = m_reservoirView->eclipseCase()->caseUserDescription(); totCellCount = QString::number(m_reservoirView->eclipseCase()->reservoirData()->mainGrid()->cells().size()); size_t mxActCellCount = m_reservoirView->eclipseCase()->reservoirData()->activeCellInfo(RifReaderInterface::MATRIX_RESULTS)->globalActiveCellCount(); size_t frActCellCount = m_reservoirView->eclipseCase()->reservoirData()->activeCellInfo(RifReaderInterface::FRACTURE_RESULTS)->globalActiveCellCount(); diff --git a/ApplicationCode/ProjectDataModel/RimCase.cpp b/ApplicationCode/ProjectDataModel/RimCase.cpp index 24ad22cd8d..a65675f6a5 100644 --- a/ApplicationCode/ProjectDataModel/RimCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimCase.cpp @@ -43,7 +43,7 @@ CAF_PDM_SOURCE_INIT(RimCase, "RimReservoir"); //-------------------------------------------------------------------------------------------------- RimCase::RimCase() { - CAF_PDM_InitField(&caseName, "CaseName", QString(), "Case name", "", "" ,""); + CAF_PDM_InitField(&caseUserDescription, "CaseUserDescription", QString(), "Case name", "", "" ,""); CAF_PDM_InitFieldNoDefault(&reservoirViews, "ReservoirViews", "", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_matrixModelResults, "MatrixModelResults", "", "", "", ""); @@ -51,6 +51,11 @@ RimCase::RimCase() CAF_PDM_InitFieldNoDefault(&m_fractureModelResults, "FractureModelResults", "", "", "", ""); m_fractureModelResults.setUiHidden(true); + // Obsolete field + CAF_PDM_InitField(&caseName, "CaseName", QString(), "Obsolete", "", "" ,""); + caseName.setIOWritable(false); + caseName.setUiHidden(true); + m_matrixModelResults = new RimReservoirCellResultsStorage; m_fractureModelResults = new RimReservoirCellResultsStorage; @@ -111,6 +116,11 @@ void RimCase::initAfterRead() riv->setEclipseCase(this); } + + if (caseUserDescription().isEmpty() && !caseName().isEmpty()) + { + caseUserDescription = caseName; + } } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimCase.h b/ApplicationCode/ProjectDataModel/RimCase.h index ab2b025555..bb913e6393 100644 --- a/ApplicationCode/ProjectDataModel/RimCase.h +++ b/ApplicationCode/ProjectDataModel/RimCase.h @@ -46,15 +46,16 @@ public: RimCase(); virtual ~RimCase(); + // Fields: - caf::PdmField caseName; + caf::PdmField caseUserDescription; caf::PdmField releaseResultMemory; caf::PdmPointersField reservoirViews; virtual bool openEclipseGridFile() { return false;}; // Should be pure virtual but PDM does not allow that. - RigCaseData* reservoirData(); - const RigCaseData* reservoirData() const; + RigCaseData* reservoirData(); + const RigCaseData* reservoirData() const; void removeReservoirData(); RimReservoirCellResultsStorage* results(RifReaderInterface::PorosityModelResultType porosityModel); @@ -65,6 +66,8 @@ public: void removeResult(const QString& resultName); virtual QString locationOnDisc() const { return QString(); } + virtual QString gridFileName() const { return QString(); } + virtual void updateFilePathsFromProjectPath(const QString& projectPath) { }; RimCaseCollection* parentCaseCollection(); @@ -73,7 +76,7 @@ public: // Overridden methods from PdmObject public: - virtual caf::PdmFieldHandle* userDescriptionField() { return &caseName; } + virtual caf::PdmFieldHandle* userDescriptionField() { return &caseUserDescription; } protected: virtual void initAfterRead(); virtual void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ); @@ -85,10 +88,13 @@ protected: private: - cvf::ref m_rigEclipseCase; + cvf::ref m_rigEclipseCase; private: caf::PdmField m_matrixModelResults; caf::PdmField m_fractureModelResults; + // Obsolete fields +protected: + caf::PdmField caseName; }; diff --git a/ApplicationCode/ProjectDataModel/RimIdenticalGridCaseGroup.cpp b/ApplicationCode/ProjectDataModel/RimIdenticalGridCaseGroup.cpp index 267ec4c953..fc9ee8b431 100644 --- a/ApplicationCode/ProjectDataModel/RimIdenticalGridCaseGroup.cpp +++ b/ApplicationCode/ProjectDataModel/RimIdenticalGridCaseGroup.cpp @@ -100,6 +100,11 @@ void RimIdenticalGridCaseGroup::addCase(RimCase* reservoir) //-------------------------------------------------------------------------------------------------- void RimIdenticalGridCaseGroup::removeCase(RimCase* reservoir) { + if (caseCollection()->reservoirs().count(reservoir) == 0) + { + return; + } + caseCollection()->reservoirs().removeChildObject(reservoir); if (caseCollection()->reservoirs().size() == 0) @@ -300,7 +305,7 @@ RimStatisticsCase* RimIdenticalGridCaseGroup::createAndAppendStatisticsCase() { RimStatisticsCase* newStatisticsCase = new RimStatisticsCase; - newStatisticsCase->caseName = QString("Statistics ") + QString::number(statisticsCaseCollection()->reservoirs.size()+1); + newStatisticsCase->caseUserDescription = QString("Statistics ") + QString::number(statisticsCaseCollection()->reservoirs.size()+1); statisticsCaseCollection()->reservoirs.push_back(newStatisticsCase); newStatisticsCase->openEclipseGridFile(); @@ -368,7 +373,7 @@ bool RimIdenticalGridCaseGroup::contains(RimCase* reservoir) const for (size_t i = 0; i < caseCollection()->reservoirs().size(); i++) { RimCase* rimReservoir = caseCollection()->reservoirs()[i]; - if (reservoir->caseName == rimReservoir->caseName) + if (reservoir->gridFileName() == rimReservoir->gridFileName()) { return true; } diff --git a/ApplicationCode/ProjectDataModel/RimInputCase.cpp b/ApplicationCode/ProjectDataModel/RimInputCase.cpp index fc2d3a64b4..d3825f5e01 100644 --- a/ApplicationCode/ProjectDataModel/RimInputCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimInputCase.cpp @@ -47,8 +47,9 @@ RimInputCase::RimInputCase() { CAF_PDM_InitObject("RimInputCase", ":/EclipseInput48x48.png", "", ""); CAF_PDM_InitField(&m_gridFileName, "GridFileName", QString(), "Case grid filename", "", "" ,""); + m_gridFileName.setUiReadOnly(true); CAF_PDM_InitFieldNoDefault(&m_additionalFileNames, "AdditionalFileNames", "Additional files", "", "" ,""); - + m_additionalFileNames.setUiReadOnly(true); CAF_PDM_InitFieldNoDefault(&m_inputPropertyCollection, "InputPropertyCollection", "", "", "", ""); m_inputPropertyCollection = new RimInputPropertyCollection; @@ -69,9 +70,9 @@ RimInputCase::~RimInputCase() //-------------------------------------------------------------------------------------------------- void RimInputCase::openDataFileSet(const QStringList& filenames) { - if (caseName().contains("Input Mock Debug Model")) + if (filenames.contains("Input Mock Debug Model")) { - cvf::ref readerInterface = this->createMockModel(this->caseName()); + cvf::ref readerInterface = this->createMockModel(filenames[0]); results(RifReaderInterface::MATRIX_RESULTS)->setReaderInterface(readerInterface.p()); results(RifReaderInterface::FRACTURE_RESULTS)->setReaderInterface(readerInterface.p()); @@ -161,9 +162,9 @@ bool RimInputCase::openEclipseGridFile() { cvf::ref readerInterface; - if (caseName().contains("Input Mock Debug Model")) + if (m_gridFileName().contains("Input Mock Debug Model")) { - readerInterface = this->createMockModel(this->caseName()); + readerInterface = this->createMockModel(this->m_gridFileName()); } else { @@ -375,6 +376,8 @@ cvf::ref RimInputCase::createMockModel(QString modelName) if (modelName == "Input Mock Debug Model Simple") { + m_gridFileName = modelName; + // Create the mock file interface and and RigSerervoir and set them up. mockFileInterface->setWorldCoordinates(cvf::Vec3d(10, 10, 10), cvf::Vec3d(20, 20, 20)); mockFileInterface->setGridPointDimensions(cvf::Vec3st(4, 5, 6)); diff --git a/ApplicationCode/ProjectDataModel/RimInputCase.h b/ApplicationCode/ProjectDataModel/RimInputCase.h index 5ab1f1a009..dd74303efb 100644 --- a/ApplicationCode/ProjectDataModel/RimInputCase.h +++ b/ApplicationCode/ProjectDataModel/RimInputCase.h @@ -45,9 +45,6 @@ public: virtual ~RimInputCase(); // Fields - caf::PdmField > m_additionalFileNames; - caf::PdmField m_gridFileName; - caf::PdmField m_inputPropertyCollection; // File open methods @@ -64,6 +61,8 @@ public: // Overrides from RimCase virtual QString locationOnDisc() const; + virtual QString gridFileName() const { return m_gridFileName();} + virtual void updateFilePathsFromProjectPath(const QString& projectPath); private: @@ -71,4 +70,9 @@ private: void removeFiles(const QStringList& obsoleteFileNames); cvf::ref createMockModel(QString modelName); + + // Fields + caf::PdmField > m_additionalFileNames; + caf::PdmField m_gridFileName; + }; diff --git a/ApplicationCode/ProjectDataModel/RimReservoirView.cpp b/ApplicationCode/ProjectDataModel/RimReservoirView.cpp index 8135349553..f8e807fcbd 100644 --- a/ApplicationCode/ProjectDataModel/RimReservoirView.cpp +++ b/ApplicationCode/ProjectDataModel/RimReservoirView.cpp @@ -255,7 +255,7 @@ void RimReservoirView::updateViewerWidgetWindowTitle() QString windowTitle; if (m_reservoir.notNull()) { - windowTitle = QString("%1 - %2").arg(m_reservoir->caseName()).arg(name); + windowTitle = QString("%1 - %2").arg(m_reservoir->caseUserDescription()).arg(name); } else { @@ -702,7 +702,9 @@ void RimReservoirView::loadDataAndUpdate() { if (!m_reservoir->openEclipseGridFile()) { - QMessageBox::warning(RiuMainWindow::instance(), "Error when opening project file", "Could not open the Eclipse Grid file (EGRID/GRID): \n"+ m_reservoir->caseName()); + QMessageBox::warning(RiuMainWindow::instance(), + "Error when opening project file", + "Could not open the Eclipse Grid file: \n"+ m_reservoir->gridFileName()); m_reservoir = NULL; return; } diff --git a/ApplicationCode/ProjectDataModel/RimResultCase.cpp b/ApplicationCode/ProjectDataModel/RimResultCase.cpp index 4fdf6275cf..bf23b21470 100644 --- a/ApplicationCode/ProjectDataModel/RimResultCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimResultCase.cpp @@ -40,7 +40,13 @@ RimResultCase::RimResultCase() CAF_PDM_InitObject("Eclipse Case", ":/AppLogo48x48.png", "", ""); CAF_PDM_InitField(&caseFileName, "CaseFileName", QString(), "Case file name", "", "" ,""); + caseFileName.setUiReadOnly(true); + + // Obsolete, unused field CAF_PDM_InitField(&caseDirectory, "CaseFolder", QString(), "Directory", "", "" ,""); + caseDirectory.setIOWritable(false); + caseDirectory.setUiHidden(true); + } @@ -59,9 +65,9 @@ bool RimResultCase::openEclipseGridFile() cvf::ref readerInterface; - if (caseName().contains("Result Mock Debug Model")) + if (caseFileName().contains("Result Mock Debug Model")) { - readerInterface = this->createMockModel(this->caseName()); + readerInterface = this->createMockModel(this->caseFileName()); } else @@ -102,9 +108,9 @@ bool RimResultCase::openAndReadActiveCellData(RigCaseData* mainEclipseCase) { cvf::ref readerInterface; - if (caseName().contains("Result Mock Debug Model")) + if (caseFileName().contains("Result Mock Debug Model")) { - readerInterface = this->createMockModel(this->caseName()); + readerInterface = this->createMockModel(this->caseFileName()); } else { @@ -244,7 +250,8 @@ RimResultCase::~RimResultCase() //-------------------------------------------------------------------------------------------------- QString RimResultCase::locationOnDisc() const { - return caseDirectory; + QFileInfo fi(caseFileName()); + return fi.absolutePath(); } //-------------------------------------------------------------------------------------------------- @@ -252,7 +259,7 @@ QString RimResultCase::locationOnDisc() const //-------------------------------------------------------------------------------------------------- void RimResultCase::readGridDimensions(std::vector< std::vector >& gridDimensions) { - RifEclipseOutputFileTools::readGridDimensions(caseFileName, gridDimensions); + RifEclipseOutputFileTools::readGridDimensions(caseFileName(), gridDimensions); } //-------------------------------------------------------------------------------------------------- @@ -261,37 +268,37 @@ void RimResultCase::readGridDimensions(std::vector< std::vector >& gridDime void RimResultCase::updateFilePathsFromProjectPath(const QString& projectPath) { // Update filename and folder paths when opening project from a different file location - if (!QFile::exists(caseFileName)) + if (!QFile::exists(caseFileName())) { + QFileInfo gridFileInfo(caseFileName()); + QString gridFileBaseName = gridFileInfo.completeBaseName(); QString candidate; - candidate = QDir::fromNativeSeparators(caseDirectory.v() + QDir::separator() + caseName + ".EGRID"); + candidate = QDir::fromNativeSeparators(locationOnDisc() + QDir::separator() + gridFileBaseName + ".EGRID"); if (QFile::exists(candidate)) { caseFileName = candidate; return; } - candidate = QDir::fromNativeSeparators(caseDirectory.v() + QDir::separator() + caseName + ".GRID"); + candidate = QDir::fromNativeSeparators(locationOnDisc() + QDir::separator() + gridFileBaseName + ".GRID"); if (QFile::exists(candidate)) { caseFileName = candidate; return; } - candidate = QDir::fromNativeSeparators(projectPath + QDir::separator() + caseName + ".EGRID"); + candidate = QDir::fromNativeSeparators(projectPath + QDir::separator() + gridFileBaseName + ".EGRID"); if (QFile::exists(candidate)) { caseFileName = candidate; - caseDirectory = projectPath; return; } - candidate = QDir::fromNativeSeparators(projectPath + QDir::separator() + caseName + ".GRID"); + candidate = QDir::fromNativeSeparators(projectPath + QDir::separator() + gridFileBaseName + ".GRID"); if (QFile::exists(candidate)) { caseFileName = candidate; - caseDirectory = projectPath; return; } } @@ -300,10 +307,26 @@ void RimResultCase::updateFilePathsFromProjectPath(const QString& projectPath) //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimResultCase::setCaseInfo(const QString& caseName, const QString& caseFileName, const QString& caseDirectory) +void RimResultCase::setCaseInfo(const QString& userDescription, const QString& caseFileName) { - this->caseName = caseName; + this->caseUserDescription = userDescription; this->caseFileName = caseFileName; - this->caseDirectory = caseDirectory; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimResultCase::initAfterRead() +{ + RimCase::initAfterRead(); + + // Convert from old (9.0.2) way of storing the case file + if (caseFileName().isEmpty()) + { + if (!this->caseName().isEmpty() && !caseDirectory().isEmpty()) + { + caseFileName = QDir::fromNativeSeparators(caseDirectory()) + "/" + caseName() + ".EGRID"; + } + } } diff --git a/ApplicationCode/ProjectDataModel/RimResultCase.h b/ApplicationCode/ProjectDataModel/RimResultCase.h index bceeeec3b6..b8123fa996 100644 --- a/ApplicationCode/ProjectDataModel/RimResultCase.h +++ b/ApplicationCode/ProjectDataModel/RimResultCase.h @@ -40,11 +40,7 @@ public: RimResultCase(); virtual ~RimResultCase(); - // Fields: - caf::PdmField caseFileName; - caf::PdmField caseDirectory; - - void setCaseInfo(const QString& caseName, const QString& caseFileName, const QString& caseDirectory); + void setCaseInfo(const QString& userDescription, const QString& caseFileName); virtual bool openEclipseGridFile(); bool openAndReadActiveCellData(RigCaseData* mainEclipseCase); @@ -52,8 +48,18 @@ public: // Overrides from RimCase virtual QString locationOnDisc() const; + virtual QString gridFileName() const { return caseFileName();} virtual void updateFilePathsFromProjectPath(const QString& projectPath); private: cvf::ref createMockModel(QString modelName); + + virtual void initAfterRead(); + + // Fields: + caf::PdmField caseFileName; + + // Obsolete field + caf::PdmField caseDirectory; + }; diff --git a/ApplicationCode/ProjectDataModel/RimStatisticsCase.cpp b/ApplicationCode/ProjectDataModel/RimStatisticsCase.cpp index f00554eb90..95cccce438 100644 --- a/ApplicationCode/ProjectDataModel/RimStatisticsCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimStatisticsCase.cpp @@ -311,7 +311,7 @@ void RimStatisticsCase::defineUiOrdering(QString uiConfigName, caf::PdmUiOrderin updateSelectionListVisibilities(); updatePercentileUiVisibility(); - uiOrdering.add(&caseName); + uiOrdering.add(&caseUserDescription); uiOrdering.add(&m_calculateEditCommand); uiOrdering.add(&m_selectionSummary); diff --git a/ApplicationCode/ProjectDataModel/RimUiTreeView.cpp b/ApplicationCode/ProjectDataModel/RimUiTreeView.cpp index 9483a56237..c8b206af47 100644 --- a/ApplicationCode/ProjectDataModel/RimUiTreeView.cpp +++ b/ApplicationCode/ProjectDataModel/RimUiTreeView.cpp @@ -1020,7 +1020,8 @@ bool RimUiTreeView::hasClipboardValidData() //-------------------------------------------------------------------------------------------------- void RimUiTreeView::dropEvent(QDropEvent* dropEvent) { - if (userConfirmedGridCaseGroupChange(currentIndex())) + QModelIndex dropIndex = indexAt(dropEvent->pos()); + if (dropIndex.isValid() && userConfirmedGridCaseGroupChange(dropIndex)) { QTreeView::dropEvent(dropEvent); } diff --git a/ApplicationCode/SocketInterface/RiaSocketServer.cpp b/ApplicationCode/SocketInterface/RiaSocketServer.cpp index ca25c15ea8..ad676d6462 100644 --- a/ApplicationCode/SocketInterface/RiaSocketServer.cpp +++ b/ApplicationCode/SocketInterface/RiaSocketServer.cpp @@ -179,7 +179,7 @@ RimCase* RiaSocketServer::findReservoir(const QString& caseName) { for (size_t cIdx = 0; cIdx < project->reservoirs.size(); ++cIdx) { - if (project->reservoirs[cIdx] && project->reservoirs[cIdx]->caseName() == caseName ) + if (project->reservoirs[cIdx] && project->reservoirs[cIdx]->caseUserDescription() == caseName ) { return project->reservoirs[cIdx]; } @@ -452,9 +452,9 @@ void RiaSocketServer::readPropertyDataFromOctave() if (cellCountFromOctave != gridActiveCellCount && cellCountFromOctave != gridTotalCellCount) { m_errorMessageDialog->showMessage(tr("ResInsight SocketServer: \n") + - tr("The number of cells in the data coming from octave does not match the case") + ":\"" + m_currentReservoir->caseName() + "\"\n" + tr("The number of cells in the data coming from octave does not match the case") + ":\"" + m_currentReservoir->caseUserDescription() + "\"\n" " Octave: " + QString::number(cellCountFromOctave) + "\n" - " " + m_currentReservoir->caseName() + ": Active cell count: " + QString::number(gridActiveCellCount) + " Total cell count: " + QString::number(gridTotalCellCount)) ; + " " + m_currentReservoir->caseUserDescription() + ": Active cell count: " + QString::number(gridActiveCellCount) + " Total cell count: " + QString::number(gridTotalCellCount)) ; cellCountFromOctave = 0; m_invalidActiveCellCountDetected = true;