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);