Mapping component, use digest signals and Qt::QueuedConnection

This commit is contained in:
Klaus Basan
2018-07-20 18:17:23 +02:00
parent 93d33e3130
commit e4866e3de6
2 changed files with 19 additions and 22 deletions

View File

@@ -100,17 +100,17 @@ namespace BlackGui
connect(ui->editor_ModelMapping, &CModelMappingForm::requestStash, this, &CDbMappingComponent::stashCurrentModel);
connect(ui->comp_OwnAircraftModels->view(), &CAircraftModelView::doubleClicked, this, &CDbMappingComponent::onModelRowSelected);
connect(ui->comp_OwnAircraftModels->view(), &CAircraftModelView::modelDataChanged, this, &CDbMappingComponent::onOwnModelsChanged);
connect(ui->comp_OwnAircraftModels->view(), &CAircraftModelView::modelDataChangedDigest, this, &CDbMappingComponent::onOwnModelsChangedDigest, Qt::QueuedConnection);
connect(ui->comp_OwnAircraftModels->view(), &CAircraftModelView::requestStash, this, &CDbMappingComponent::stashSelectedModels);
connect(ui->comp_OwnAircraftModels->view(), &CAircraftModelView::toggledHighlightStashedModels, this, &CDbMappingComponent::onStashedModelsChanged);
connect(ui->comp_OwnAircraftModels->view(), &CAircraftModelView::toggledHighlightStashedModels, this, &CDbMappingComponent::onStashedModelsChangedTriggerDigest);
connect(ui->comp_StashAircraft->view(), &CAircraftModelView::modelDataChanged, this, &CDbMappingComponent::onStashedModelsDataChanged);
connect(ui->comp_StashAircraft->view(), &CAircraftModelView::modelDataChangedDigest, this, &CDbMappingComponent::onStashedModelsDataChangedDigest);
connect(ui->comp_StashAircraft->view(), &CAircraftModelView::doubleClicked, this, &CDbMappingComponent::onModelRowSelected);
connect(ui->comp_StashAircraft->view(), &CAircraftModelView::requestHandlingOfStashDrop, this, &CDbMappingComponent::handleStashDropRequest);
connect(ui->comp_StashAircraft, &CDbStashComponent::stashedModelsChanged, this, &CDbMappingComponent::onStashedModelsChanged);
connect(ui->comp_StashAircraft, &CDbStashComponent::stashedModelsChanged, this, &CDbMappingComponent::onStashedModelsChangedTriggerDigest);
connect(ui->comp_StashAircraft, &CDbStashComponent::modelsSuccessfullyPublished, this, &CDbMappingComponent::onModelsSuccessfullyPublished, Qt::QueuedConnection);
connect(ui->comp_OwnModelSet->view(), &CAircraftModelView::modelDataChanged, this, &CDbMappingComponent::onModelSetChanged);
connect(ui->comp_OwnModelSet->view(), &CAircraftModelView::modelDataChangedDigest, this, &CDbMappingComponent::onModelSetChangedDigest, Qt::QueuedConnection);
connect(ui->comp_OwnModelSet->view(), &CAircraftModelView::requestStash, this, &CDbMappingComponent::stashSelectedModels);
connect(ui->tw_ModelsToBeMapped, &QTabWidget::currentChanged, this, &CDbMappingComponent::onTabIndexChanged);
@@ -119,9 +119,9 @@ namespace BlackGui
connect(ui->comp_OwnModelSet->view(), &CAircraftModelView::doubleClicked, this, &CDbMappingComponent::onModelRowSelected);
// initial values
this->onModelSetChanged(ui->comp_OwnModelSet->view()->rowCount(), ui->comp_OwnModelSet->view()->hasFilter());
this->onStashedModelsDataChanged(ui->comp_StashAircraft->view()->rowCount(), ui->comp_StashAircraft->view()->hasFilter());
this->onOwnModelsChanged(ui->comp_OwnAircraftModels->view()->rowCount(), ui->comp_OwnAircraftModels->view()->hasFilter());
this->onModelSetChangedDigest(ui->comp_OwnModelSet->view()->rowCount(), ui->comp_OwnModelSet->view()->hasFilter());
this->onStashedModelsDataChangedDigest(ui->comp_StashAircraft->view()->rowCount(), ui->comp_StashAircraft->view()->hasFilter());
this->onOwnModelsChangedDigest(ui->comp_OwnAircraftModels->view()->rowCount(), ui->comp_OwnAircraftModels->view()->hasFilter());
// how to display forms
ui->editor_AircraftModel->setSelectOnly();
@@ -156,7 +156,7 @@ namespace BlackGui
connect(ui->tvp_AircraftModelsForVPilot, &CAircraftModelView::modelDataChanged, this, &CDbMappingComponent::onVPilotDataChanged);
connect(&m_vPilotReader, &CVPilotRulesReader::readFinished, this, &CDbMappingComponent::onLoadVPilotDataFinished);
connect(ui->tvp_AircraftModelsForVPilot, &CAircraftModelView::requestStash, this, &CDbMappingComponent::stashSelectedModels);
connect(ui->tvp_AircraftModelsForVPilot, &CAircraftModelView::toggledHighlightStashedModels, this, &CDbMappingComponent::onStashedModelsChanged);
connect(ui->tvp_AircraftModelsForVPilot, &CAircraftModelView::toggledHighlightStashedModels, this, &CDbMappingComponent::onStashedModelsChangedTriggerDigest);
connect(ui->tvp_AircraftModelsForVPilot, &CAircraftModelView::requestUpdate, this, &CDbMappingComponent::requestVPilotDataUpdate);
ui->tvp_AircraftModelsForVPilot->setCustomMenu(new CMappingVPilotMenu(this, true));
@@ -566,9 +566,9 @@ namespace BlackGui
this->onVPilotCacheChanged();
}
void CDbMappingComponent::onStashedModelsChanged()
void CDbMappingComponent::onStashedModelsChangedTriggerDigest()
{
emit this->ps_digestStashedModelsChanged();
m_dsStashedModelsChanged.inputSignal(); // will call onStashedModelsChangedDigest
}
void CDbMappingComponent::onStashedModelsChangedDigest()
@@ -645,7 +645,7 @@ namespace BlackGui
ui->tw_ModelsToBeMapped->setTabText(i, o);
}
void CDbMappingComponent::onOwnModelsChanged(int count, bool withFilter)
void CDbMappingComponent::onOwnModelsChangedDigest(int count, bool withFilter)
{
Q_UNUSED(count);
Q_UNUSED(withFilter);
@@ -709,7 +709,7 @@ namespace BlackGui
Q_UNUSED(selectedItem);
}
void CDbMappingComponent::onStashedModelsDataChanged(int count, bool withFilter)
void CDbMappingComponent::onStashedModelsDataChangedDigest(int count, bool withFilter)
{
Q_UNUSED(count);
Q_UNUSED(withFilter);
@@ -723,7 +723,7 @@ namespace BlackGui
this->updateEditorsWhenApplicable();
}
void CDbMappingComponent::onModelSetChanged(int count, bool withFilter)
void CDbMappingComponent::onModelSetChangedDigest(int count, bool withFilter)
{
Q_UNUSED(count);
Q_UNUSED(withFilter);

View File

@@ -221,9 +221,6 @@ namespace BlackGui
//! Tab index has been changed
void tabIndexChanged(int index);
//! \private Just needed to trigger CDbMappingComponent::ps_onStashedModelsChangedDigest
void ps_digestStashedModelsChanged();
private slots:
//! Add to own model set
void ps_addToOwnModelSet(); // still used with QShortcut
@@ -254,13 +251,13 @@ namespace BlackGui
void onTabIndexChanged(int index);
//! Stashed models changed
void onStashedModelsChanged();
void onStashedModelsChangedTriggerDigest();
//! Stashed models changed
void onStashedModelsChangedDigest();
//! Stash has been changed
void onStashedModelsDataChanged(int count, bool withFilter);
void onStashedModelsDataChangedDigest(int count, bool withFilter);
//! Models have been published successfully
void onModelsSuccessfullyPublished(const BlackMisc::Simulation::CAircraftModelList &models, bool directWrite);
@@ -269,10 +266,10 @@ namespace BlackGui
void handleStashDropRequest(const BlackMisc::Aviation::CAirlineIcaoCode &code) const;
//! Model set has been changed
void onModelSetChanged(int count, bool withFilter);
void onModelSetChangedDigest(int count, bool withFilter);
//! Own models have been changed
void onOwnModelsChanged(int count, bool withFilter);
void onOwnModelsChangedDigest(int count, bool withFilter);
//! Row has been selected
void onModelRowSelected(const QModelIndex &index);
@@ -316,7 +313,7 @@ namespace BlackGui
QScopedPointer<CDbAutoSimulatorStashingComponent> m_autoSimulatorDialog; //!< dialog auto simulator update
QScopedPointer<CDbModelMappingModifyComponent> m_modelModifyDialog; //!< dialog when modifying models
BlackMisc::Simulation::FsCommon::CVPilotRulesReader m_vPilotReader; //!< read vPilot rules
BlackMisc::CDigestSignal m_dsStashedModelsChanged { this, &CDbMappingComponent::ps_digestStashedModelsChanged, &CDbMappingComponent::onStashedModelsChangedDigest, 750, 25 };
BlackMisc::CDigestSignal m_dsStashedModelsChanged { this, &CDbMappingComponent::onStashedModelsChangedDigest, 750, 25 };
BlackMisc::CDataReadOnly<BlackCore::Data::TAuthenticatedDbUser> m_swiftDbUser { this, &CDbMappingComponent::onUserChanged };
const bool vPilotSupport = true; //!< vPilot support (will be removed in future)
bool m_vPilot1stInit = true; //!< vPilot extensions initalized?