diff --git a/src/blackcore/webdataservices.cpp b/src/blackcore/webdataservices.cpp index 6ca44cef5..e8cc99d89 100644 --- a/src/blackcore/webdataservices.cpp +++ b/src/blackcore/webdataservices.cpp @@ -21,6 +21,7 @@ #include "blackcore/vatsim/vatsimmetarreader.h" #include "blackcore/vatsim/vatsimstatusfilereader.h" #include "blackcore/webdataservices.h" +#include "blackmisc/network/networkutils.h" #include "blackmisc/fileutils.h" #include "blackmisc/logcategory.h" #include "blackmisc/logcategorylist.h" @@ -164,7 +165,7 @@ namespace BlackCore initSharedInfoObjectReaderAndTriggerRead(); } - bool CWebDataServices::canConnectSwiftDb() const + bool CWebDataServices::hasConnectedSwiftDb() const { if (!m_icaoDataReader && !m_modelDataReader && !m_airportDataReader && !m_dbInfoDataReader) { return false; } @@ -176,6 +177,12 @@ namespace BlackCore return false; } + bool CWebDataServices::canConnectSwiftDb(bool strict) const + { + if (!strict && this->hasConnectedSwiftDb()) { return true; } + return CNetworkUtils::canConnect(sApp->getGlobalSetup().getDbHomePageUrl()); + } + void CWebDataServices::resetSignalFlags() { m_signalledEntities.clear(); diff --git a/src/blackcore/webdataservices.h b/src/blackcore/webdataservices.h index 41129a9fa..9f172769b 100644 --- a/src/blackcore/webdataservices.h +++ b/src/blackcore/webdataservices.h @@ -395,8 +395,11 @@ namespace BlackCore //! \threadsafe int getSharedInfoObjectCount(BlackMisc::Network::CEntityFlags::Entity entity) const; - //! Can connect to swift DB? - bool canConnectSwiftDb() const; + //! Has already connect swift DB? + bool hasConnectedSwiftDb() const; + + //! Can connect swift DB? + bool canConnectSwiftDb(bool strict = false) const; //! Reset the flags what was already signaled void resetSignalFlags(); diff --git a/src/blackgui/components/datainfoareacomponent.cpp b/src/blackgui/components/datainfoareacomponent.cpp index 497a2a77e..d3f1c84d3 100644 --- a/src/blackgui/components/datainfoareacomponent.cpp +++ b/src/blackgui/components/datainfoareacomponent.cpp @@ -83,7 +83,7 @@ namespace BlackGui bool CDataInfoAreaComponent::writeDbDataToResourceDir() const { - if (!sGui || !sGui->getWebDataServices()->canConnectSwiftDb()) + if (!sGui || !sGui->getWebDataServices()->hasConnectedSwiftDb()) { CLogMessage(this).warning("No connection to DB yet, no new data loaded which can be written"); return false; diff --git a/src/blackgui/components/infobarwebreadersstatuscomponent.cpp b/src/blackgui/components/infobarwebreadersstatuscomponent.cpp index b08312f1b..ad9fe74f5 100644 --- a/src/blackgui/components/infobarwebreadersstatuscomponent.cpp +++ b/src/blackgui/components/infobarwebreadersstatuscomponent.cpp @@ -79,7 +79,7 @@ namespace BlackGui const bool swift = sGui && sGui->hasWebDataServices() && - sGui->getWebDataServices()->canConnectSwiftDb(); + sGui->getWebDataServices()->hasConnectedSwiftDb(); this->led_SwiftDb->setOn(swift); bool allData = hasAllData(); diff --git a/src/blackgui/menus/menuaction.cpp b/src/blackgui/menus/menuaction.cpp index 22680ef6c..7b3555e60 100644 --- a/src/blackgui/menus/menuaction.cpp +++ b/src/blackgui/menus/menuaction.cpp @@ -428,7 +428,7 @@ namespace BlackGui CMenuAction CMenuActions::addMenuStash() { if (this->containsMenu(CMenuAction::pathStash())) { return CMenuAction(); } - const bool canConnectDb = sGui->getWebDataServices()->canConnectSwiftDb(); + const bool canConnectDb = sGui->getWebDataServices()->hasConnectedSwiftDb(); const QString txt(canConnectDb ? "Stash tools" : "Stash tools (Warning: no DB!)"); return this->addMenu(CIcons::appDbStash16(), txt, CMenuAction::pathStash()); }