Ref T118, support multiple model directories

* this was recently discussed https://swift-project.slack.com/archives/C04J6J76N/p1508430536000065
* for config parser already implemented
* for XP the loading from multiple dirs still needs to be implemented (see todo)
This commit is contained in:
Klaus Basan
2017-10-20 00:23:18 +02:00
parent 24802b6f7f
commit 2f0253b3eb
7 changed files with 57 additions and 34 deletions

View File

@@ -182,7 +182,7 @@ namespace BlackMisc
return this->setCachedModels(CAircraftModelList());
}
void IAircraftModelLoader::startLoading(LoadMode mode, const ModelConsolidation &modelConsolidation, const QString &directory)
void IAircraftModelLoader::startLoading(LoadMode mode, const ModelConsolidation &modelConsolidation, const QStringList &modelDirectories)
{
if (m_loadingInProgress) { return; }
m_loadingInProgress = true;
@@ -206,16 +206,18 @@ namespace BlackMisc
}
// really load from disk?
if (m_skipLoadingEmptyModelDir && !CDirectoryUtils::existsUnemptyDirectory(directory))
const CSimulatorInfo simulator = this->getSimulator();
const QStringList modelDirs = this->getInitializedModelDirectories(modelDirectories, simulator);
if (m_skipLoadingEmptyModelDir && modelDirs.isEmpty())
{
const CStatusMessage status = CStatusMessage(this, CStatusMessage::SeverityWarning, "Empty or not existing %1 directory '%2', skipping read")
<< this->getSimulator().toQString() << directory;
<< simulator.toQString() << modelDirectories.join(", ");
m_loadingMessages.push_back(status);
emit loadingFinished(status, this->getSimulator(), LoadingSkipped);
emit loadingFinished(status, simulator, LoadingSkipped);
return;
}
this->startLoadingFromDisk(mode, modelConsolidation, directory);
this->startLoadingFromDisk(mode, modelConsolidation, modelDirs);
}
const CSimulatorInfo IAircraftModelLoader::getSimulator() const