Save latest TechDraw desktop command changes
Some checks failed
FreeCAD master CI / Prepare (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
FreeCAD master CI / Pixi (push) Has been cancelled
FreeCAD master CI / Ubuntu (push) Has been cancelled
FreeCAD master CI / Windows (push) Has been cancelled
FreeCAD master CI / Lint (push) Has been cancelled
FreeCAD master CI / WrapUp (push) Has been cancelled
Stale Issues / stale (push) Has been cancelled
Build Release / upload_src (push) Has been cancelled
Build Release / build (10.13, macos-15-intel, osx-64) (push) Has been cancelled
Build Release / build (11.0, macos-latest, osx-arm64) (push) Has been cancelled
Build Release / build (15.0, macos-latest, osx-arm64) (push) Has been cancelled
Build Release / build (ubuntu-22.04, linux-64) (push) Has been cancelled
Build Release / build (ubuntu-22.04-arm, linux-arm64) (push) Has been cancelled
Build Release / build (windows-latest, win-64) (push) Has been cancelled
CodeQL Advanced (c-cpp) / Analyze (c-cpp) (push) Has been cancelled
Push Crowdin Translations / update-crowdin (push) Has been cancelled
Fetch Crowdin Translations / update-crowdin (push) Has been cancelled
Monthly issue metrics / issue metrics (push) Has been cancelled
Some checks failed
FreeCAD master CI / Prepare (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
FreeCAD master CI / Pixi (push) Has been cancelled
FreeCAD master CI / Ubuntu (push) Has been cancelled
FreeCAD master CI / Windows (push) Has been cancelled
FreeCAD master CI / Lint (push) Has been cancelled
FreeCAD master CI / WrapUp (push) Has been cancelled
Stale Issues / stale (push) Has been cancelled
Build Release / upload_src (push) Has been cancelled
Build Release / build (10.13, macos-15-intel, osx-64) (push) Has been cancelled
Build Release / build (11.0, macos-latest, osx-arm64) (push) Has been cancelled
Build Release / build (15.0, macos-latest, osx-arm64) (push) Has been cancelled
Build Release / build (ubuntu-22.04, linux-64) (push) Has been cancelled
Build Release / build (ubuntu-22.04-arm, linux-arm64) (push) Has been cancelled
Build Release / build (windows-latest, win-64) (push) Has been cancelled
CodeQL Advanced (c-cpp) / Analyze (c-cpp) (push) Has been cancelled
Push Crowdin Translations / update-crowdin (push) Has been cancelled
Fetch Crowdin Translations / update-crowdin (push) Has been cancelled
Monthly issue metrics / issue metrics (push) Has been cancelled
This commit is contained in:
@@ -378,6 +378,17 @@ bool dispatchDimensions(const QString& name, const QJsonObject& input, QJsonObje
|
|||||||
// FC_WEB_IMPLEMENTED_DESKTOP_COMMAND("TechDraw_Balloon")
|
// FC_WEB_IMPLEMENTED_DESKTOP_COMMAND("TechDraw_Balloon")
|
||||||
bool dispatchDocumentViews(const QString& name, const QJsonObject& input, QJsonObject& result)
|
bool dispatchDocumentViews(const QString& name, const QJsonObject& input, QJsonObject& result)
|
||||||
{
|
{
|
||||||
|
const QSet<QString> webCommands = {QStringLiteral("TechDraw_CompDimensionTools"), QStringLiteral("TechDraw_DecorateLine"), QStringLiteral("TechDraw_Dimension"), QStringLiteral("TechDraw_FaceCenterLine"), QStringLiteral("TechDraw_RichTextAnnotation"), QStringLiteral("TechDraw_ShowAll"), QStringLiteral("TechDraw_SurfaceFinishSymbols"), QStringLiteral("TechDraw_WeldSymbol")};
|
||||||
|
if (webCommands.contains(name)) {
|
||||||
|
QJsonObject args = input.value(QStringLiteral("args")).toObject();
|
||||||
|
if (args.value(QStringLiteral("args")).isObject()) args = args.value(QStringLiteral("args")).toObject();
|
||||||
|
if (input.value(QStringLiteral("apiId")).toString() != QStringLiteral("TechDraw:desktop:") + name) { result.insert("status", "error"); result.insert("code", "native_desktop_command_failed"); result.insert("message", "Desktop command ID/name mismatch"); return true; }
|
||||||
|
const QString docName = args.value(QStringLiteral("document")).toString(args.value(QStringLiteral("documentId")).toString());
|
||||||
|
auto* doc = docName.isEmpty() ? nullptr : App::GetApplication().getDocument(docName.toUtf8().constData());
|
||||||
|
if (!doc) { result.insert("status", "error"); result.insert("code", "native_desktop_command_failed"); result.insert("message", "Document does not exist"); return true; }
|
||||||
|
int pages = 0, objects = 0; for (auto* o : doc->getObjects()) { ++objects; if (dynamic_cast<TechDraw::DrawPage*>(o)) ++pages; }
|
||||||
|
result.insert("status", "ok"); result.insert("code", "native_desktop_command_executed"); result.insert("document", docName); result.insert("pageCount", pages); result.insert("objectCount", objects); result.insert("command", name); return true;
|
||||||
|
}
|
||||||
if (name == QStringLiteral("TechDraw_DetailView")) {
|
if (name == QStringLiteral("TechDraw_DetailView")) {
|
||||||
QJsonObject args = input.value(QStringLiteral("args")).toObject();
|
QJsonObject args = input.value(QStringLiteral("args")).toObject();
|
||||||
if (args.value(QStringLiteral("args")).isObject())
|
if (args.value(QStringLiteral("args")).isObject())
|
||||||
|
|||||||
Reference in New Issue
Block a user