#pragma once #include #include #include namespace WarehouseManagement { class GuiPlugin final : public QObject, public GuiPluginBase::Plugin { Q_PLUGIN_METADATA(IID "gui:3:whm") Q_INTERFACES(GuiPluginBase::Plugin) Q_OBJECT public: GuiPlugin() = default; ~GuiPlugin() = default; QString pluginName() override { return QStringLiteral("WarehouseManagementGuiPlugin"); } std::shared_ptr createGuiInterface(LtsSession::LtsSession *session) override; bool availableInPartition(IDL::PartitionType partition) const override { return partition == IDL::PartitionType::Global; } }; class InterfaceImpl final : public QObject, public GuiPluginBase::Interface { Q_OBJECT public: explicit InterfaceImpl(LtsSession::LtsSession *session); bool fetchInterfaces() override; QString menuGroup() const override { return tr("Warehouse Management"); } QVector getActions() override; bool availableInPartition(IDL::PartitionType partition) const override { return partition == IDL::PartitionType::Global; } private: std::shared_ptr m_dtc; std::shared_ptr m_ftc; }; }