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,22 +144,18 @@ 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;
@@ -161,12 +163,13 @@ namespace BlackMisc
this->m_rules = rules; this->m_rules = rules;
if (m_shutdown) { return false; } if (m_shutdown) { return false; }
} }
const bool success = loadedFiles > 0;
if (convertToModels) if (convertToModels)
{ {
const CAircraftModelList vPilotModels(rules.toAircraftModels()); // long lasting operation const CAircraftModelList vPilotModels(rules.toAircraftModels()); // long lasting operation
this->ps_setCache(vPilotModels); this->ps_setCache(vPilotModels);
} }
}
emit readFinished(success); emit readFinished(success);
return success; return 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);