mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-05-05 01:35:45 +08:00
refs #888, loadingFinished with CStatusMessage
This commit is contained in:
@@ -439,10 +439,10 @@ namespace BlackGui
|
|||||||
this->m_modelLoader->startLoading(mode, &CDatabaseUtils::consolidateModelsWithDbData, directory);
|
this->m_modelLoader->startLoading(mode, &CDatabaseUtils::consolidateModelsWithDbData, directory);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDbOwnModelsComponent::ps_onOwnModelsLoadingFinished(bool success, const CSimulatorInfo &simulator)
|
void CDbOwnModelsComponent::ps_onOwnModelsLoadingFinished(const CStatusMessage &status, const CSimulatorInfo &simulator)
|
||||||
{
|
{
|
||||||
Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "Expect single simulator");
|
Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "Expect single simulator");
|
||||||
if (success && this->m_modelLoader)
|
if (status.isSuccess() && this->m_modelLoader)
|
||||||
{
|
{
|
||||||
const CAircraftModelList models(this->m_modelLoader->getAircraftModels());
|
const CAircraftModelList models(this->m_modelLoader->getAircraftModels());
|
||||||
const int modelsLoaded = models.size();
|
const int modelsLoaded = models.size();
|
||||||
@@ -456,7 +456,7 @@ namespace BlackGui
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ui->tvp_OwnAircraftModels->clear();
|
ui->tvp_OwnAircraftModels->clear();
|
||||||
CLogMessage(this).error("Loading of models failed, simulator %1") << simulator.toQString();
|
CLogMessage(this).error("Loading of models failed, simulator '%1', details: %2") << simulator.toQString() << status.getMessage();
|
||||||
}
|
}
|
||||||
ui->le_Simulator->setText(simulator.toQString());
|
ui->le_Simulator->setText(simulator.toQString());
|
||||||
ui->comp_SimulatorSelector->setValue(simulator);
|
ui->comp_SimulatorSelector->setValue(simulator);
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ namespace BlackGui
|
|||||||
void ps_loadInstalledModels(const BlackMisc::Simulation::CSimulatorInfo &simulator, BlackMisc::Simulation::IAircraftModelLoader::LoadMode mode, const QString &directory = "");
|
void ps_loadInstalledModels(const BlackMisc::Simulation::CSimulatorInfo &simulator, BlackMisc::Simulation::IAircraftModelLoader::LoadMode mode, const QString &directory = "");
|
||||||
|
|
||||||
//! Model loading finished
|
//! Model loading finished
|
||||||
void ps_onOwnModelsLoadingFinished(bool success, const BlackMisc::Simulation::CSimulatorInfo &simulator);
|
void ps_onOwnModelsLoadingFinished(const BlackMisc::CStatusMessage &status, const BlackMisc::Simulation::CSimulatorInfo &simulator);
|
||||||
|
|
||||||
//! Request simulator models
|
//! Request simulator models
|
||||||
void ps_requestSimulatorModels(const BlackMisc::Simulation::CSimulatorInfo &simulator, BlackMisc::Simulation::IAircraftModelLoader::LoadMode mode, const QString &directory = "");
|
void ps_requestSimulatorModels(const BlackMisc::Simulation::CSimulatorInfo &simulator, BlackMisc::Simulation::IAircraftModelLoader::LoadMode mode, const QString &directory = "");
|
||||||
|
|||||||
@@ -63,8 +63,10 @@ namespace BlackMisc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IAircraftModelLoader::ps_loadFinished(bool success)
|
void IAircraftModelLoader::ps_loadFinished(const CStatusMessage &status, const BlackMisc::Simulation::CSimulatorInfo &simulator)
|
||||||
{
|
{
|
||||||
|
// remark: in the past status used to be bool, now it is CStatusMessage
|
||||||
|
// so there is some redundancy here between status and m_loadingMessages
|
||||||
this->m_loadingInProgress = false;
|
this->m_loadingInProgress = false;
|
||||||
if (this->m_loadingMessages.hasWarningOrErrorMessages())
|
if (this->m_loadingMessages.hasWarningOrErrorMessages())
|
||||||
{
|
{
|
||||||
@@ -72,13 +74,14 @@ namespace BlackMisc
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CLogMessage(this).info("Loading finished, success %1") << boolToYesNo(success);
|
CLogMessage(this).info("Loading finished, success '%1' for '%2'") << status.getMessage() << simulator.toQString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IAircraftModelLoader::ps_cacheChanged(const CSimulatorInfo &simInfo)
|
void IAircraftModelLoader::ps_cacheChanged(const CSimulatorInfo &simInfo)
|
||||||
{
|
{
|
||||||
emit this->loadingFinished(true, simInfo);
|
static const CStatusMessage status(this, CStatusMessage::SeverityInfo, "Cached changed");
|
||||||
|
emit this->loadingFinished(status, simInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList IAircraftModelLoader::getModelDirectoriesOrDefault() const
|
QStringList IAircraftModelLoader::getModelDirectoriesOrDefault() const
|
||||||
@@ -130,7 +133,8 @@ namespace BlackMisc
|
|||||||
const bool useCachedData = !mode.testFlag(CacheSkipped) && this->hasCachedData();
|
const bool useCachedData = !mode.testFlag(CacheSkipped) && this->hasCachedData();
|
||||||
if (useCachedData && (mode.testFlag(CacheFirst) || mode.testFlag(CacheOnly)))
|
if (useCachedData && (mode.testFlag(CacheFirst) || mode.testFlag(CacheOnly)))
|
||||||
{
|
{
|
||||||
emit loadingFinished(true, this->getSimulator());
|
static const CStatusMessage status(this, CStatusMessage::SeverityInfo, "Using cached data");
|
||||||
|
emit loadingFinished(status, this->getSimulator());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (useCachedData && mode.testFlag(CacheUntilNewer))
|
else if (useCachedData && mode.testFlag(CacheUntilNewer))
|
||||||
@@ -138,7 +142,8 @@ namespace BlackMisc
|
|||||||
//! \todo currently too slow with remote files, does not make sense with that overhead
|
//! \todo currently too slow with remote files, does not make sense with that overhead
|
||||||
if (!this->areModelFilesUpdated())
|
if (!this->areModelFilesUpdated())
|
||||||
{
|
{
|
||||||
emit loadingFinished(true, this->getSimulator());
|
static const CStatusMessage status(this, CStatusMessage::SeverityInfo, "No updated model files");
|
||||||
|
emit loadingFinished(status, this->getSimulator());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ namespace BlackMisc
|
|||||||
|
|
||||||
signals:
|
signals:
|
||||||
//! Parsing is finished or cache has been loaded
|
//! Parsing is finished or cache has been loaded
|
||||||
void loadingFinished(bool success, const BlackMisc::Simulation::CSimulatorInfo &simulator);
|
void loadingFinished(const BlackMisc::CStatusMessage &status, const BlackMisc::Simulation::CSimulatorInfo &simulator);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//! Constructor
|
//! Constructor
|
||||||
@@ -178,7 +178,7 @@ namespace BlackMisc
|
|||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
//! Loading finished, also logs messages
|
//! Loading finished, also logs messages
|
||||||
void ps_loadFinished(bool success);
|
void ps_loadFinished(const CStatusMessage &status, const CSimulatorInfo &simulator);
|
||||||
|
|
||||||
//! A cache has been changed
|
//! A cache has been changed
|
||||||
void ps_cacheChanged(const CSimulatorInfo &simInfo);
|
void ps_cacheChanged(const CSimulatorInfo &simInfo);
|
||||||
|
|||||||
@@ -65,6 +65,9 @@ namespace BlackMisc
|
|||||||
|
|
||||||
void CAircraftCfgParser::startLoadingFromDisk(LoadMode mode, const ModelConsolidation &modelConsolidation, const QString &directory)
|
void CAircraftCfgParser::startLoadingFromDisk(LoadMode mode, const ModelConsolidation &modelConsolidation, const QString &directory)
|
||||||
{
|
{
|
||||||
|
static const CStatusMessage statusLoadingOk(this, CStatusMessage::SeverityInfo, "Aircraft config parser loaded data");
|
||||||
|
static const CStatusMessage statusLoadingError(this, CStatusMessage::SeverityError, "Aircraft config parser did not load data");
|
||||||
|
|
||||||
const CSimulatorInfo simulator = this->getSimulator();
|
const CSimulatorInfo simulator = this->getSimulator();
|
||||||
const QString modelDirectory(!directory.isEmpty() ? directory : this->m_settings.getFirstModelDirectoryOrDefault(simulator)); // expect only one directory
|
const QString modelDirectory(!directory.isEmpty() ? directory : this->m_settings.getFirstModelDirectoryOrDefault(simulator)); // expect only one directory
|
||||||
const QStringList excludedDirectoryPatterns(this->m_settings.getModelExcludeDirectoryPatternsOrDefault(simulator)); // copy
|
const QStringList excludedDirectoryPatterns(this->m_settings.getModelExcludeDirectoryPatternsOrDefault(simulator)); // copy
|
||||||
@@ -100,11 +103,13 @@ namespace BlackMisc
|
|||||||
this->setCachedModels(models, simulator); // not thread safe
|
this->setCachedModels(models, simulator); // not thread safe
|
||||||
}
|
}
|
||||||
// currently I treat no data as error
|
// currently I treat no data as error
|
||||||
emit this->loadingFinished(hasData, simulator);
|
emit this->loadingFinished(hasData ? statusLoadingOk : statusLoadingError, simulator);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
emit this->loadingFinished(false, simulator);
|
CStatusMessage status = this->m_loadingMessages.toSingleMessage();
|
||||||
|
status.setSeverity(CStatusMessage::SeverityError);
|
||||||
|
emit this->loadingFinished(status, simulator);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -121,7 +126,7 @@ namespace BlackMisc
|
|||||||
this->setCachedModels(models); // not thread safe
|
this->setCachedModels(models); // not thread safe
|
||||||
}
|
}
|
||||||
// currently I treat no data as error
|
// currently I treat no data as error
|
||||||
emit this->loadingFinished(hasData, simulator);
|
emit this->loadingFinished(hasData ? statusLoadingOk : statusLoadingError, simulator);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ namespace BlackMisc
|
|||||||
if (modelDirectory.isEmpty())
|
if (modelDirectory.isEmpty())
|
||||||
{
|
{
|
||||||
this->clearCache();
|
this->clearCache();
|
||||||
emit loadingFinished(false, simulator);
|
emit loadingFinished(CStatusMessage(this, CStatusMessage::SeverityError, "Model directory '%1' is empty") << modelDirectory, simulator);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,7 +123,7 @@ namespace BlackMisc
|
|||||||
void CAircraftModelLoaderXPlane::updateInstalledModels(const CAircraftModelList &models)
|
void CAircraftModelLoaderXPlane::updateInstalledModels(const CAircraftModelList &models)
|
||||||
{
|
{
|
||||||
this->setCachedModels(models);
|
this->setCachedModels(models);
|
||||||
emit loadingFinished(true, this->getSimulator());
|
emit loadingFinished(CStatusMessage(this, CStatusMessage::SeverityInfo, "Updated '%1' models") << models.size(), this->getSimulator());
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CAircraftModelLoaderXPlane::CSLPlane::getModelName() const
|
QString CAircraftModelLoaderXPlane::CSLPlane::getModelName() const
|
||||||
|
|||||||
Reference in New Issue
Block a user