Use Qt::QueuedConnection for reader -> UI component signal/slots

For DB load overview also text descriptions (long/short) are adjusted
This commit is contained in:
Klaus Basan
2018-08-25 17:23:16 +02:00
parent a40b3b728c
commit 1b92144f40
14 changed files with 38 additions and 13 deletions

View File

@@ -496,8 +496,8 @@ namespace BlackCore
{ {
// never emit when lock is held, deadlock // never emit when lock is held, deadlock
Q_ASSERT_X(CEntityFlags::isSingleEntity(entity), Q_FUNC_INFO, "Expect single entity"); Q_ASSERT_X(CEntityFlags::isSingleEntity(entity), Q_FUNC_INFO, "Expect single entity");
emit this->dataRead(entity, res.isRestricted() ? CEntityFlags::ReadFinishedRestricted : CEntityFlags::ReadFinished, number);
CLogMessage(this).info("Read %1 entities of '%2' from '%3' (%4)") << number << CEntityFlags::flagToString(entity) << res.getUrlString() << res.getLoadTimeStringWithStartedHint(); CLogMessage(this).info("Read %1 entities of '%2' from '%3' (%4)") << number << CEntityFlags::flagToString(entity) << res.getUrlString() << res.getLoadTimeStringWithStartedHint();
emit this->dataRead(entity, res.isRestricted() ? CEntityFlags::ReadFinishedRestricted : CEntityFlags::ReadFinished, number);
} }
void CDatabaseReader::logNoWorkingUrl(CEntityFlags::Entity entity) void CDatabaseReader::logNoWorkingUrl(CEntityFlags::Entity entity)

View File

@@ -42,7 +42,7 @@ namespace BlackGui
ui->tvp_AircraftIcao->setFilterWidget(ui->filter_AircraftIcao); ui->tvp_AircraftIcao->setFilterWidget(ui->filter_AircraftIcao);
ui->tvp_AircraftIcao->menuAddItems(CViewBaseNonTemplate::MenuCopy); ui->tvp_AircraftIcao->menuAddItems(CViewBaseNonTemplate::MenuCopy);
connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbAircraftIcaoComponent::onIcaoRead); connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbAircraftIcaoComponent::onIcaoRead, Qt::QueuedConnection);
this->onIcaoRead(CEntityFlags::AircraftIcaoEntity, CEntityFlags::ReadFinished, sGui->getWebDataServices()->getAircraftIcaoCodesCount()); this->onIcaoRead(CEntityFlags::AircraftIcaoEntity, CEntityFlags::ReadFinished, sGui->getWebDataServices()->getAircraftIcaoCodesCount());
} }

View File

@@ -51,7 +51,7 @@ namespace BlackGui
this->setAcceptedMetaTypeIds({qMetaTypeId<CAircraftIcaoCode>(), qMetaTypeId<CAircraftIcaoCodeList>()}); this->setAcceptedMetaTypeIds({qMetaTypeId<CAircraftIcaoCode>(), qMetaTypeId<CAircraftIcaoCodeList>()});
ui->le_Aircraft->setValidator(new CUpperCaseValidator(this)); ui->le_Aircraft->setValidator(new CUpperCaseValidator(this));
connect(ui->le_Aircraft, &QLineEdit::editingFinished, this, &CDbAircraftIcaoSelectorComponent::onDataChanged); connect(ui->le_Aircraft, &QLineEdit::editingFinished, this, &CDbAircraftIcaoSelectorComponent::onDataChanged);
connect(sApp->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbAircraftIcaoSelectorComponent::onCodesRead); connect(sApp->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbAircraftIcaoSelectorComponent::onCodesRead, Qt::QueuedConnection);
this->onCodesRead(CEntityFlags::AircraftIcaoEntity, CEntityFlags::ReadFinished, sApp->getWebDataServices()->getAircraftIcaoCodesCount()); this->onCodesRead(CEntityFlags::AircraftIcaoEntity, CEntityFlags::ReadFinished, sApp->getWebDataServices()->getAircraftIcaoCodesCount());
} }

View File

@@ -42,7 +42,7 @@ namespace BlackGui
ui->tvp_AirlineIcao->menuAddItems(CViewBaseNonTemplate::MenuCopy); ui->tvp_AirlineIcao->menuAddItems(CViewBaseNonTemplate::MenuCopy);
connect(ui->tvp_AirlineIcao, &CAirlineIcaoCodeView::requestNewBackendData, this, &CDbAirlineIcaoComponent::onReload); connect(ui->tvp_AirlineIcao, &CAirlineIcaoCodeView::requestNewBackendData, this, &CDbAirlineIcaoComponent::onReload);
connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbAirlineIcaoComponent::onIcaoRead); connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbAirlineIcaoComponent::onIcaoRead, Qt::QueuedConnection);
this->onIcaoRead(CEntityFlags::AirlineIcaoEntity, CEntityFlags::ReadFinished, sGui->getWebDataServices()->getAirlineIcaoCodesCount()); this->onIcaoRead(CEntityFlags::AirlineIcaoEntity, CEntityFlags::ReadFinished, sGui->getWebDataServices()->getAirlineIcaoCodesCount());
} }

