Check if directory is readable before creating a script collection item

p4#: 21362
This commit is contained in:
Magne Sjaastad
2013-04-22 14:37:33 +02:00
parent d825b0654c
commit b20be8ad25
2 changed files with 17 additions and 4 deletions

View File

@@ -110,7 +110,7 @@ void RimProject::setUserScriptPath(const QString& scriptDirectory)
QDir dir(scriptDirectory); QDir dir(scriptDirectory);
if (!scriptDirectory.isEmpty() && dir.exists()) if (!scriptDirectory.isEmpty() && dir.exists() && dir.isReadable())
{ {
RimScriptCollection* sharedScriptLocation = new RimScriptCollection; RimScriptCollection* sharedScriptLocation = new RimScriptCollection;
sharedScriptLocation->directory = scriptDirectory; sharedScriptLocation->directory = scriptDirectory;

View File

@@ -67,6 +67,12 @@ void RimScriptCollection::readContentFromDisc()
return; return;
} }
QDir myDir(this->directory());
if (!myDir.isReadable())
{
return;
}
// Build a list of all scripts in the specified directory // Build a list of all scripts in the specified directory
{ {
QString filter = "*.m"; QString filter = "*.m";
@@ -93,7 +99,7 @@ void RimScriptCollection::readContentFromDisc()
// Add subfolders // Add subfolders
{ {
QDir dir(directory); QDir dir(directory);
QFileInfoList fileInfoList = dir.entryInfoList(QDir::AllDirs | QDir::NoDotAndDotDot); QFileInfoList fileInfoList = dir.entryInfoList(QDir::AllDirs | QDir::NoDotAndDotDot | QDir::Readable);
subDirectories.deleteAllChildObjects(); subDirectories.deleteAllChildObjects();
QStringList retFileNames; QStringList retFileNames;
@@ -120,12 +126,19 @@ void RimScriptCollection::pathsAndSubPaths(QStringList& pathList)
{ {
if (!this->directory().isEmpty()) if (!this->directory().isEmpty())
{ {
pathList.append(this->directory()); QDir myDir(this->directory());
if (myDir.isReadable())
{
pathList.append(this->directory());
}
} }
for (size_t i= 0; i < this->subDirectories.size(); ++i) for (size_t i= 0; i < this->subDirectories.size(); ++i)
{ {
if (this->subDirectories[i]) this->subDirectories[i]->pathsAndSubPaths(pathList); if (this->subDirectories[i])
{
this->subDirectories[i]->pathsAndSubPaths(pathList);
}
} }
} }