From 1b92144f40042a79bc27a96c6b335c0a0a697abe Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 25 Aug 2018 17:23:16 +0200 Subject: [PATCH] Use Qt::QueuedConnection for reader -> UI component signal/slots For DB load overview also text descriptions (long/short) are adjusted --- src/blackcore/db/databasereader.cpp | 2 +- .../components/dbaircrafticaocomponent.cpp | 2 +- .../dbaircrafticaoselectorcomponent.cpp | 2 +- .../components/dbairlineicaocomponent.cpp | 2 +- .../components/dbairlineicaoselectorbase.cpp | 2 +- .../components/dbautostashingcomponent.cpp | 2 +- .../components/dbcountrycomponent.cpp | 2 +- .../components/dbcountryselectorcomponent.cpp | 2 +- src/blackgui/components/dbliverycomponent.cpp | 2 +- .../components/dbloadoverviewcomponent.cpp | 24 ++++++++++++++++++- .../components/dbloadoverviewcomponent.h | 3 +++ .../infobarwebreadersstatuscomponent.cpp | 2 +- src/blackgui/components/logincomponent.cpp | 2 +- .../components/modelmatchercomponent.cpp | 2 +- 14 files changed, 38 insertions(+), 13 deletions(-) diff --git a/src/blackcore/db/databasereader.cpp b/src/blackcore/db/databasereader.cpp index ceb1bbcb3..9813e86a2 100644 --- a/src/blackcore/db/databasereader.cpp +++ b/src/blackcore/db/databasereader.cpp @@ -496,8 +496,8 @@ namespace BlackCore { // never emit when lock is held, deadlock 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(); + emit this->dataRead(entity, res.isRestricted() ? CEntityFlags::ReadFinishedRestricted : CEntityFlags::ReadFinished, number); } void CDatabaseReader::logNoWorkingUrl(CEntityFlags::Entity entity) diff --git a/src/blackgui/components/dbaircrafticaocomponent.cpp b/src/blackgui/components/dbaircrafticaocomponent.cpp index 2313803c4..18799eb01 100644 --- a/src/blackgui/components/dbaircrafticaocomponent.cpp +++ b/src/blackgui/components/dbaircrafticaocomponent.cpp @@ -42,7 +42,7 @@ namespace BlackGui ui->tvp_AircraftIcao->setFilterWidget(ui->filter_AircraftIcao); 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()); } diff --git a/src/blackgui/components/dbaircrafticaoselectorcomponent.cpp b/src/blackgui/components/dbaircrafticaoselectorcomponent.cpp index 9630596dd..42888273c 100644 --- a/src/blackgui/components/dbaircrafticaoselectorcomponent.cpp +++ b/src/blackgui/components/dbaircrafticaoselectorcomponent.cpp @@ -51,7 +51,7 @@ namespace BlackGui this->setAcceptedMetaTypeIds({qMetaTypeId(), qMetaTypeId()}); ui->le_Aircraft->setValidator(new CUpperCaseValidator(this)); 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()); } diff --git a/src/blackgui/components/dbairlineicaocomponent.cpp b/src/blackgui/components/dbairlineicaocomponent.cpp index ed128947e..9d737e749 100644 --- a/src/blackgui/components/dbairlineicaocomponent.cpp +++ b/src/blackgui/components/dbairlineicaocomponent.cpp @@ -42,7 +42,7 @@ namespace BlackGui ui->tvp_AirlineIcao->menuAddItems(CViewBaseNonTemplate::MenuCopy); 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()); } diff --git a/src/blackgui/components/dbairlineicaoselectorbase.cpp b/src/blackgui/components/dbairlineicaoselectorbase.cpp index 03b9f0df5..a7c990228 100644 --- a/src/blackgui/components/dbairlineicaoselectorbase.cpp +++ b/src/blackgui/components/dbairlineicaoselectorbase.cpp @@ -43,7 +43,7 @@ namespace BlackGui this->setAcceptDrops(true); this->setAcceptedMetaTypeIds({qMetaTypeId(), qMetaTypeId()}); - 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 // constructor due to virtual functions diff --git a/src/blackgui/components/dbautostashingcomponent.cpp b/src/blackgui/components/dbautostashingcomponent.cpp index 202c50683..e7c7a784b 100644 --- a/src/blackgui/components/dbautostashingcomponent.cpp +++ b/src/blackgui/components/dbautostashingcomponent.cpp @@ -65,7 +65,7 @@ namespace BlackGui ui->le_MaxModelsStashed->setValidator(new QIntValidator(10, CDbStashComponent::MaxModelPublished, this)); 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); this->resetDescription(); diff --git a/src/blackgui/components/dbcountrycomponent.cpp b/src/blackgui/components/dbcountrycomponent.cpp index 3be839c73..82513290c 100644 --- a/src/blackgui/components/dbcountrycomponent.cpp +++ b/src/blackgui/components/dbcountrycomponent.cpp @@ -39,7 +39,7 @@ namespace BlackGui ui->tvp_Countries->setFilterWidget(ui->filter_CountryComponent); 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()); } diff --git a/src/blackgui/components/dbcountryselectorcomponent.cpp b/src/blackgui/components/dbcountryselectorcomponent.cpp index 1f3d2c367..b9aefe30d 100644 --- a/src/blackgui/components/dbcountryselectorcomponent.cpp +++ b/src/blackgui/components/dbcountryselectorcomponent.cpp @@ -52,7 +52,7 @@ namespace BlackGui connect(ui->le_CountryName, &QLineEdit::returnPressed, this, &CDbCountrySelectorComponent::onDataChanged); 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()); } diff --git a/src/blackgui/components/dbliverycomponent.cpp b/src/blackgui/components/dbliverycomponent.cpp index 5c846e877..2d1d54b37 100644 --- a/src/blackgui/components/dbliverycomponent.cpp +++ b/src/blackgui/components/dbliverycomponent.cpp @@ -38,7 +38,7 @@ namespace BlackGui ui->tvp_Liveries->allowDragDrop(true, false); 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()); } diff --git a/src/blackgui/components/dbloadoverviewcomponent.cpp b/src/blackgui/components/dbloadoverviewcomponent.cpp index d0c0b9d1b..c6f112bc3 100644 --- a/src/blackgui/components/dbloadoverviewcomponent.cpp +++ b/src/blackgui/components/dbloadoverviewcomponent.cpp @@ -10,9 +10,10 @@ #include "dbloadoverviewcomponent.h" #include "ui_dbloadoverviewcomponent.h" +#include "blackgui/guiapplication.h" +#include "blackgui/guiutility.h" #include "blackcore/webdataservices.h" #include "blackcore/db/infodatareader.h" -#include "blackgui/guiapplication.h" #include "blackmisc/network/networkutils.h" #include @@ -73,6 +74,7 @@ namespace BlackGui { if (!myself) { return; } this->loadInfoObjects(); + this->adjustTextWidth(); }); } } @@ -115,6 +117,7 @@ namespace BlackGui { // re-center this->centerLoadIndicator(); + this->adjustTextWidth(); } QFrame::resizeEvent(event); } @@ -381,5 +384,24 @@ namespace BlackGui 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 diff --git a/src/blackgui/components/dbloadoverviewcomponent.h b/src/blackgui/components/dbloadoverviewcomponent.h index d4353cfd3..9edb9d8b0 100644 --- a/src/blackgui/components/dbloadoverviewcomponent.h +++ b/src/blackgui/components/dbloadoverviewcomponent.h @@ -96,6 +96,9 @@ namespace BlackGui //! Load info objects if not already loaded void loadInfoObjects(); + //! Adjust text width + void adjustTextWidth(); + //! Timestamp static QString formattedTimestamp(const QDateTime &dateTime); diff --git a/src/blackgui/components/infobarwebreadersstatuscomponent.cpp b/src/blackgui/components/infobarwebreadersstatuscomponent.cpp index a22bad228..bea6f566e 100644 --- a/src/blackgui/components/infobarwebreadersstatuscomponent.cpp +++ b/src/blackgui/components/infobarwebreadersstatuscomponent.cpp @@ -45,7 +45,7 @@ namespace BlackGui 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"); } diff --git a/src/blackgui/components/logincomponent.cpp b/src/blackgui/components/logincomponent.cpp index 3566adc7d..a0187611e 100644 --- a/src/blackgui/components/logincomponent.cpp +++ b/src/blackgui/components/logincomponent.cpp @@ -139,7 +139,7 @@ namespace BlackGui connect(ui->tb_Timeout, &QToolButton::clicked, this, &CLoginComponent::toggleTimeout); // 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 this->validateAircraftValues(); diff --git a/src/blackgui/components/modelmatchercomponent.cpp b/src/blackgui/components/modelmatchercomponent.cpp index 67764059d..f7ae63ed5 100644 --- a/src/blackgui/components/modelmatchercomponent.cpp +++ b/src/blackgui/components/modelmatchercomponent.cpp @@ -73,7 +73,7 @@ namespace BlackGui connect(ui->comp_SimulatorSelector, &CSimulatorSelector::changed, this, &CModelMatcherComponent::onSimulatorChanged); connect(ui->pb_ModelMatching, &QPushButton::pressed, this, &CModelMatcherComponent::testModelMatching); 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(); }