diff --git a/src/blackgui/components/dbmappingcomponent.cpp b/src/blackgui/components/dbmappingcomponent.cpp index 254b4c0f8..e1a0fe822 100644 --- a/src/blackgui/components/dbmappingcomponent.cpp +++ b/src/blackgui/components/dbmappingcomponent.cpp @@ -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() diff --git a/src/blackmisc/simulation/fscommon/vpilotrulesreader.cpp b/src/blackmisc/simulation/fscommon/vpilotrulesreader.cpp index ed7beded5..2f4cc1707 100644 --- a/src/blackmisc/simulation/fscommon/vpilotrulesreader.cpp +++ b/src/blackmisc/simulation/fscommon/vpilotrulesreader.cpp @@ -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); diff --git a/src/blackmisc/simulation/fscommon/vpilotrulesreader.h b/src/blackmisc/simulation/fscommon/vpilotrulesreader.h index 25424cfeb..2e0101957 100644 --- a/src/blackmisc/simulation/fscommon/vpilotrulesreader.h +++ b/src/blackmisc/simulation/fscommon/vpilotrulesreader.h @@ -47,6 +47,10 @@ namespace BlackMisc //! \threadsafe QStringList getFiles() const; + //! Has files + //! \threadsafe + bool hasFiles() const; + //! File names //! \threadsafe void addFilename(const QString &fileName);