MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / loadIntoFrameBuilder

Method loadIntoFrameBuilder

app/src/API/Handlers/ProjectHandler.cpp:4178–4206  ·  view source on GitHub ↗

* @brief Load current project JSON into FrameBuilder */

Source from the content-addressed store, hash-verified

4176 * @brief Load current project JSON into FrameBuilder
4177 */
4178API::CommandResponse API::Handlers::ProjectHandler::loadIntoFrameBuilder(const QString& id,
4179 const QJsonObject& params)
4180{
4181 Q_UNUSED(params)
4182
4183 auto& project = DataModel::ProjectModel::instance();
4184 auto& builder = DataModel::FrameBuilder::instance();
4185
4186 const bool hasDatasetlessGroup =
4187 std::any_of(project.groups().begin(), project.groups().end(), [](const DataModel::Group& g) {
4188 return g.widget == QLatin1String("image") || g.widget == QLatin1String("painter");
4189 });
4190
4191 if (project.groupCount() == 0 || (project.datasetCount() == 0 && !hasDatasetlessGroup)) {
4192 return CommandResponse::makeError(
4193 id, ErrorCode::InvalidParam, QStringLiteral("Project has no groups or datasets"));
4194 }
4195
4196 builder.syncFromProjectModel();
4197
4198 QJsonObject result;
4199 result[QStringLiteral("loaded")] = true;
4200 result[QStringLiteral("source")] = QStringLiteral("API");
4201 result[QStringLiteral("title")] = project.title();
4202 result[QStringLiteral("groupCount")] = project.groupCount();
4203 result[QStringLiteral("datasetCount")] = project.datasetCount();
4204
4205 return CommandResponse::makeSuccess(id, result);
4206}
4207
4208//--------------------------------------------------------------------------------------------------
4209// Painter (group widget JS) command surface

Callers

nothing calls this directly

Calls 5

beginMethod · 0.80
datasetCountMethod · 0.80
syncFromProjectModelMethod · 0.80
titleMethod · 0.80
groupCountMethod · 0.45

Tested by

no test coverage detected