refs #728, hide load indicator when no vPilot rules are loaded

This commit is contained in:
Klaus Basan
2016-08-12 14:51:48 +02:00
committed by Mathew Sutcliffe
parent 364914cc31
commit d10fe5ad18
3 changed files with 28 additions and 17 deletions

View File

@@ -532,7 +532,7 @@ namespace BlackGui
{ {
CLogMessage(this).error("Loading vPilot ruleset failed"); CLogMessage(this).error("Loading vPilot ruleset failed");
} }
this->ui->comp_OwnAircraftModels->view()->hideLoadIndicator(); this->ui->tvp_AircraftModelsForVPilot->hideLoadIndicator();
} }
void CDbMappingComponent::ps_onVPilotCacheChanged() void CDbMappingComponent::ps_onVPilotCacheChanged()
@@ -541,6 +541,10 @@ namespace BlackGui
{ {
this->ui->tvp_AircraftModelsForVPilot->updateContainerMaybeAsync(this->m_vPilotReader.getAsModelsFromCache()); this->ui->tvp_AircraftModelsForVPilot->updateContainerMaybeAsync(this->m_vPilotReader.getAsModelsFromCache());
} }
else
{
this->ui->tvp_AircraftModelsForVPilot->hideLoadIndicator();
}
} }
void CDbMappingComponent::ps_requestVPilotDataUpdate() void CDbMappingComponent::ps_requestVPilotDataUpdate()

View File

@@ -57,6 +57,12 @@ namespace BlackMisc
return m_fileList; return m_fileList;
} }
bool CVPilotRulesReader::hasFiles() const
{
QReadLocker l(&m_lockData);
return !m_fileList.isEmpty();
}
void CVPilotRulesReader::addFilename(const QString &fileName) void CVPilotRulesReader::addFilename(const QString &fileName)
{ {
QWriteLocker l(&m_lockData); QWriteLocker l(&m_lockData);
@@ -138,34 +144,31 @@ namespace BlackMisc
bool CVPilotRulesReader::read(bool convertToModels) bool CVPilotRulesReader::read(bool convertToModels)
{ {
bool success = true;
int loadedFiles = 0; int loadedFiles = 0;
QStringList filesWithProblems; QStringList filesWithProblems;
CVPilotModelRuleSet rules; CVPilotModelRuleSet rules;
QStringList fileList(getFiles()); const QStringList fileList(getFiles());
for (const QString &fn : fileList) for (const QString &fn : fileList)
{ {
if (m_shutdown) { return false; } if (m_shutdown) { return false; }
loadedFiles++; loadedFiles++;
bool s = this->loadFile(fn, rules); bool s = this->loadFile(fn, rules);
if (!s) { this->m_fileListWithProblems.append(fn); } if (!s) { this->m_fileListWithProblems.append(fn); }
success = s && success;
} }
{ {
{ QWriteLocker l(&m_lockData);
QWriteLocker l(&m_lockData); this->m_loadedFiles = loadedFiles;
this->m_loadedFiles = loadedFiles; this->m_fileListWithProblems = filesWithProblems;
this->m_fileListWithProblems = filesWithProblems; this->m_rules = rules;
this->m_rules = rules; if (m_shutdown) { return false; }
if (m_shutdown) { return false; } }
}
if (convertToModels) const bool success = loadedFiles > 0;
{ if (convertToModels)
const CAircraftModelList vPilotModels(rules.toAircraftModels()); // long lasting operation {
this->ps_setCache(vPilotModels); const CAircraftModelList vPilotModels(rules.toAircraftModels()); // long lasting operation
} this->ps_setCache(vPilotModels);
} }
emit readFinished(success); emit readFinished(success);

View File

@@ -47,6 +47,10 @@ namespace BlackMisc
//! \threadsafe //! \threadsafe
QStringList getFiles() const; QStringList getFiles() const;
//! Has files
//! \threadsafe
bool hasFiles() const;
//! File names //! File names
//! \threadsafe //! \threadsafe
void addFilename(const QString &fileName); void addFilename(const QString &fileName);