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");
}
this->ui->comp_OwnAircraftModels->view()->hideLoadIndicator();
this->ui->tvp_AircraftModelsForVPilot->hideLoadIndicator();
}
void CDbMappingComponent::ps_onVPilotCacheChanged()
@@ -541,6 +541,10 @@ namespace BlackGui
{
this->ui->tvp_AircraftModelsForVPilot->updateContainerMaybeAsync(this->m_vPilotReader.getAsModelsFromCache());
}
else
{
this->ui->tvp_AircraftModelsForVPilot->hideLoadIndicator();
}
}
void CDbMappingComponent::ps_requestVPilotDataUpdate()

View File

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

View File

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