diff --git a/src/blackgui/components/dbloadoverviewcomponent.cpp b/src/blackgui/components/dbloadoverviewcomponent.cpp index c2a901d0e..ca52e6351 100644 --- a/src/blackgui/components/dbloadoverviewcomponent.cpp +++ b/src/blackgui/components/dbloadoverviewcomponent.cpp @@ -155,8 +155,6 @@ namespace BlackGui { if (!sGui) { return; } if (!sGui->hasWebDataServices()) { return; } - if (m_setValuesInProgress) { return; } - m_setValuesInProgress = true; // avoid processEvent (canConnect) calling this again before done ui->le_AircraftIcaoCacheCount->setText(cacheCountForEntity(CEntityFlags::AircraftIcaoEntity)); ui->le_AirlinesIcaoCacheCount->setText(cacheCountForEntity(CEntityFlags::AirlineIcaoEntity)); @@ -207,15 +205,26 @@ namespace BlackGui ui->le_DistributorsSharedFileTs->setText(sharedFileTimestampForEntity(CEntityFlags::DistributorEntity)); // DB URL - static const QString imgOk(":/diagona/icons/diagona/icons/tick.png"); - static const QString imgFailed(":/diagona/icons/diagona/icons/cross-script.png"); const QString dbUrlHtml("  %3"); const QString url = sGui->getGlobalSetup().getDbHomePageUrl().getFullUrl(); bool canConnect = sGui->isSwiftDbAccessible(); - ui->lbl_DatabaseUrl->setText(dbUrlHtml.arg(canConnect ? imgOk : imgFailed, url, url)); + ui->lbl_DatabaseUrl->setText(dbUrlHtml.arg(canConnect ? m_imgOk : m_imgFailed, url, url)); ui->lbl_DatabaseUrl->setToolTip(url); // Shared URLs + this->setSharedUrlValues(); + + // Indicator + this->hideLoading(); + } + + void CDbLoadOverviewComponent::setSharedUrlValues() + { + if (m_sharedValueCheckInProgress) { return; } + if ((QDateTime::currentMSecsSinceEpoch() - m_sharedLastCheck) < 5000) { return; } // do not check too often + + m_sharedValueCheckInProgress = true; // avoid processEvent (canConnect) calling this again before done + const CUrlList sharedUrls(sGui->getGlobalSetup().getSwiftSharedUrls()); const QString valueHtml(" %2"); const QString urlLinkHtml("%2"); @@ -226,12 +235,12 @@ namespace BlackGui if (!sGui || sGui->isShuttingDown()) { // shutdown during connect test - m_setValuesInProgress = false; + m_sharedValueCheckInProgress = false; return; } - canConnect = CNetworkUtils::canConnect(sharedUrl); + const bool canConnect = CNetworkUtils::canConnect(sharedUrl); values.push_back( - valueHtml.arg(canConnect ? imgOk : imgFailed, urlLinkHtml.arg(sharedUrl.getFullUrl(), sharedUrl.getHost())) + valueHtml.arg(canConnect ? m_imgOk : m_imgFailed, urlLinkHtml.arg(sharedUrl.getFullUrl(), sharedUrl.getHost())) ); } @@ -243,9 +252,8 @@ namespace BlackGui currentlyUsedSharedUrl.isEmpty() ? "No shared URL" : "currently used: " + currentlyUsedSharedUrl ); - // Indicator - this->hideLoading(); - m_setValuesInProgress = false; + m_sharedLastCheck = QDateTime::currentMSecsSinceEpoch(); + m_sharedValueCheckInProgress = false; } bool CDbLoadOverviewComponent::isInitialized() const diff --git a/src/blackgui/components/dbloadoverviewcomponent.h b/src/blackgui/components/dbloadoverviewcomponent.h index 9edb9d8b0..ae2fa6beb 100644 --- a/src/blackgui/components/dbloadoverviewcomponent.h +++ b/src/blackgui/components/dbloadoverviewcomponent.h @@ -70,7 +70,10 @@ namespace BlackGui private: QScopedPointer ui; BlackMisc::CDigestSignal m_dsTriggerGuiUpdate { this, &CDbLoadOverviewComponent::setGuiValues, 2500, 5 }; - bool m_setValuesInProgress = false; //!< setting values in progress, needed because of CNetworkUtils::canConnect check (processing events) + qint64 m_sharedLastCheck = -1; //!< when shared URLs were last checked + bool m_sharedValueCheckInProgress = false; //!< setting values in progress, needed because of CNetworkUtils::canConnect check (processing events) + const QString m_imgOk = ":/diagona/icons/diagona/icons/tick.png"; + const QString m_imgFailed = ":/diagona/icons/diagona/icons/cross-script.png"; //! Trigger loading from DB void triggerLoadingFromDb(BlackMisc::Network::CEntityFlags::Entity entities); @@ -90,6 +93,9 @@ namespace BlackGui //! Init the value panel void setGuiValues(); + //! Shared URL values + void setSharedUrlValues(); + //! Data have been loaded void dataLoaded(BlackMisc::Network::CEntityFlags::Entity entities, BlackMisc::Network::CEntityFlags::ReadState state, int number);