diff --git a/packages/project-editor/lvgl/identifiers.ts b/packages/project-editor/lvgl/identifiers.ts index 87748b30f..7af31ed60 100644 --- a/packages/project-editor/lvgl/identifiers.ts +++ b/packages/project-editor/lvgl/identifiers.ts @@ -80,78 +80,74 @@ export class LVGLIdentifiers { return styles; } - get widgetIdentifiers(): { - global: LVGLIdentifier[]; - userWidget: Map; - } { - const result = { - global: [], - userWidget: new Map() - }; - - function enumIdentifiers( - page: Page, - identifiers: LVGLIdentifier[], - prefix: string - ) { - page._lvglWidgets.forEach(widget => { - let identifierName; + enumIdentifiers(page: Page, identifiers: LVGLIdentifier[], prefix: string) { + page._lvglWidgets.forEach(widget => { + let identifierName; + + if (widget instanceof ProjectEditor.LVGLScreenWidgetClass) { + identifierName = getName( + "", + page.name, + NamingConvention.UnderscoreLowerCase + ); + } else { + if (!widget.identifier) { + return; + } - if (widget instanceof ProjectEditor.LVGLScreenWidgetClass) { - identifierName = getName( + identifierName = + prefix + + getName( "", - page.name, + widget.identifier, NamingConvention.UnderscoreLowerCase ); - } else { - if (!widget.identifier) { - return; - } - - identifierName = - prefix + - getName( - "", - widget.identifier, - NamingConvention.UnderscoreLowerCase - ); - } + } - if (!identifierName) { - return; - } + if (!identifierName) { + return; + } - const identifier = identifiers.find( - identifier => identifier.identifier == identifierName - ); - if (identifier) { - identifier.widgets.push(widget); - } else { - identifiers.push({ - identifier: identifierName, - widgets: [widget] - }); - } + const identifier = identifiers.find( + identifier => identifier.identifier == identifierName + ); + if (identifier) { + identifier.widgets.push(widget); + } else { + identifiers.push({ + identifier: identifierName, + widgets: [widget] + }); + } - if (widget instanceof ProjectEditor.LVGLUserWidgetWidgetClass) { - if (widget.userWidgetPage) { - enumIdentifiers( - widget.userWidgetPage, - identifiers, - identifierName + USER_WIDGET_IDENTIFIER_SEPARATOR - ); - } + if (widget instanceof ProjectEditor.LVGLUserWidgetWidgetClass) { + if (widget.userWidgetPage) { + this.enumIdentifiers( + widget.userWidgetPage, + identifiers, + identifierName + USER_WIDGET_IDENTIFIER_SEPARATOR + ); } - }); - } + } + }); + } + + get widgetIdentifiers(): { + global: LVGLIdentifier[]; + userWidget: Map; + } { + const result = { + global: [], + userWidget: new Map() + }; for (const page of this.pages) { if (page.isUsedAsUserWidget) { const identifiers: LVGLIdentifier[] = []; - enumIdentifiers(page, identifiers, ""); + this.enumIdentifiers(page, identifiers, ""); result.userWidget.set(page, identifiers); } else { - enumIdentifiers(page, result.global, ""); + this.enumIdentifiers(page, result.global, ""); } } @@ -169,7 +165,19 @@ export class LVGLIdentifiers { flow: Flow, displayName: string ): LVGLIdentifier | undefined { - const identifiers = this.getIdentifiersVisibleFromFlow(flow); + let identifiers = this.getIdentifiersVisibleFromFlow(flow); + + if (!identifiers) { + if ( + flow instanceof ProjectEditor.PageClass && + flow._lvglUserWidgetOfPageCopy + ) { + identifiers = []; + this.enumIdentifiers(flow, identifiers, ""); + } else { + return undefined; + } + } return identifiers.find( lvglIdentifier => lvglIdentifier.identifier == displayName diff --git a/packages/project-editor/lvgl/widgets/UserWidget.tsx b/packages/project-editor/lvgl/widgets/UserWidget.tsx index fc5cfedb5..84db5031f 100644 --- a/packages/project-editor/lvgl/widgets/UserWidget.tsx +++ b/packages/project-editor/lvgl/widgets/UserWidget.tsx @@ -615,7 +615,6 @@ export class LVGLUserWidgetWidget extends LVGLWidget { const widgetStartIndex = assets.lvglBuild.getWidgetObjectIndex(this) + 1; - console.log(this.identifier, widgetStartIndex); dataBuffer.writeInt32(widgetStartIndex); } else { // flowIndex