#4528 #4512 Fix script-locations when loading project and remove initScriptDirectories()

* Disable IO for scriptlocations and make sure we save it in preferences when editing
* The next valid case Id stuff in initDirectories is irrelevant because it always runs on an
  empty project
This commit is contained in:
Gaute Lindkvist
2019-07-30 10:36:05 +02:00
parent f61df01694
commit 7c30af62c2
7 changed files with 8 additions and 116 deletions

View File

@@ -37,9 +37,7 @@ RimCalcScript::RimCalcScript()
CAF_PDM_InitObject("CalcScript", ":/OctaveScriptFile16x16.png", "Calc Script", "");
CAF_PDM_InitField(&absoluteFileName, "AbsolutePath", QString(), "Location", "", "", "");
CAF_PDM_InitField(&content, "Content", QString(), "Directory", "", "", "");
RiaFieldhandleTools::disableWriteAndSetFieldHidden(&content);
absoluteFileName.uiCapability()->setUiEditorTypeName(caf::PdmUiFilePathEditor::uiEditorTypeName());
}

View File

@@ -46,7 +46,6 @@ public:
static QStringList createCommandLineArguments(const QString& absoluteFileNameScript);
caf::PdmField<QString> absoluteFileName;
caf::PdmField<QString> content; // TODO: Obsolete field, can be deleted on next project file revision.
protected:
void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override;

View File

@@ -117,6 +117,7 @@ RimProject::RimProject(void)
CAF_PDM_InitFieldNoDefault(&scriptCollection, "ScriptCollection", "Octave Scripts", ":/octave.png", "", "");
scriptCollection.uiCapability()->setUiHidden(true);
scriptCollection.xmlCapability()->disableIO();
CAF_PDM_InitFieldNoDefault(&wellPathImport, "WellPathImport", "WellPathImport", "", "", "");
wellPathImport = new RimWellPathImport();
@@ -238,103 +239,6 @@ void RimProject::close()
plotWindowTreeViewState = "";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimProject::initScriptDirectories(const QString& scriptDirectories)
{
//
// TODO : Must store content of scripts in project file and notify user if stored content is different from disk on execute and edit
//
this->setScriptDirectories(scriptDirectories);
// Find largest used caseId read from file and make sure all cases have a valid caseId
{
int largestCaseId = -1;
std::vector<RimCase*> cases;
allCases(cases);
for (size_t i = 0; i < cases.size(); i++)
{
if (cases[i]->caseId > largestCaseId)
{
largestCaseId = cases[i]->caseId;
}
}
if (largestCaseId > this->nextValidCaseId)
{
this->nextValidCaseId = largestCaseId + 1;
}
// Assign case Id to cases with an invalid case Id
for (size_t i = 0; i < cases.size(); i++)
{
if (cases[i]->caseId < 0)
{
assignCaseIdToCase(cases[i]);
}
}
}
// Find largest used groupId read from file and make sure all groups have a valid groupId
RimEclipseCaseCollection* analysisModels = activeOilField() ? activeOilField()->analysisModels() : nullptr;
if (analysisModels)
{
int largestGroupId = -1;
for (size_t i = 0; i < analysisModels->caseGroups().size(); i++)
{
RimIdenticalGridCaseGroup* cg = analysisModels->caseGroups()[i];
if (cg->groupId > largestGroupId)
{
largestGroupId = cg->groupId;
}
}
if (largestGroupId > this->nextValidCaseGroupId)
{
this->nextValidCaseGroupId = largestGroupId + 1;
}
// Assign group Id to groups with an invalid Id
for (size_t i = 0; i < analysisModels->caseGroups().size(); i++)
{
RimIdenticalGridCaseGroup* cg = analysisModels->caseGroups()[i];
if (cg->groupId < 0)
{
assignIdToCaseGroup(cg);
}
}
}
int maxViewId = -1;
std::vector<Rim3dView*> views;
this->descendantsIncludingThisOfType(views);
for (Rim3dView* view : views)
{
maxViewId = std::max(maxViewId, view->id());
}
if (maxViewId >= this->nextValidViewId)
{
this->nextValidViewId = maxViewId + 1;
}
// Assign view id to views with invalid id
for (Rim3dView* view : views)
{
if (view->id() < 0)
{
assignViewIdToView(view);
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -105,7 +105,6 @@ public:
caf::PdmField<QString> plotWindowCurrentModelIndexPath;
void setScriptDirectories(const QString& scriptDirectories);
void initScriptDirectories(const QString& scriptDirectories);
QString projectFileVersionString() const;
bool isProjectFileVersionEqualOrOlderThan(const QString& otherProjectFileVersion) const;