Added support for setting multiple script directories

p4#: 21393
This commit is contained in:
Magne Sjaastad
2013-04-24 07:35:31 +02:00
parent 30ad1216b6
commit b3c30c1b21
6 changed files with 26 additions and 22 deletions

View File

@@ -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);
}
}
}

View File

@@ -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;