Fix DoFileSearch returning the passed-in directories themselves.
Fixes https://code.google.com/p/dolphin-emu/issues/detail?id=8697&can=3
This commit is contained in:
parent
f6d27a5ce8
commit
acd6cb79a4
|
@ -28,7 +28,8 @@ static std::vector<std::string> FileSearchWithTest(const std::vector<std::string
|
|||
for (auto& child : entry.children)
|
||||
DoEntry(child);
|
||||
};
|
||||
DoEntry(top);
|
||||
for (auto& child : top.children)
|
||||
DoEntry(child);
|
||||
}
|
||||
// remove duplicates
|
||||
std::sort(result.begin(), result.end());
|
||||
|
@ -53,6 +54,7 @@ std::vector<std::string> DoFileSearch(const std::vector<std::string>& globs, con
|
|||
});
|
||||
}
|
||||
|
||||
// Result includes the passed directories themselves as well as their subdirectories.
|
||||
std::vector<std::string> FindSubdirectories(const std::vector<std::string>& directories, bool recursive)
|
||||
{
|
||||
return FileSearchWithTest(directories, true, [&](const File::FSTEntry& entry) {
|
||||
|
|
|
@ -80,16 +80,13 @@ void DGameTracker::ScanForGames()
|
|||
|
||||
delete m_watcher;
|
||||
m_watcher = new QFileSystemWatcher(this);
|
||||
for (std::string dir : SConfig::GetInstance().m_ISOFolder)
|
||||
m_watcher->addPath(QString::fromStdString(dir));
|
||||
if (SConfig::GetInstance().m_RecursiveISOFolder)
|
||||
{
|
||||
for (std::string dir : FindSubdirectories(SConfig::GetInstance().m_ISOFolder, /*recursive*/ true))
|
||||
m_watcher->addPath(QString::fromStdString(dir));
|
||||
}
|
||||
else
|
||||
{
|
||||
for (std::string dir : SConfig::GetInstance().m_ISOFolder)
|
||||
m_watcher->addPath(QString::fromStdString(dir));
|
||||
}
|
||||
|
||||
std::vector<std::string> exts;
|
||||
if (SConfig::GetInstance().m_ListGC)
|
||||
|
|
Loading…
Reference in New Issue