refs #619, enhance local model data with DB data (if possible)

* use new slot syntax on menu actions
* allow reload from disk and reload from cache
* added utility functions for model/modellist
This commit is contained in:
Klaus Basan
2016-03-13 19:30:26 +01:00
parent 76fa1535af
commit 93176b5bd4
13 changed files with 229 additions and 73 deletions

View File

@@ -62,7 +62,7 @@ namespace BlackMisc
return {};
}
void CAircraftModelLoaderXPlane::startLoadingFromDisk(LoadMode mode)
void CAircraftModelLoaderXPlane::startLoadingFromDisk(LoadMode mode, const CAircraftModelList &dbModels)
{
m_installedModels.clear();
if (m_rootDirectory.isEmpty())
@@ -77,9 +77,10 @@ namespace BlackMisc
auto rootDirectory = m_rootDirectory;
auto excludedDirectories = m_excludedDirectories;
m_parserWorker = BlackMisc::CWorker::fromTask(this, "CAircraftModelLoaderXPlane::performParsing",
[this, rootDirectory, excludedDirectories]()
[this, rootDirectory, excludedDirectories, dbModels]()
{
auto models = performParsing(rootDirectory, excludedDirectories);
mergeWithDbData(models, dbModels);
return models;
});
m_parserWorker->thenWithResult<CAircraftModelList>(this, [this](const auto & models)
@@ -90,6 +91,7 @@ namespace BlackMisc
else if (mode.testFlag(LoadDirectly))
{
m_installedModels = performParsing(m_rootDirectory, m_excludedDirectories);
mergeWithDbData(m_installedModels, dbModels);
emit loadingFinished(true, this->m_simulatorInfo);
}
}