#include #include #include #include Q_LOGGING_CATEGORY(LOG_MockPlugin, "MockPlugin") namespace { /// Name of the data source const auto DATA_SOURCE_NAME = QStringLiteral("MMS"); } // namespace void MockPlugin::initialize() { if (auto app = sqpApp) { // Registers to the data source controller auto &dataSourceController = app->dataSourceController(); auto dataSourceUid = dataSourceController.registerDataSource(DATA_SOURCE_NAME); dataSourceController.setDataSourceItem(dataSourceUid, createDataSourceItem()); } else { qCWarning(LOG_MockPlugin()) << tr("Can't access to SciQlop application"); } } std::unique_ptr MockPlugin::createDataSourceItem() const noexcept { // Magnetic field products auto fgmProduct = std::make_unique(DataSourceItemType::PRODUCT, QVector{QStringLiteral("FGM")}); auto scProduct = std::make_unique(DataSourceItemType::PRODUCT, QVector{QStringLiteral("SC")}); auto magneticFieldFolder = std::make_unique( DataSourceItemType::NODE, QVector{QStringLiteral("Magnetic field")}); magneticFieldFolder->appendChild(std::move(fgmProduct)); magneticFieldFolder->appendChild(std::move(scProduct)); // Electric field products auto electricFieldFolder = std::make_unique( DataSourceItemType::NODE, QVector{QStringLiteral("Electric field")}); // Root auto root = std::make_unique(DataSourceItemType::NODE, QVector{DATA_SOURCE_NAME}); root->appendChild(std::move(magneticFieldFolder)); root->appendChild(std::move(electricFieldFolder)); return std::move(root); }