/** * @RDE_HEADER@ * GUI Plugin for Evaluations * $Id$ * $HeadURL$ * $Author$ * * Created by Hanna E. Rathje, SLSE, 2017-11-01 */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace TopicEditorBase { struct TopicData; } namespace Evaluations { class GuiPlugin final : public QObject, public GuiPluginBase::Plugin { Q_PLUGIN_METADATA(IID "gui:3:evl.edit") Q_INTERFACES(GuiPluginBase::Plugin) Q_OBJECT public: explicit GuiPlugin() = default; ~GuiPlugin() = default; QString pluginName() override { return QStringLiteral("EvlEditGuiPlugin"); } std::shared_ptr createGuiInterface(LtsSession::LtsSession *session) override; bool availableInPartition(IDL::PartitionType partition) const override { return partition == IDL::PartitionType::Exercise || partition == IDL::PartitionType::Replay; } }; class InterfaceImpl final : public QObject, public GuiPluginBase::Interface, public ForeignGuiInterface { Q_OBJECT public: explicit InterfaceImpl(LtsSession::LtsSession *session); QVector getActions() override; QString menuGroup() const override; bool fetchInterfaces() override; void clearInterfaces() override; bool availableInPartition(IDL::PartitionType partition) const override { return partition == IDL::PartitionType::Exercise || partition == IDL::PartitionType::Replay; } //topiceditor TopicEditorBase::TopicEditor *createTopicEditor(const TopicEditorBase::TopicData &data) override; private: LtsWidgets::LtsDialog *onEditCriteriumDialog(QWidget *parent, bool ownEvlElements); LtsWidgets::LtsDialog *onEditSchemaDialog(QWidget *parent); LtsWidgets::LtsDialog *onCreateCommentsDialog(QWidget *parent, bool runningOnTablet); LtsWidgets::LtsDialog *onCommentsDialog(QWidget *parent); std::shared_ptr m_ocFtc; std::shared_ptr m_evlDtc; std::shared_ptr m_evlFtc; std::shared_ptr m_flmDtc; std::shared_ptr m_flmFtc; std::shared_ptr m_flmGui; std::shared_ptr m_opmDtc; std::shared_ptr m_opmCbxDtc; std::shared_ptr m_exmDtc; std::shared_ptr m_avmDataIfc; std::shared_ptr m_fltParticipantIfc; std::shared_ptr m_fltAesIfc; std::shared_ptr m_fltBuildingComponentfc; }; } // namespace Evaluations