/* Copyright (C) 2015 * swift project Community / Contributors * * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, * including this file, may be copied, modified, propagated, or distributed except according to the terms * contained in the LICENSE file. */ //! \file #ifndef BLACKGUI_INFOBARWEBREADERSSTATUSCOMPONENT_H #define BLACKGUI_INFOBARWEBREADERSSTATUSCOMPONENT_H #include "blackgui/blackguiexport.h" #include "blackgui/led.h" #include "blackmisc/network/entityflags.h" #include #include #include #include #include class QWidget; namespace Ui { class CInfoBarWebReadersStatusComponent; } namespace BlackGui { class CLedWidget; namespace Components { //! Info bar displaying status of web readers(swift DB, ...) class BLACKGUI_EXPORT CInfoBarWebReadersStatusBase : public QFrame { Q_OBJECT public: //!Destructor ~CInfoBarWebReadersStatusBase(); //! Init the LEDs void initLeds(); protected: QTimer m_timer { this }; //!< check timer //! Constructor explicit CInfoBarWebReadersStatusBase(QWidget *parent = nullptr); //! Init void init(); //! Set LED states void setLedReadStates(const QList &leds, BlackMisc::Network::CEntityFlags::ReadState readState); //! Set the LED read state void setLedReadState(CLedWidget *led, BlackMisc::Network::CEntityFlags::ReadState readState); //! Maps entity to its id QList entityToLeds(BlackMisc::Network::CEntityFlags::Entity entity) const; //! All data read bool hasAllData() const; //! Initial setup of leds void setLeds(BlackGui::CLedWidget *ledDb, BlackGui::CLedWidget *dataReady, BlackGui::CLedWidget *led_IcaoAircraft, BlackGui::CLedWidget *led_IcaoAirline, BlackGui::CLedWidget *led_Countries, BlackGui::CLedWidget *led_Distributors, BlackGui::CLedWidget *led_Liveries, BlackGui::CLedWidget *led_Models); private slots: //! Data have been read void ps_dataRead(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState readState, int count); //! Check server status void ps_checkServerAndData(); private: BlackGui::CLedWidget *led_SwiftDb = nullptr; BlackGui::CLedWidget *led_DataReady = nullptr; BlackGui::CLedWidget *led_IcaoAircraft = nullptr; BlackGui::CLedWidget *led_IcaoAirline = nullptr; BlackGui::CLedWidget *led_Countries = nullptr; BlackGui::CLedWidget *led_Distributors = nullptr; BlackGui::CLedWidget *led_Liveries = nullptr; BlackGui::CLedWidget *led_Models = nullptr; }; //! Info bar displaying status of web readers(swift DB, ...) class BLACKGUI_EXPORT CInfoBarWebReadersStatusComponent : public CInfoBarWebReadersStatusBase { Q_OBJECT public: //! Constructor explicit CInfoBarWebReadersStatusComponent(QWidget *parent = nullptr); //!Destructor ~CInfoBarWebReadersStatusComponent(); private: QScopedPointer ui; }; } // ns } // ns #endif // guard