Ref T149, use new signals/functions to directly change status bar

* timer private
* some formatting
This commit is contained in:
Klaus Basan
2017-09-18 01:02:45 +02:00
committed by Mathew Sutcliffe
parent 8c68f2302c
commit 2d8c2ea930
2 changed files with 25 additions and 17 deletions

View File

@@ -36,12 +36,16 @@ namespace BlackGui
m_timer.setInterval(30 * 1000); m_timer.setInterval(30 * 1000);
m_timer.start(); m_timer.start();
m_timer.setObjectName("CInfoBarWebReadersStatusBase::CheckSwiftDbTimer"); m_timer.setObjectName("CInfoBarWebReadersStatusBase::CheckSwiftDbTimer");
bool c = connect(&m_timer, &QTimer::timeout, this, &CInfoBarWebReadersStatusBase::ps_checkServerAndData); bool c = connect(&m_timer, &QTimer::timeout, this, &CInfoBarWebReadersStatusBase::checkServerAndData);
Q_ASSERT_X(c, Q_FUNC_INFO, "Failed connect");
c = connect(sGui, &CGuiApplication::changedInternetAccessibility, this, &CInfoBarWebReadersStatusBase::accessibilityChanged);
Q_ASSERT_X(c, Q_FUNC_INFO, "Failed connect");
c = connect(sGui, &CGuiApplication::changedSwiftDbAccessibility, this, &CInfoBarWebReadersStatusBase::accessibilityChanged);
Q_ASSERT_X(c, Q_FUNC_INFO, "Failed connect"); Q_ASSERT_X(c, Q_FUNC_INFO, "Failed connect");
if (sGui->hasWebDataServices()) if (sGui->hasWebDataServices())
{ {
c = connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CInfoBarWebReadersStatusBase::ps_dataRead); c = connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CInfoBarWebReadersStatusBase::dataRead);
Q_ASSERT_X(c, Q_FUNC_INFO, "Failed connect"); Q_ASSERT_X(c, Q_FUNC_INFO, "Failed connect");
} }
@@ -67,22 +71,25 @@ namespace BlackGui
this->led_Distributors->setValues(CLedWidget::Yellow, CLedWidget::Black, CLedWidget::Red, shape, "reading", "idle", "failed", 14); this->led_Distributors->setValues(CLedWidget::Yellow, CLedWidget::Black, CLedWidget::Red, shape, "reading", "idle", "failed", 14);
} }
void CInfoBarWebReadersStatusBase::ps_dataRead(CEntityFlags::Entity entity, CEntityFlags::ReadState readState, int count) void CInfoBarWebReadersStatusBase::dataRead(CEntityFlags::Entity entity, CEntityFlags::ReadState readState, int count)
{ {
Q_UNUSED(count); Q_UNUSED(count);
QList<CLedWidget *> leds = this->entityToLeds(entity); QList<CLedWidget *> leds = this->entityToLeds(entity);
if (!leds.isEmpty()) { this->setLedReadStates(leds, readState); } if (!leds.isEmpty()) { this->setLedReadStates(leds, readState); }
} }
void CInfoBarWebReadersStatusBase::ps_checkServerAndData() void CInfoBarWebReadersStatusBase::accessibilityChanged(bool accessible)
{ {
const bool swift = Q_UNUSED(accessible);
sGui && this->checkServerAndData();
sGui->hasWebDataServices() && }
sGui->getWebDataServices()->hasConnectedSwiftDb();
void CInfoBarWebReadersStatusBase::checkServerAndData()
{
const bool swift = sGui && sGui->isSwiftDbAccessible();
this->led_SwiftDb->setOn(swift); this->led_SwiftDb->setOn(swift);
bool allData = hasAllData(); const bool allData = hasAllData();
this->led_DataReady->setOn(allData); this->led_DataReady->setOn(allData);
} }
@@ -97,7 +104,7 @@ namespace BlackGui
void CInfoBarWebReadersStatusBase::setLedReadState(CLedWidget *led, CEntityFlags::ReadState readState) void CInfoBarWebReadersStatusBase::setLedReadState(CLedWidget *led, CEntityFlags::ReadState readState)
{ {
Q_ASSERT_X(led, Q_FUNC_INFO, "no LED"); Q_ASSERT_X(led, Q_FUNC_INFO, "no LED");
int blinkTime = 2.5 * 1000; const int blinkTime = 2.5 * 1000;
switch (readState) switch (readState)
{ {
case CEntityFlags::ReadFinished: case CEntityFlags::ReadFinished:

View File

@@ -37,14 +37,12 @@ namespace BlackGui
public: public:
//!Destructor //!Destructor
~CInfoBarWebReadersStatusBase(); virtual ~CInfoBarWebReadersStatusBase();
//! Init the LEDs //! Init the LEDs
void initLeds(); void initLeds();
protected: protected:
QTimer m_timer { this }; //!< check timer
//! Constructor //! Constructor
explicit CInfoBarWebReadersStatusBase(QWidget *parent = nullptr); explicit CInfoBarWebReadersStatusBase(QWidget *parent = nullptr);
@@ -68,14 +66,17 @@ namespace BlackGui
BlackGui::CLedWidget *led_IcaoAircraft, BlackGui::CLedWidget *led_IcaoAirline, BlackGui::CLedWidget *led_Countries, BlackGui::CLedWidget *led_IcaoAircraft, BlackGui::CLedWidget *led_IcaoAirline, BlackGui::CLedWidget *led_Countries,
BlackGui::CLedWidget *led_Distributors, BlackGui::CLedWidget *led_Liveries, BlackGui::CLedWidget *led_Models); BlackGui::CLedWidget *led_Distributors, BlackGui::CLedWidget *led_Liveries, BlackGui::CLedWidget *led_Models);
private slots:
//! Data have been read //! Data have been read
void ps_dataRead(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState readState, int count); void dataRead(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState readState, int count);
//! DB or network accessibility changed
void accessibilityChanged(bool accessible);
//! Check server status //! Check server status
void ps_checkServerAndData(); void checkServerAndData();
private: private:
QTimer m_timer { this }; //!< check timer
BlackGui::CLedWidget *led_SwiftDb = nullptr; BlackGui::CLedWidget *led_SwiftDb = nullptr;
BlackGui::CLedWidget *led_DataReady = nullptr; BlackGui::CLedWidget *led_DataReady = nullptr;
BlackGui::CLedWidget *led_IcaoAircraft = nullptr; BlackGui::CLedWidget *led_IcaoAircraft = nullptr;
@@ -96,7 +97,7 @@ namespace BlackGui
explicit CInfoBarWebReadersStatusComponent(QWidget *parent = nullptr); explicit CInfoBarWebReadersStatusComponent(QWidget *parent = nullptr);
//!Destructor //!Destructor
~CInfoBarWebReadersStatusComponent(); virtual ~CInfoBarWebReadersStatusComponent();
private: private:
QScopedPointer<Ui::CInfoBarWebReadersStatusComponent> ui; QScopedPointer<Ui::CInfoBarWebReadersStatusComponent> ui;