#include #include #include #include "gui_element_plugin.h" #include "custom_widget.h" #include GuiElementPlugin::GuiElementPlugin() { } QWidget *GuiElementPlugin::createGuiElement(QWidget *parent) { m_customWidget = new CustomWidget(parent); if (!m_ppmDtc) { qCritical()<<" ppmDtc not yet init!!!"; return nullptr; } connect(m_customWidget, &CustomWidget::finOnMapClicked, this, &GuiElementPlugin::onFindOnMap); connect(m_ppmDtc.get(), &ParticipantManagement::Interface::Dtc::participantPositionChanged, m_customWidget, [=](const ParticipantManagement::ParticipantPosition &ppPos){ m_customWidget->onPositionChanged(ppPos.pos(), m_participantId); }, Qt::UniqueConnection); m_customWidget->onPositionChanged(m_ppmDtc->participantPosition(m_participantId).pos(), m_participantId); return m_customWidget; } bool GuiElementPlugin::init(LtsSession::LtsSession *session, int participantId) { m_session = session; if (!m_session->getDtc(m_ppmDtc)) { qCritical()<<"couln't init ppmDtc for gui element "; return false; } if (!session->getForeignGuiInterface(m_sitMapGuiIfc)) { qCritical()<<"couln't init sitMapGuiIfc for gui element "; return false; } m_participantId = participantId; return true; } void GuiElementPlugin::onFindOnMap() { if (m_sitMapGuiIfc) m_sitMapGuiIfc->centerMapToParticipant(m_participantId); }