/** * @RDE_HEADER@ * Notifcation plugin for TAB connection states * $Id$ * $HeadURL$ * $Author$ * Created by Philipp Dassow, SLST, 2017-09-19 */ #pragma once #include #include #include #include #include //sitmap #include namespace LtsNotification { class LtsNotification; } namespace TrainingAreaBaseOC { class GuiPlugin final : public QObject, public GuiPluginBase::Plugin { Q_PLUGIN_METADATA(IID "gui:3:taboc") Q_INTERFACES(GuiPluginBase::Plugin) Q_OBJECT public: explicit GuiPlugin() = default; ~GuiPlugin() = default; QString pluginName() override { return ForeignGuiInterface::pluginName(); } std::shared_ptr createGuiInterface(LtsSession::LtsSession *session) override; bool availableInPartition(IDL::PartitionType partition) const override { return partition == IDL::PartitionType::Exercise || partition == IDL::PartitionType::Global; } }; class InterfaceImpl final : public QObject, public TrainingAreaBaseOC::ForeignGuiInterface, public GuiPluginBase::Interface { Q_OBJECT public: explicit InterfaceImpl(LtsSession::LtsSession *session); QString pluginName() { return ForeignGuiInterface::pluginName(); } QVector getActions() override; QString menuGroup() const override { return tr("Training Area Base OC"); } bool fetchInterfaces() override; void clearInterfaces() override; public slots: void onStatusSfmChanged(const TrainingAreaBaseOC::TechnicalStateSfm &data, DataModification modType); void onInitDone(); void onPositionChanged(const ParticipantManagement::ParticipantPosition &data, DataModification modType); void onSpecificsEquipmentChanged(const TrainingAreaBaseOC::SpecificsEquipment &data, DataModification modType); private: void setRadioStatus(bool isAvilable, bool isLicensed); void setSfmStatus(bool isConnected); void setDefaultToolTipRadio(); void setDefaultToolTipSfm(); std::shared_ptr m_dtc; std::shared_ptr m_ppmDtc; std::shared_ptr m_sitMapGuiIfc; int m_curParticipantId = 0; LtsNotification::LtsNotification *m_notiPos; LtsNotification::LtsNotification *m_notiRadio; LtsNotification::LtsNotification *m_notiSfm; }; } // namespace TrainingAreaBaseOC