View File

@@ -43,7 +43,7 @@ namespace BlackGui
this->setAcceptDrops(true); this->setAcceptDrops(true);
this->setAcceptedMetaTypeIds({qMetaTypeId<CAirlineIcaoCode>(), qMetaTypeId<CAirlineIcaoCodeList>()}); this->setAcceptedMetaTypeIds({qMetaTypeId<CAirlineIcaoCode>(), qMetaTypeId<CAirlineIcaoCodeList>()});
connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbAirlineIcaoSelectorBase::onCodesRead); connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbAirlineIcaoSelectorBase::onCodesRead, Qt::QueuedConnection);
// when we already have data, init completers. This can not be done directly in the // when we already have data, init completers. This can not be done directly in the
// constructor due to virtual functions // constructor due to virtual functions

View File

@@ -65,7 +65,7 @@ namespace BlackGui
ui->le_MaxModelsStashed->setValidator(new QIntValidator(10, CDbStashComponent::MaxModelPublished, this)); ui->le_MaxModelsStashed->setValidator(new QIntValidator(10, CDbStashComponent::MaxModelPublished, this));
Q_ASSERT_X(this->getMappingComponent(), Q_FUNC_INFO, "Expect mapping componet"); Q_ASSERT_X(this->getMappingComponent(), Q_FUNC_INFO, "Expect mapping componet");
connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbAutoStashingComponent::onEntitiesRead); connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbAutoStashingComponent::onEntitiesRead, Qt::QueuedConnection);
connect(ui->tb_ResetDescription, &QToolButton::clicked, this, &CDbAutoStashingComponent::resetDescription); connect(ui->tb_ResetDescription, &QToolButton::clicked, this, &CDbAutoStashingComponent::resetDescription);
this->resetDescription(); this->resetDescription();

View File

@@ -39,7 +39,7 @@ namespace BlackGui
ui->tvp_Countries->setFilterWidget(ui->filter_CountryComponent); ui->tvp_Countries->setFilterWidget(ui->filter_CountryComponent);
ui->tvp_Countries->allowDragDrop(true, false); ui->tvp_Countries->allowDragDrop(true, false);
connect(sApp->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbCountryComponent::onCountriesRead); connect(sApp->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbCountryComponent::onCountriesRead, Qt::QueuedConnection);
this->onCountriesRead(CEntityFlags::CountryEntity, CEntityFlags::ReadFinished, sGui->getWebDataServices()->getCountriesCount()); this->onCountriesRead(CEntityFlags::CountryEntity, CEntityFlags::ReadFinished, sGui->getWebDataServices()->getCountriesCount());
} }

View File

@@ -52,7 +52,7 @@ namespace BlackGui
connect(ui->le_CountryName, &QLineEdit::returnPressed, this, &CDbCountrySelectorComponent::onDataChanged); connect(ui->le_CountryName, &QLineEdit::returnPressed, this, &CDbCountrySelectorComponent::onDataChanged);
ui->le_CountryIso->setValidator(new CUpperCaseValidator(this)); ui->le_CountryIso->setValidator(new CUpperCaseValidator(this));
connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbCountrySelectorComponent::onCountriesRead); connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbCountrySelectorComponent::onCountriesRead, Qt::QueuedConnection);
this->onCountriesRead(CEntityFlags::DistributorEntity, CEntityFlags::ReadFinished, sGui->getWebDataServices()->getCountriesCount()); this->onCountriesRead(CEntityFlags::DistributorEntity, CEntityFlags::ReadFinished, sGui->getWebDataServices()->getCountriesCount());
} }

View File

@@ -38,7 +38,7 @@ namespace BlackGui
ui->tvp_Liveries->allowDragDrop(true, false); ui->tvp_Liveries->allowDragDrop(true, false);
ui->tvp_Liveries->menuAddItems(CViewBaseNonTemplate::MenuCopy); ui->tvp_Liveries->menuAddItems(CViewBaseNonTemplate::MenuCopy);
connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbLiveryComponent::onLiveriesRead); connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbLiveryComponent::onLiveriesRead, Qt::QueuedConnection);
this->onLiveriesRead(CEntityFlags::LiveryEntity, CEntityFlags::ReadFinished, sGui->getWebDataServices()->getLiveriesCount()); this->onLiveriesRead(CEntityFlags::LiveryEntity, CEntityFlags::ReadFinished, sGui->getWebDataServices()->getLiveriesCount());
} }

