diff --git a/src/blackgui/components/dbloadoverviewcomponent.cpp b/src/blackgui/components/dbloadoverviewcomponent.cpp
index 09bbbec58..e383d44cb 100644
--- a/src/blackgui/components/dbloadoverviewcomponent.cpp
+++ b/src/blackgui/components/dbloadoverviewcomponent.cpp
@@ -40,30 +40,30 @@ namespace BlackGui
ui->lbl_SharedUrls->setTextInteractionFlags(Qt::TextBrowserInteraction);
ui->lbl_SharedUrls->setOpenExternalLinks(true);
- connect(ui->tb_DbReloadAircraft, &QToolButton::pressed, this, &CDbLoadOverviewComponent::ps_refreshDbPressed);
- connect(ui->tb_DbReloadAirlines, &QToolButton::pressed, this, &CDbLoadOverviewComponent::ps_refreshDbPressed);
- connect(ui->tb_DbReloadAirports, &QToolButton::pressed, this, &CDbLoadOverviewComponent::ps_refreshDbPressed);
- connect(ui->tb_DbReloadCountries, &QToolButton::pressed, this, &CDbLoadOverviewComponent::ps_refreshDbPressed);
- connect(ui->tb_DbReloadLiveries, &QToolButton::pressed, this, &CDbLoadOverviewComponent::ps_refreshDbPressed);
- connect(ui->tb_DbReloadModels, &QToolButton::pressed, this, &CDbLoadOverviewComponent::ps_refreshDbPressed);
- connect(ui->tb_DbReloadDistributors, &QToolButton::pressed, this, &CDbLoadOverviewComponent::ps_refreshDbPressed);
+ connect(ui->tb_DbReloadAircraft, &QToolButton::pressed, this, &CDbLoadOverviewComponent::refreshDbPressed);
+ connect(ui->tb_DbReloadAirlines, &QToolButton::pressed, this, &CDbLoadOverviewComponent::refreshDbPressed);
+ connect(ui->tb_DbReloadAirports, &QToolButton::pressed, this, &CDbLoadOverviewComponent::refreshDbPressed);
+ connect(ui->tb_DbReloadCountries, &QToolButton::pressed, this, &CDbLoadOverviewComponent::refreshDbPressed);
+ connect(ui->tb_DbReloadLiveries, &QToolButton::pressed, this, &CDbLoadOverviewComponent::refreshDbPressed);
+ connect(ui->tb_DbReloadModels, &QToolButton::pressed, this, &CDbLoadOverviewComponent::refreshDbPressed);
+ connect(ui->tb_DbReloadDistributors, &QToolButton::pressed, this, &CDbLoadOverviewComponent::refreshDbPressed);
- connect(ui->tb_SharedReloadAircraft, &QToolButton::pressed, this, &CDbLoadOverviewComponent::ps_refreshSharedPressed);
- connect(ui->tb_SharedReloadAirlines, &QToolButton::pressed, this, &CDbLoadOverviewComponent::ps_refreshSharedPressed);
- connect(ui->tb_SharedReloadAirports, &QToolButton::pressed, this, &CDbLoadOverviewComponent::ps_refreshSharedPressed);
- connect(ui->tb_SharedReloadCountries, &QToolButton::pressed, this, &CDbLoadOverviewComponent::ps_refreshSharedPressed);
- connect(ui->tb_SharedReloadLiveries, &QToolButton::pressed, this, &CDbLoadOverviewComponent::ps_refreshSharedPressed);
- connect(ui->tb_SharedReloadModels, &QToolButton::pressed, this, &CDbLoadOverviewComponent::ps_refreshSharedPressed);
- connect(ui->tb_SharedReloadDistributors, &QToolButton::pressed, this, &CDbLoadOverviewComponent::ps_refreshSharedPressed);
+ connect(ui->tb_SharedReloadAircraft, &QToolButton::pressed, this, &CDbLoadOverviewComponent::refreshSharedPressed);
+ connect(ui->tb_SharedReloadAirlines, &QToolButton::pressed, this, &CDbLoadOverviewComponent::refreshSharedPressed);
+ connect(ui->tb_SharedReloadAirports, &QToolButton::pressed, this, &CDbLoadOverviewComponent::refreshSharedPressed);
+ connect(ui->tb_SharedReloadCountries, &QToolButton::pressed, this, &CDbLoadOverviewComponent::refreshSharedPressed);
+ connect(ui->tb_SharedReloadLiveries, &QToolButton::pressed, this, &CDbLoadOverviewComponent::refreshSharedPressed);
+ connect(ui->tb_SharedReloadModels, &QToolButton::pressed, this, &CDbLoadOverviewComponent::refreshSharedPressed);
+ connect(ui->tb_SharedReloadDistributors, &QToolButton::pressed, this, &CDbLoadOverviewComponent::refreshSharedPressed);
connect(ui->pb_LoadAllFromDB, &QPushButton::pressed, this, &CDbLoadOverviewComponent::loadAllFromDb);
connect(ui->pb_LoadAllFromShared, &QPushButton::pressed, this, &CDbLoadOverviewComponent::loadAllFromShared);
- connect(this, &CDbLoadOverviewComponent::ps_triggerDigestGuiUpdate, this, &CDbLoadOverviewComponent::ps_setValues);
+ connect(this, &CDbLoadOverviewComponent::ps_triggerDigestGuiUpdate, this, &CDbLoadOverviewComponent::setGuiValues);
if (sGui->hasWebDataServices())
{
- connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbLoadOverviewComponent::ps_dataLoaded);
- QTimer::singleShot(10 * 1000, this, &CDbLoadOverviewComponent::ps_loadInfoObjects);
+ connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CDbLoadOverviewComponent::dataLoaded);
+ QTimer::singleShot(10 * 1000, this, &CDbLoadOverviewComponent::loadInfoObjects);
}
}
@@ -72,7 +72,7 @@ namespace BlackGui
void CDbLoadOverviewComponent::display()
{
- this->ps_setValues();
+ m_dsTriggerGuiUpdate.inputSignal();
}
void CDbLoadOverviewComponent::showVisibleDbRefreshButtons(bool visible)
@@ -127,10 +127,12 @@ namespace BlackGui
this->triggerLoadingFromSharedFiles(CEntityFlags::AllDbEntitiesNoInfoObjects);
}
- void CDbLoadOverviewComponent::ps_setValues()
+ void CDbLoadOverviewComponent::setGuiValues()
{
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));
@@ -184,7 +186,7 @@ namespace BlackGui
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");
- QString url = sGui->getGlobalSetup().getDbHomePageUrl().getFullUrl();
+ const QString url = sGui->getGlobalSetup().getDbHomePageUrl().getFullUrl();
bool canConnect = CNetworkUtils::canConnect(sGui->getGlobalSetup().getDbHomePageUrl());
ui->lbl_DatabaseUrl->setText(dbUrlHtml.arg(canConnect ? imgOk : imgFailed, url, url));
ui->lbl_DatabaseUrl->setToolTip(url);
@@ -198,16 +200,25 @@ namespace BlackGui
QString allRowsHtml;
for (const CUrl &sharedUrl : sharedUrls)
{
+ if (!sGui || sGui->isShuttingDown())
+ {
+ // shutdown during connect test
+ m_setValuesInProgress = false;
+ return;
+ }
canConnect = CNetworkUtils::canConnect(sharedUrl);
allRowsHtml += rowHtml.arg(canConnect ? imgOk : imgFailed, urlLinkHtml.arg(sharedUrl.getFullUrl(), sharedUrl.getHost()));
- if (!sGui || sGui->isShuttingDown()) { return; } // shutdown during connect test
}
ui->lbl_SharedUrls->setText(tableHtml.arg(allRowsHtml.trimmed()));
- ui->lbl_SharedUrls->setToolTip(sGui->getWebDataServices()->getDbReaderCurrentSharedDbDataUrl().toQString());
ui->lbl_SharedUrls->setMinimumHeight(10 + (18 * sharedUrls.size()));
+ const QString currentlyUsedSharedUrl = sGui->getWebDataServices()->getDbReaderCurrentSharedDbDataUrl().toQString();
+ ui->lbl_SharedUrls->setToolTip(
+ currentlyUsedSharedUrl.isEmpty() ? "No shared URL" : "currently used: " + currentlyUsedSharedUrl
+ );
// Indicator
this->hideLoading();
+ m_setValuesInProgress = false;
}
bool CDbLoadOverviewComponent::isInitialized() const
@@ -263,9 +274,9 @@ namespace BlackGui
sGui->getWebDataServices()->admitDbCaches(CEntityFlags::AllDbEntities);
}
- void CDbLoadOverviewComponent::ps_refreshDbPressed()
+ void CDbLoadOverviewComponent::refreshDbPressed()
{
- if (this->m_loadInProgress) { return; }
+ if (m_loadInProgress) { return; }
const QObject *sender = QObject::sender();
const CEntityFlags::Entity entity = CEntityFlags::singleEntityByName(sender->objectName());
this->triggerLoadingFromDb(entity);
@@ -273,12 +284,13 @@ namespace BlackGui
void CDbLoadOverviewComponent::triggerLoadingFromDb(CEntityFlags::Entity entities)
{
- if (this->m_loadInProgress) { return; }
+ Q_ASSERT_X(sGui, Q_FUNC_INFO, "Missing sGui");
+ if (m_loadInProgress) { return; }
// DB entities
const CEntityFlags::Entity triggeredEntities = sGui->getWebDataServices()->triggerLoadingDirectlyFromDb(entities);
if (triggeredEntities == CEntityFlags::NoEntity) { return; }
- this->m_loadInProgress = true;
+ m_loadInProgress = true;
this->showLoading();
// shared files ts and DB info objects
@@ -286,9 +298,9 @@ namespace BlackGui
sGui->getWebDataServices()->triggerReadOfDbInfoObjects();
}
- void CDbLoadOverviewComponent::ps_refreshSharedPressed()
+ void CDbLoadOverviewComponent::refreshSharedPressed()
{
- if (this->m_loadInProgress) { return; }
+ if (m_loadInProgress) { return; }
const QObject *sender = QObject::sender();
const CEntityFlags::Entity entity = CEntityFlags::singleEntityByName(sender->objectName());
this->triggerLoadingFromSharedFiles(entity);
@@ -296,30 +308,30 @@ namespace BlackGui
void CDbLoadOverviewComponent::triggerLoadingFromSharedFiles(CEntityFlags::Entity entities)
{
- if (this->m_loadInProgress) { return; }
+ if (m_loadInProgress) { return; }
// DB entities
const CEntityFlags::Entity triggeredEntities = sGui->getWebDataServices()->triggerLoadingDirectlyFromSharedFiles(entities, true);
if (triggeredEntities == CEntityFlags::NoEntity) { return; }
- this->m_loadInProgress = true;
+ m_loadInProgress = true;
this->showLoading();
// shared files ts
sGui->getWebDataServices()->triggerReadOfSharedInfoObjects();
}
- void CDbLoadOverviewComponent::ps_dataLoaded(CEntityFlags::Entity entities, CEntityFlags::ReadState state, int number)
+ void CDbLoadOverviewComponent::dataLoaded(CEntityFlags::Entity entities, CEntityFlags::ReadState state, int number)
{
Q_UNUSED(number);
if (!CEntityFlags::isFinishedReadState(state)) return;
if (!entities.testFlag(CEntityFlags::SharedInfoObjectEntity) && entities.testFlag(CEntityFlags::DbInfoObjectEntity) && !CEntityFlags::anySwiftDbEntity(entities)) { return; }
- this->m_loadInProgress = false;
- emit this->ps_triggerDigestGuiUpdate();
+ m_loadInProgress = false;
+ m_dsTriggerGuiUpdate.inputSignal();
}
- void CDbLoadOverviewComponent::ps_loadInfoObjects()
+ void CDbLoadOverviewComponent::loadInfoObjects()
{
- if (this->m_loadInProgress) { return; }
+ if (m_loadInProgress) { return; }
if (!sGui || !sGui->hasWebDataServices()) { return; }
bool direct = false;
@@ -343,7 +355,7 @@ namespace BlackGui
if (direct)
{
- this->m_dsTriggerGuiUpdate.inputSignal();
+ m_dsTriggerGuiUpdate.inputSignal();
}
}
} // ns
diff --git a/src/blackgui/components/dbloadoverviewcomponent.h b/src/blackgui/components/dbloadoverviewcomponent.h
index aa5467215..b0306081e 100644
--- a/src/blackgui/components/dbloadoverviewcomponent.h
+++ b/src/blackgui/components/dbloadoverviewcomponent.h
@@ -68,8 +68,9 @@ namespace BlackGui
private:
QScopedPointer ui;
- BlackMisc::CDigestSignal m_dsTriggerGuiUpdate { this, &CDbLoadOverviewComponent::ps_triggerDigestGuiUpdate, &CDbLoadOverviewComponent::ps_setValues, 750, 4 };
+ BlackMisc::CDigestSignal m_dsTriggerGuiUpdate { this, &CDbLoadOverviewComponent::ps_triggerDigestGuiUpdate, &CDbLoadOverviewComponent::setGuiValues, 2500, 5 };
bool m_loadInProgress = false; //!< data loading in progress
+ bool m_setValuesInProgress = false; //!< setting values in progress, needed because of CNetworkUtils::canConnect check (processing events)
//! Trigger loading from DB
void triggerLoadingFromDb(BlackMisc::Network::CEntityFlags::Entity entities);
@@ -80,6 +81,21 @@ namespace BlackGui
//! Values at least set once
bool isInitialized() const;
+ //! Refresh directly from DB
+ void refreshDbPressed();
+
+ //! Refresh directly from shared files
+ void refreshSharedPressed();
+
+ //! Init the value panel
+ void setGuiValues();
+
+ //! Data have been loaded
+ void dataLoaded(BlackMisc::Network::CEntityFlags::Entity entities, BlackMisc::Network::CEntityFlags::ReadState state, int number);
+
+ //! Load info objects if not already loaded
+ void loadInfoObjects();
+
//! Timestamp
static QString formattedTimestamp(const QDateTime &dateTime);
@@ -103,22 +119,6 @@ namespace BlackGui
//! Admit caches
static void admitCaches();
-
- private slots:
- //! Refresh directly from DB
- void ps_refreshDbPressed();
-
- //! Refresh directly from shared files
- void ps_refreshSharedPressed();
-
- //! Init the value panel
- void ps_setValues();
-
- //! Data have been loaded
- void ps_dataLoaded(BlackMisc::Network::CEntityFlags::Entity entities, BlackMisc::Network::CEntityFlags::ReadState state, int number);
-
- //! Load info objects if not already loaded
- void ps_loadInfoObjects();
};
} // ns
} // ns