/** * @RDE_HEADER@ * GUI Plugin for ParticipantManagement - UAS * $Id$ * $HeadURL$ * $Author$ * Created by Hannes Fritsche, ESZS, 2025-05-16 */ #include "ppm_uas_gui_plugin.h" #include #include #include #include #include #include "ppm_uas_list_dialog.h" namespace ParticipantManagement { std::shared_ptr GuiPlugin::createGuiInterface(LtsSession::LtsSession *session) { return std::make_shared(session); } InterfaceImpl::InterfaceImpl(LtsSession::LtsSession *session) : GuiPluginBase::Interface(session, getLogger("Plugins.Gui.Ppm.Uas")) , m_ppmDtc(nullptr) , m_ppmFtc(nullptr) , m_exmDtc(nullptr) {} QVector InterfaceImpl::getActions() { QVector ret; LtsWidgets::PluginData pluginData; pluginData.menuGroup = menuGroup(); pluginData.layoutArea = LtsWidgets::LayoutArea::eDialogTab; if (m_session->exerciseId() > 0) pluginData.menuText = tr("UAS Linking"); else pluginData.menuText = tr("UAS"); pluginData.identifier = QStringLiteral("uasListDialog"); pluginData.menuIcon = QIcon(QLatin1String("icon:uas_administration.svg")); pluginData.createWidgetFunc = [this](QWidget *parent) { return onUasListDialog(parent); }; pluginData.operatorRight = OperatorRights::Uas::EditAndLinkUas; pluginData.exercisePart = LtsWidgets::ExercisePart::ePlanning; pluginData.exerciseStates = LtsWidgets::ExcState::eCreated | LtsWidgets::ExcState::eStarted | LtsWidgets::ExcState::ePaused; ret.append(pluginData); return ret; } QString InterfaceImpl::menuGroup() const { return tr("Air Support"); } bool InterfaceImpl::fetchInterfaces() { if (!m_session->getDtc(m_ppmDtc)) return false; if (!m_session->getFtc(m_ppmFtc)) return false; if (!m_session->getDtc(m_exmDtc)) return false; return true; } void InterfaceImpl::clearInterfaces() { m_ppmDtc = nullptr; m_ppmFtc = nullptr; m_exmDtc = nullptr; } LtsWidgets::LtsDialog *InterfaceImpl::onUasListDialog(QWidget *parent) { return LtsWidgets::initDialog(new UasListDialog(m_session, parent)); } } // namespace ParticipantManagement