View File

@@ -10,9 +10,10 @@
#include "dbloadoverviewcomponent.h" #include "dbloadoverviewcomponent.h"
#include "ui_dbloadoverviewcomponent.h" #include "ui_dbloadoverviewcomponent.h"
#include "blackgui/guiapplication.h"
#include "blackgui/guiutility.h"
#include "blackcore/webdataservices.h" #include "blackcore/webdataservices.h"
#include "blackcore/db/infodatareader.h" #include "blackcore/db/infodatareader.h"
#include "blackgui/guiapplication.h"
#include "blackmisc/network/networkutils.h" #include "blackmisc/network/networkutils.h"
#include <QPointer> #include <QPointer>
@@ -73,6 +74,7 @@ namespace BlackGui
{ {
if (!myself) { return; } if (!myself) { return; }
this->loadInfoObjects(); this->loadInfoObjects();
this->adjustTextWidth();
}); });
} }
} }
@@ -115,6 +117,7 @@ namespace BlackGui
{ {
// re-center // re-center
this->centerLoadIndicator(); this->centerLoadIndicator();
this->adjustTextWidth();
} }
QFrame::resizeEvent(event); QFrame::resizeEvent(event);
} }
@@ -381,5 +384,24 @@ namespace BlackGui
m_dsTriggerGuiUpdate.inputSignal(); m_dsTriggerGuiUpdate.inputSignal();
} }
} }
void CDbLoadOverviewComponent::adjustTextWidth()
{
const QSize s = this->size();
const QSizeF sizeFont = CGuiUtility::fontMetricsLazyDog43Chars();
const int thresholdW = qRound(sizeFont.width() * 2.0);
if (s.width() > thresholdW)
{
ui->lbl_DbCount->setText("DB count");
ui->lbl_CacheCount->setText("Cache count");
ui->lbl_SharedCount->setText("Shared count");
}
else
{
ui->lbl_DbCount->setText("DB#");
ui->lbl_CacheCount->setText("C#");
ui->lbl_SharedCount->setText("S#");
}
}
} // ns } // ns
} // ns } // ns

View File

@@ -96,6 +96,9 @@ namespace BlackGui
//! Load info objects if not already loaded //! Load info objects if not already loaded
void loadInfoObjects(); void loadInfoObjects();
//! Adjust text width
void adjustTextWidth();
//! Timestamp //! Timestamp
static QString formattedTimestamp(const QDateTime &dateTime); static QString formattedTimestamp(const QDateTime &dateTime);

View File

@@ -45,7 +45,7 @@ namespace BlackGui
if (sGui->hasWebDataServices()) if (sGui->hasWebDataServices())
{ {
c = connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CInfoBarWebReadersStatusBase::dataRead); c = connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CInfoBarWebReadersStatusBase::dataRead, Qt::QueuedConnection);
Q_ASSERT_X(c, Q_FUNC_INFO, "Failed connect"); Q_ASSERT_X(c, Q_FUNC_INFO, "Failed connect");
} }

View File

@@ -139,7 +139,7 @@ namespace BlackGui
connect(ui->tb_Timeout, &QToolButton::clicked, this, &CLoginComponent::toggleTimeout); connect(ui->tb_Timeout, &QToolButton::clicked, this, &CLoginComponent::toggleTimeout);
// web service data // web service data
connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CLoginComponent::onWebServiceDataRead); connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CLoginComponent::onWebServiceDataRead, Qt::QueuedConnection);
// inital setup, if data already available // inital setup, if data already available
this->validateAircraftValues(); this->validateAircraftValues();

View File

@@ -73,7 +73,7 @@ namespace BlackGui
connect(ui->comp_SimulatorSelector, &CSimulatorSelector::changed, this, &CModelMatcherComponent::onSimulatorChanged); connect(ui->comp_SimulatorSelector, &CSimulatorSelector::changed, this, &CModelMatcherComponent::onSimulatorChanged);
connect(ui->pb_ModelMatching, &QPushButton::pressed, this, &CModelMatcherComponent::testModelMatching); connect(ui->pb_ModelMatching, &QPushButton::pressed, this, &CModelMatcherComponent::testModelMatching);
connect(ui->pb_ReverseLookup, &QPushButton::pressed, this, &CModelMatcherComponent::reverseLookup); connect(ui->pb_ReverseLookup, &QPushButton::pressed, this, &CModelMatcherComponent::reverseLookup);
connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CModelMatcherComponent::onWebDataRead); connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CModelMatcherComponent::onWebDataRead, Qt::QueuedConnection);
this->redisplay(); this->redisplay();
} }