#pragma once #include #include #include #include #include #include //#include #include namespace Ui { class NmeBatteryInfoDialog; } namespace NmeaManagement { class NmeBatteryInfoDialog : public LtsWidgets::LtsDialog { Q_OBJECT public: explicit NmeBatteryInfoDialog(QMap currentBatteryStateForId, const std::shared_ptr &tabDtc, const std::shared_ptr &tabFtc, QWidget *parent = nullptr); ~NmeBatteryInfoDialog(); private: void resetDialog(bool batteryOne, bool batteryTwo); private slots: void onShutdownClicked(); void fillWarnings(const TrainingAreaBase::BatteryAlarm &data, DataModification modType); void fillStates(const TrainingAreaBase::BatteryInfo &dataArr, DataModification modType); void onOutdatedFirstBatteryTimerTimeout(); void onOutdatedSecondBatteryTimerTimeout(); signals: void signalQuit(); void signalSelectScript(int scriptId); void signalEditQuit(); private: bool m_selected; bool m_close { false }; void updateDialog(); std::shared_ptr m_tabDtc {nullptr}; std::shared_ptr m_tabFtc {nullptr}; QMap m_currentBatteryStateForId; QMap m_currentBatteryWarnForId; Ui::NmeBatteryInfoDialog *m_ui { nullptr }; QTimer *m_oudatedFirstBatteryTimer; QTimer *m_oudatedSecondBatteryTimer; // LtsDialog interface public: void retranslate() override; }; } // namespace NmeaManagement