mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-21 04:45:31 +08:00
Ref T311, avoid crash of model set dialog
- check for nullptr mapping component - disable new set button in dialog
This commit is contained in:
@@ -196,9 +196,10 @@ namespace BlackGui
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDbOwnModelSetComponent::enableButtons(bool firstSet)
|
void CDbOwnModelSetComponent::enableButtons(bool firstSet, bool newSet)
|
||||||
{
|
{
|
||||||
ui->pb_FirstSet->setEnabled(firstSet);
|
ui->pb_FirstSet->setEnabled(firstSet);
|
||||||
|
ui->pb_CreateNewSet->setEnabled(newSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDbOwnModelSetComponent::tabIndexChanged(int index)
|
void CDbOwnModelSetComponent::tabIndexChanged(int index)
|
||||||
@@ -209,6 +210,8 @@ namespace BlackGui
|
|||||||
void CDbOwnModelSetComponent::buttonClicked()
|
void CDbOwnModelSetComponent::buttonClicked()
|
||||||
{
|
{
|
||||||
const QObject *sender = QObject::sender();
|
const QObject *sender = QObject::sender();
|
||||||
|
if (!sender) { return; }
|
||||||
|
|
||||||
if (sender == ui->pb_CreateNewSet)
|
if (sender == ui->pb_CreateNewSet)
|
||||||
{
|
{
|
||||||
this->createNewSet();
|
this->createNewSet();
|
||||||
@@ -312,15 +315,20 @@ namespace BlackGui
|
|||||||
// since we use the componet also in the launcher wizard, mc might not be existing
|
// since we use the componet also in the launcher wizard, mc might not be existing
|
||||||
const CSimulatorInfo simulator(this->getModelSetSimulator());
|
const CSimulatorInfo simulator(this->getModelSetSimulator());
|
||||||
CDbMappingComponent *mc = this->getMappingComponent();
|
CDbMappingComponent *mc = this->getMappingComponent();
|
||||||
if (mc) { mc->setOwnModelsSimulator(simulator); }
|
if (!mc)
|
||||||
|
{
|
||||||
|
CLogMessage(this).error("No mapping component available!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mc->setOwnModelsSimulator(simulator);
|
||||||
if (!m_modelSetFormDialog)
|
if (!m_modelSetFormDialog)
|
||||||
{
|
{
|
||||||
m_modelSetFormDialog.reset(new CDbOwnModelSetFormDialog(this));
|
m_modelSetFormDialog.reset(new CDbOwnModelSetFormDialog(this));
|
||||||
m_modelSetFormDialog->setMappingComponent(this->getMappingComponent());
|
m_modelSetFormDialog->setMappingComponent(this->getMappingComponent());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->getMappingComponent()->getOwnModelsCount() > 0)
|
if (mc->getOwnModelsCount() > 0)
|
||||||
{
|
{
|
||||||
m_modelSetFormDialog->setModal(true);
|
m_modelSetFormDialog->setModal(true);
|
||||||
m_modelSetFormDialog->reloadData();
|
m_modelSetFormDialog->reloadData();
|
||||||
@@ -333,7 +341,7 @@ namespace BlackGui
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
const CStatusMessage m = CStatusMessage(this).error("No model data for %1") << simulator.toQString(true);
|
const CStatusMessage m = CStatusMessage(this).error("No model data for %1") << simulator.toQString(true);
|
||||||
if (mc) { mc->showOverlayMessage(m); }
|
mc->showOverlayMessage(m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ namespace BlackGui
|
|||||||
//! @}
|
//! @}
|
||||||
|
|
||||||
//! Enable buttons
|
//! Enable buttons
|
||||||
void enableButtons(bool firstSet);
|
void enableButtons(bool firstSet, bool newSet);
|
||||||
|
|
||||||
//! Set the model set for a given simulator
|
//! Set the model set for a given simulator
|
||||||
void setModelSet(const BlackMisc::Simulation::CAircraftModelList &models, const BlackMisc::Simulation::CSimulatorInfo &simulator);
|
void setModelSet(const BlackMisc::Simulation::CAircraftModelList &models, const BlackMisc::Simulation::CSimulatorInfo &simulator);
|
||||||
|
|||||||
@@ -42,9 +42,9 @@ namespace BlackGui
|
|||||||
return ui->comp_OwnModelSet;
|
return ui->comp_OwnModelSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDbOwnModelSetDialog::enableButtons(bool firstSet)
|
void CDbOwnModelSetDialog::enableButtons(bool firstSet, bool newSet)
|
||||||
{
|
{
|
||||||
ui->comp_OwnModelSet->enableButtons(firstSet);
|
ui->comp_OwnModelSet->enableButtons(firstSet, newSet);
|
||||||
}
|
}
|
||||||
} // ns
|
} // ns
|
||||||
} // ns
|
} // ns
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ namespace BlackGui
|
|||||||
CDbOwnModelSetComponent *modelSetComponent();
|
CDbOwnModelSetComponent *modelSetComponent();
|
||||||
|
|
||||||
//! Enable buttons
|
//! Enable buttons
|
||||||
void enableButtons(bool firstSet);
|
void enableButtons(bool firstSet, bool newSet);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QScopedPointer<Ui::CDbOwnModelSetDialog> ui;
|
QScopedPointer<Ui::CDbOwnModelSetDialog> ui;
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ namespace BlackGui
|
|||||||
{
|
{
|
||||||
const CSimulatorInfo simulator = ui->comp_SimulatorSelector->getValue();
|
const CSimulatorInfo simulator = ui->comp_SimulatorSelector->getValue();
|
||||||
m_modelSetDialog->setSimulator(simulator);
|
m_modelSetDialog->setSimulator(simulator);
|
||||||
m_modelSetDialog->enableButtons(false);
|
m_modelSetDialog->enableButtons(false, false);
|
||||||
m_modelSetDialog->exec();
|
m_modelSetDialog->exec();
|
||||||
|
|
||||||
// force UI update
|
// force UI update
|
||||||
|
|||||||
Reference in New Issue
Block a user