First model set wizard improvements

* overlay messages
* hide load indicator in case of a failure
This commit is contained in:
Klaus Basan
2019-03-26 00:24:36 +01:00
committed by Mat Sutcliffe
parent 837fc86b7e
commit 048c20a2a3
3 changed files with 23 additions and 7 deletions

View File

@@ -627,6 +627,8 @@ namespace BlackGui
void CDbOwnModelsComponent::onModelLoaderLoadingFinished(const CStatusMessageList &statusMessages, const CSimulatorInfo &simulator, IAircraftModelLoader::LoadFinishedInfo info)
{
Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "Expect single simulator");
bool hideIndicator = false; // hide in case loading failed
if (IAircraftModelLoader::isLoadedInfo(info) && m_modelLoader)
{
const CAircraftModelList models(m_modelLoader->getCachedModels(simulator));
@@ -637,6 +639,7 @@ namespace BlackGui
{
// loading ok, but no data
m = CLogMessage(this).warning(u"Loading completed for simulator '%1', but no models") << simulator;
hideIndicator = true;
}
else
{
@@ -655,10 +658,12 @@ namespace BlackGui
else if (info == IAircraftModelLoader::LoadingSkipped)
{
CLogMessage(this).error(u"Loading of models skipped, simulator '%1'") << simulator.toQString();
hideIndicator = true;
}
else
{
ui->tvp_OwnAircraftModels->clear();
hideIndicator = true;
CLogMessage(this).error(u"Loading of models failed, simulator '%1'") << simulator.toQString();
}
@@ -673,7 +678,9 @@ namespace BlackGui
// no issues
timeoutMs = 5000;
}
this->showOverlayMessages(statusMessages, false, timeoutMs);
if (hideIndicator) { ui->tvp_OwnAircraftModels->hideLoadIndicatorForced(); }
// cache loads may occur in background, do not adjust UI settings
if (info == IAircraftModelLoader::CacheLoaded) { return; }

View File

@@ -76,7 +76,7 @@ namespace BlackGui
const CSimulatorInfo simulator = ui->comp_SimulatorSelector->getValue();
ui->le_Simulator->setText(simulator.toQString(true));
//! \fixme maybe it would be better to set those in stylesheet file
//! \fixme hardcoded style sheet
ui->pb_SaveAsSetForSimulator->setStyleSheet("padding-left: 3px; padding-right: 3px;");
connect(ui->pb_CreateNewSet, &QPushButton::clicked, this, &CDbOwnModelSetComponent::buttonClicked);
@@ -233,8 +233,17 @@ namespace BlackGui
const CAircraftModelList ownModelSet(ui->tvp_OwnModelSet->container());
if (!ownModelSet.isEmpty())
{
const CStatusMessage m = this->setCachedModels(ownModelSet, this->getSelectedSimulator());
const CSimulatorInfo sim = this->getSelectedSimulator();
const CStatusMessage m = this->setCachedModels(ownModelSet, sim);
CLogMessage::preformatted(m);
if (m.isSuccess())
{
this->showMappingComponentOverlayHtmlMessage(QStringLiteral("Save model set for '%1'").arg(sim.toQString(true)), 5000);
}
else
{
this->showMappingComponentOverlayMessage(m);
}
}
return;
}
@@ -268,7 +277,7 @@ namespace BlackGui
if (canSave)
{
this->setSaveFileName(this->getModelSetSimulator());
ui->pb_SaveAsSetForSimulator->setText(QStringLiteral("save %1").arg(this->getModelSetSimulator().toQString(true)));
ui->pb_SaveAsSetForSimulator->setText(QStringLiteral("save '%1'").arg(this->getModelSetSimulator().toQString(true)));
}
else
{

View File

@@ -63,10 +63,10 @@ namespace BlackGui
Q_ASSERT_X(s, Q_FUNC_INFO, "Cannot connect models signal");
connect(ui->pb_ModelSet, &QPushButton::clicked, this, &CFirstModelSetComponent::openOwnModelSetDialog);
connect(ui->pb_Models, &QPushButton::clicked, this, &CFirstModelSetComponent::openOwnModelsDialog);
connect(ui->pb_Models, &QPushButton::clicked, this, &CFirstModelSetComponent::openOwnModelsDialog);
connect(ui->pb_ModelsTriggerReload, &QPushButton::clicked, this, &CFirstModelSetComponent::openOwnModelsDialog);
connect(ui->pb_ChangeModelDir, &QPushButton::clicked, this, &CFirstModelSetComponent::changeModelDirectory);
connect(ui->pb_ClearModelDir, &QPushButton::clicked, this, &CFirstModelSetComponent::changeModelDirectory);
connect(ui->pb_ClearModelDir, &QPushButton::clicked, this, &CFirstModelSetComponent::changeModelDirectory);
connect(ui->pb_CreateModelSet, &QPushButton::clicked, this, &CFirstModelSetComponent::createModelSet);
}
@@ -77,7 +77,7 @@ namespace BlackGui
{
if (!simulator.isSingleSimulator())
{
//! \fixme KB 2019-01 reported by RR/crash dump sometimes happening and leading to ASSERT/CTD avoiding the "crash" to better undes
//! \fixme KB 2019-01 reported by RR/crash dump sometimes happening and leading to ASSERT/CTD avoiding the "crash" for better infos
if (CBuildConfig::isLocalDeveloperDebugBuild()) { BLACK_VERIFY_X(false, Q_FUNC_INFO, "Need single simulator"); }
CLogMessage(this).error(u"Changing to non-single simulator %1 ignored") << simulator.toQString();
return;
@@ -168,8 +168,8 @@ namespace BlackGui
void CFirstModelSetComponent::openOwnModelsDialog()
{
if (!sGui || sGui->isShuttingDown() || !sGui->getWebDataServices()) { return; }
if (!m_modelsDialog) { return; }
if (!sGui || sGui->isShuttingDown() || !sGui->getWebDataServices()) { return; }
const bool reload = (QObject::sender() == ui->pb_ModelsTriggerReload);
const CSimulatorInfo simulator = ui->comp_SimulatorSelector->getValue();