#include "MockPlugin.h" #include "CosinusProvider.h" #include #include #include Q_LOGGING_CATEGORY(LOG_MockPlugin, "MockPlugin") namespace { /// Name of the data source const auto DATA_SOURCE_NAME = QStringLiteral("MMS"); /// Creates the data provider relative to the plugin std::unique_ptr createDataProvider() noexcept { return std::make_unique(); } /// Creates the data source item relative to the plugin std::unique_ptr createDataSourceItem() 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 root; } } // 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); // Sets data source tree dataSourceController.setDataSourceItem(dataSourceUid, createDataSourceItem()); // Sets data provider dataSourceController.setDataProvider(dataSourceUid, createDataProvider()); } else { qCWarning(LOG_MockPlugin()) << tr("Can't access to SciQlop application"); } }