refs #619, adjusted model loader / implementing classes

* init data based on last setup
* init changed some signatures
This commit is contained in:
Klaus Basan
2016-03-12 05:30:47 +01:00
parent 7714f5db9f
commit 83d7b7ceef
6 changed files with 30 additions and 27 deletions

View File

@@ -107,8 +107,9 @@ namespace BlackMisc
{
if (pair.second)
{
this->updateCfgEntriesList(pair.first);
this->m_parsedCfgEntriesList = pair.first;
this->setModelsInCache(pair.first.toAircraftModelList());
emit loadingFinished(true, this->m_simulatorInfo);
}
});
}
@@ -117,7 +118,15 @@ namespace BlackMisc
bool ok;
this->m_parsedCfgEntriesList = performParsing(m_rootDirectory, m_excludedDirectories, &ok);
this->setModelsInCache(this->m_parsedCfgEntriesList.toAircraftModelList());
emit loadingFinished(ok);
emit loadingFinished(ok, this->m_simulatorInfo);
}
}
void CAircraftCfgParser::ps_cacheChanged()
{
if (this->hasCachedData())
{
emit this->loadingFinished(true, this->m_simulatorInfo);
}
}
@@ -188,12 +197,6 @@ namespace BlackMisc
return empty;
}
void CAircraftCfgParser::updateCfgEntriesList(const CAircraftCfgEntriesList &cfgEntriesList)
{
m_parsedCfgEntriesList = cfgEntriesList;
emit loadingFinished(true);
}
CStatusMessage CAircraftCfgParser::setModelsInCache(const CAircraftModelList &models)
{
if (this->m_simulatorInfo.fsx())

View File

@@ -56,10 +56,6 @@ namespace BlackMisc
//! Create an parser object for given simulator
static std::unique_ptr<CAircraftCfgParser> createModelLoader(const BlackMisc::Simulation::CSimulatorInfo &simInfo);
public slots:
//! Parsed or injected entires
void updateCfgEntriesList(const BlackMisc::Simulation::FsCommon::CAircraftCfgEntriesList &cfgEntriesList);
protected:
//! Set cached values
BlackMisc::CStatusMessage setModelsInCache(const BlackMisc::Simulation::CAircraftModelList &models);
@@ -69,6 +65,10 @@ namespace BlackMisc
virtual void startLoadingFromDisk(LoadMode mode) override;
//! @}
private slots:
//! Cache changed
void ps_cacheChanged();
private:
//! Section within file
enum FileSection
@@ -95,9 +95,9 @@ namespace BlackMisc
QPointer<BlackMisc::CWorker> m_parserWorker; //!< worker will destroy itself, so weak pointer
//! \todo KB/MS Is there nothing better than having 3 cache members?
BlackMisc::CData<BlackMisc::Simulation::Data::ModelCacheFsx> m_modelCacheFsx {this}; //!< FSX cache
BlackMisc::CData<BlackMisc::Simulation::Data::ModelCacheFs9> m_modelCacheFs9 {this}; //!< Fs9 cache
BlackMisc::CData<BlackMisc::Simulation::Data::ModelCacheP3D> m_modelCacheP3D {this}; //!< P3D cache
BlackMisc::CData<BlackMisc::Simulation::Data::ModelCacheFsx> m_modelCacheFsx {this, &CAircraftCfgParser::ps_cacheChanged}; //!< FSX cache
BlackMisc::CData<BlackMisc::Simulation::Data::ModelCacheFs9> m_modelCacheFs9 {this, &CAircraftCfgParser::ps_cacheChanged}; //!< FS9 cache
BlackMisc::CData<BlackMisc::Simulation::Data::ModelCacheP3D> m_modelCacheP3D {this, &CAircraftCfgParser::ps_cacheChanged}; //!< P3D cache
static const QString &fileFilter();
};