mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Added support for setting multiple script directories
p4#: 21393
This commit is contained in:
parent
30ad1216b6
commit
b3c30c1b21
@ -901,9 +901,9 @@ bool RiaApplication::parseArguments()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiaApplication::scriptDirectory() const
|
||||
QString RiaApplication::scriptDirectories() const
|
||||
{
|
||||
return m_preferences->scriptDirectory();
|
||||
return m_preferences->scriptDirectories();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -1069,7 +1069,7 @@ void RiaApplication::applyPreferences()
|
||||
|
||||
if (this->project())
|
||||
{
|
||||
this->project()->setUserScriptPath(m_preferences->scriptDirectory());
|
||||
this->project()->setScriptDirectories(m_preferences->scriptDirectories());
|
||||
RimUiTreeModelPdm* treeModel = RiuMainWindow::instance()->uiPdmModel();
|
||||
if (treeModel) treeModel->rebuildUiSubTree(this->project()->scriptCollection());
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ public:
|
||||
bool showPerformanceInfo() const;
|
||||
|
||||
RINavigationPolicy navigationPolicy() const;
|
||||
QString scriptDirectory() const;
|
||||
QString scriptDirectories() const;
|
||||
QString scriptEditorPath() const;
|
||||
QString octavePath() const;
|
||||
|
||||
|
@ -28,8 +28,8 @@ RiaPreferences::RiaPreferences(void)
|
||||
{
|
||||
CAF_PDM_InitField(&navigationPolicy, "navigationPolicy", caf::AppEnum<RiaApplication::RINavigationPolicy>(RiaApplication::NAVIGATION_POLICY_CAD), "Navigation mode", "", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&scriptDirectory, "scriptDirectory", "Shared Script Folder", "", "", "");
|
||||
scriptDirectory.setUiEditorTypeName(caf::PdmUiFilePathEditor::uiEditorTypeName());
|
||||
CAF_PDM_InitFieldNoDefault(&scriptDirectories, "scriptDirectory", "Shared Script Folder(s)", "", "", "");
|
||||
scriptDirectories.setUiEditorTypeName(caf::PdmUiFilePathEditor::uiEditorTypeName());
|
||||
|
||||
CAF_PDM_InitField(&scriptEditorExecutable, "scriptEditorExecutable", QString("kate"), "Script Editor", "", "", "");
|
||||
scriptEditorExecutable.setUiEditorTypeName(caf::PdmUiFilePathEditor::uiEditorTypeName());
|
||||
@ -69,12 +69,13 @@ RiaPreferences::~RiaPreferences(void)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiaPreferences::defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute * attribute)
|
||||
{
|
||||
if (field == &scriptDirectory)
|
||||
if (field == &scriptDirectories)
|
||||
{
|
||||
caf::PdmUiFilePathEditorAttribute* myAttr = static_cast<caf::PdmUiFilePathEditorAttribute*>(attribute);
|
||||
if (myAttr)
|
||||
{
|
||||
myAttr->m_selectDirectory = true;
|
||||
myAttr->m_appendUiSelectedFolderToText = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -87,7 +88,7 @@ void RiaPreferences::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering&
|
||||
uiOrdering.add(&navigationPolicy);
|
||||
|
||||
caf::PdmUiGroup* scriptGroup = uiOrdering.addNewGroup("Script configuration");
|
||||
scriptGroup->add(&scriptDirectory);
|
||||
scriptGroup->add(&scriptDirectories);
|
||||
scriptGroup->add(&scriptEditorExecutable);
|
||||
scriptGroup->add(&octaveExecutable);
|
||||
|
||||
|
@ -34,7 +34,7 @@ public:
|
||||
public: // Pdm Fields
|
||||
caf::PdmField<caf::AppEnum< RiaApplication::RINavigationPolicy > > navigationPolicy;
|
||||
|
||||
caf::PdmField<QString> scriptDirectory;
|
||||
caf::PdmField<QString> scriptDirectories;
|
||||
caf::PdmField<QString> scriptEditorExecutable;
|
||||
caf::PdmField<QString> octaveExecutable;
|
||||
|
||||
|
@ -86,9 +86,9 @@ void RimProject::initAfterRead()
|
||||
// TODO : Must store content of scripts in project file and notify user if stored content is different from disk on execute and edit
|
||||
//
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
QString scriptDirectory = app->scriptDirectory();
|
||||
QString scriptDirectories = app->scriptDirectories();
|
||||
|
||||
this->setUserScriptPath(scriptDirectory);
|
||||
this->setScriptDirectories(scriptDirectories);
|
||||
}
|
||||
|
||||
|
||||
@ -101,24 +101,27 @@ void RimProject::setupBeforeSave()
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
/// Support list of multiple script paths divided by ';'
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimProject::setUserScriptPath(const QString& scriptDirectory)
|
||||
void RimProject::setScriptDirectories(const QString& scriptDirectories)
|
||||
{
|
||||
scriptCollection->calcScripts().deleteAllChildObjects();
|
||||
scriptCollection->subDirectories().deleteAllChildObjects();
|
||||
|
||||
|
||||
QDir dir(scriptDirectory);
|
||||
if (!scriptDirectory.isEmpty() && dir.exists() && dir.isReadable())
|
||||
QStringList pathList = scriptDirectories.split(';');
|
||||
foreach(QString path, pathList)
|
||||
{
|
||||
RimScriptCollection* sharedScriptLocation = new RimScriptCollection;
|
||||
sharedScriptLocation->directory = scriptDirectory;
|
||||
sharedScriptLocation->setUiName(dir.dirName());
|
||||
QDir dir(path);
|
||||
if (!path.isEmpty() && dir.exists() && dir.isReadable())
|
||||
{
|
||||
RimScriptCollection* sharedScriptLocation = new RimScriptCollection;
|
||||
sharedScriptLocation->directory = path;
|
||||
sharedScriptLocation->setUiName(dir.dirName());
|
||||
|
||||
sharedScriptLocation->readContentFromDisc();
|
||||
sharedScriptLocation->readContentFromDisc();
|
||||
|
||||
scriptCollection->subDirectories.push_back(sharedScriptLocation);
|
||||
scriptCollection->subDirectories.push_back(sharedScriptLocation);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,7 @@ public:
|
||||
caf::PdmField<RimScriptCollection*> scriptCollection;
|
||||
caf::PdmField<QString> treeViewState;
|
||||
|
||||
void setUserScriptPath(const QString& path);
|
||||
void setScriptDirectories(const QString& scriptDirectories);
|
||||
|
||||
QString projectFileVersionString() const;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user