Skip to content

Commit 1696bde

Browse files
committedFeb 8, 2025
1 parent b3d11f4 commit 1696bde

File tree

12 files changed

+332
-244
lines changed

12 files changed

+332
-244
lines changed
 

‎packages/home/tabs-store.tsx

+10
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,10 @@ export class ProjectEditorTab implements IHomeTab {
631631
}
632632
};
633633

634+
const onFindProjectComponent = () => {
635+
projectStore.findProjectComponent();
636+
};
637+
634638
const onReloadProject = () => {
635639
this.reloadProject();
636640
};
@@ -699,6 +703,7 @@ export class ProjectEditorTab implements IHomeTab {
699703

700704
ipcRenderer.on("toggleComponentsPalette", onToggleComponentsPalette);
701705
ipcRenderer.on("resetLayoutModels", onResetLayoutModels);
706+
ipcRenderer.on("findProjectComponent", onFindProjectComponent);
702707

703708
ipcRenderer.on("reload-project", onReloadProject);
704709

@@ -731,6 +736,11 @@ export class ProjectEditorTab implements IHomeTab {
731736
onResetLayoutModels
732737
);
733738

739+
ipcRenderer.removeListener(
740+
"findProjectComponent",
741+
onFindProjectComponent
742+
);
743+
734744
ipcRenderer.removeListener("reload-project", onReloadProject);
735745

736746
document.removeEventListener("keydown", onKeyDown);

‎packages/main/menu.ts

+100-83
Original file line numberDiff line numberDiff line change
@@ -464,100 +464,117 @@ function buildFileMenu(win: IWindow | undefined) {
464464
////////////////////////////////////////////////////////////////////////////////
465465

466466
function buildEditMenu(win: IWindow | undefined) {
467-
const editMenu: Electron.MenuItemConstructorOptions = {
468-
label: "Edit",
469-
submenu: [
470-
{
471-
id: "undo",
472-
label: "Undo",
473-
accelerator: "CmdOrCtrl+Z",
474-
role: "undo",
475-
click: function (item, focusedWindow) {
476-
if (focusedWindow) {
477-
const win = findWindowByBrowserWindow(focusedWindow);
478-
if (win !== undefined && win.state.undo != null) {
479-
win.browserWindow.webContents.send("undo");
480-
return;
481-
}
467+
const editSubmenu: Electron.MenuItemConstructorOptions[] = [
468+
{
469+
id: "undo",
470+
label: "Undo",
471+
accelerator: "CmdOrCtrl+Z",
472+
role: "undo",
473+
click: function (item, focusedWindow) {
474+
if (focusedWindow) {
475+
const win = findWindowByBrowserWindow(focusedWindow);
476+
if (win !== undefined && win.state.undo != null) {
477+
win.browserWindow.webContents.send("undo");
478+
return;
482479
}
483-
484-
undoManager.undo();
485480
}
486-
},
487-
{
488-
id: "redo",
489-
label: "Redo",
490-
accelerator: "CmdOrCtrl+Y",
491-
role: "redo",
492-
click: function (item, focusedWindow) {
493-
if (focusedWindow) {
494-
const win = findWindowByBrowserWindow(focusedWindow);
495-
if (win !== undefined && win.state.redo != null) {
496-
win.browserWindow.webContents.send("redo");
497-
return;
498-
}
481+
482+
undoManager.undo();
483+
}
484+
},
485+
{
486+
id: "redo",
487+
label: "Redo",
488+
accelerator: "CmdOrCtrl+Y",
489+
role: "redo",
490+
click: function (item, focusedWindow) {
491+
if (focusedWindow) {
492+
const win = findWindowByBrowserWindow(focusedWindow);
493+
if (win !== undefined && win.state.redo != null) {
494+
win.browserWindow.webContents.send("redo");
495+
return;
499496
}
497+
}
500498

501-
undoManager.redo();
499+
undoManager.redo();
500+
}
501+
},
502+
{
503+
type: "separator"
504+
},
505+
{
506+
label: "Cut",
507+
accelerator: "CmdOrCtrl+X",
508+
role: "cut",
509+
click: function (item) {
510+
if (win) {
511+
win.browserWindow.webContents.send("cut");
502512
}
503-
},
504-
{
505-
type: "separator"
506-
},
507-
{
508-
label: "Cut",
509-
accelerator: "CmdOrCtrl+X",
510-
role: "cut",
511-
click: function (item) {
512-
if (win) {
513-
win.browserWindow.webContents.send("cut");
514-
}
513+
}
514+
},
515+
{
516+
label: "Copy",
517+
accelerator: "CmdOrCtrl+C",
518+
role: "copy",
519+
click: function (item) {
520+
if (win) {
521+
win.browserWindow.webContents.send("copy");
515522
}
516-
},
517-
{
518-
label: "Copy",
519-
accelerator: "CmdOrCtrl+C",
520-
role: "copy",
521-
click: function (item) {
522-
if (win) {
523-
win.browserWindow.webContents.send("copy");
524-
}
523+
}
524+
},
525+
{
526+
label: "Paste",
527+
accelerator: "CmdOrCtrl+V",
528+
role: "paste",
529+
click: function (item) {
530+
if (win) {
531+
win.browserWindow.webContents.send("paste");
525532
}
526-
},
527-
{
528-
label: "Paste",
529-
accelerator: "CmdOrCtrl+V",
530-
role: "paste",
531-
click: function (item) {
532-
if (win) {
533-
win.browserWindow.webContents.send("paste");
534-
}
533+
}
534+
},
535+
{
536+
label: "Delete",
537+
accelerator: "Delete",
538+
role: "delete",
539+
click: function (item) {
540+
if (win) {
541+
win.browserWindow.webContents.send("delete");
535542
}
536-
},
537-
{
538-
label: "Delete",
539-
accelerator: "Delete",
540-
role: "delete",
541-
click: function (item) {
542-
if (win) {
543-
win.browserWindow.webContents.send("delete");
544-
}
543+
}
544+
},
545+
{
546+
type: "separator"
547+
},
548+
{
549+
label: "Select All",
550+
accelerator: "CmdOrCtrl+A",
551+
role: "selectAll",
552+
click: function (item) {
553+
if (win) {
554+
win.browserWindow.webContents.send("select-all");
545555
}
546-
},
547-
{
548-
type: "separator"
549-
},
550-
{
551-
label: "Select All",
552-
accelerator: "CmdOrCtrl+A",
553-
role: "selectAll",
554-
click: function (item) {
555-
if (win) {
556-
win.browserWindow.webContents.send("select-all");
557-
}
556+
}
557+
}
558+
];
559+
560+
if (win?.activeTabType === "project") {
561+
editSubmenu.push({
562+
type: "separator"
563+
});
564+
editSubmenu.push({
565+
label: "Find Project Component",
566+
accelerator: "CmdOrCtrl+Shift+F",
567+
click: function (item) {
568+
if (win) {
569+
win.browserWindow.webContents.send("findProjectComponent");
558570
}
559571
}
560-
]
572+
});
573+
}
574+
575+
const editMenu: Electron.MenuItemConstructorOptions = {
576+
label: "Edit",
577+
submenu: editSubmenu
561578
};
562579

563580
enableMenuItem(

‎packages/project-editor/flow/runtime/eez_runtime.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Binary file not shown.

‎packages/project-editor/flow/runtime/lvgl_runtime_v8.3.js

+21-21
Original file line numberDiff line numberDiff line change
@@ -969,27 +969,27 @@ function dbg(text) {
969969
// === Body ===
970970

971971
var ASM_CONSTS = {
972-
1034944: ($0) => { startToDebuggerMessage($0); },
973-
1034976: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); },
974-
1035051: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); },
975-
1035126: ($0) => { finishToDebuggerMessage($0); },
976-
1035159: ($0, $1) => { lvglCreateScreen($0, $1); },
977-
1035189: ($0, $1) => { lvglDeleteScreen($0, $1); },
978-
1035219: ($0, $1) => { return getLvglScreenByName($0, UTF8ToString($1)); },
979-
1035273: ($0, $1) => { return getLvglObjectByName($0, UTF8ToString($1)); },
980-
1035327: ($0, $1) => { return getLvglGroupByName($0, UTF8ToString($1)); },
981-
1035380: ($0, $1) => { return getLvglStyleByName($0, UTF8ToString($1)); },
982-
1035433: ($0, $1) => { return getLvglImageByName($0, UTF8ToString($1)); },
983-
1035486: ($0, $1, $2) => { lvglObjAddStyle($0, $1, $2); },
984-
1035519: ($0, $1, $2) => { lvglObjRemoveStyle($0, $1, $2); },
985-
1035555: ($0, $1) => { lvglSetColorTheme($0, UTF8ToString($1)); },
986-
1035600: ($0, $1, $2, $3, $4, $5) => { return eez_mqtt_init($0, UTF8ToString($1), UTF8ToString($2), $3, UTF8ToString($4), UTF8ToString($5)); },
987-
1035706: ($0, $1) => { return eez_mqtt_deinit($0, $1); },
988-
1035742: ($0, $1) => { return eez_mqtt_connect($0, $1); },
989-
1035779: ($0, $1) => { return eez_mqtt_disconnect($0, $1); },
990-
1035819: ($0, $1, $2) => { return eez_mqtt_subscribe($0, $1, UTF8ToString($2)); },
991-
1035876: ($0, $1, $2) => { return eez_mqtt_unsubscribe($0, $1, UTF8ToString($2)); },
992-
1035935: ($0, $1, $2, $3) => { return eez_mqtt_publish($0, $1, UTF8ToString($2), UTF8ToString($3)); }
972+
1036608: ($0) => { startToDebuggerMessage($0); },
973+
1036640: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); },
974+
1036715: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); },
975+
1036790: ($0) => { finishToDebuggerMessage($0); },
976+
1036823: ($0, $1) => { lvglCreateScreen($0, $1); },
977+
1036853: ($0, $1) => { lvglDeleteScreen($0, $1); },
978+
1036883: ($0, $1) => { return getLvglScreenByName($0, UTF8ToString($1)); },
979+
1036937: ($0, $1) => { return getLvglObjectByName($0, UTF8ToString($1)); },
980+
1036991: ($0, $1) => { return getLvglGroupByName($0, UTF8ToString($1)); },
981+
1037044: ($0, $1) => { return getLvglStyleByName($0, UTF8ToString($1)); },
982+
1037097: ($0, $1) => { return getLvglImageByName($0, UTF8ToString($1)); },
983+
1037150: ($0, $1, $2) => { lvglObjAddStyle($0, $1, $2); },
984+
1037183: ($0, $1, $2) => { lvglObjRemoveStyle($0, $1, $2); },
985+
1037219: ($0, $1) => { lvglSetColorTheme($0, UTF8ToString($1)); },
986+
1037264: ($0, $1, $2, $3, $4, $5) => { return eez_mqtt_init($0, UTF8ToString($1), UTF8ToString($2), $3, UTF8ToString($4), UTF8ToString($5)); },
987+
1037370: ($0, $1) => { return eez_mqtt_deinit($0, $1); },
988+
1037406: ($0, $1) => { return eez_mqtt_connect($0, $1); },
989+
1037443: ($0, $1) => { return eez_mqtt_disconnect($0, $1); },
990+
1037483: ($0, $1, $2) => { return eez_mqtt_subscribe($0, $1, UTF8ToString($2)); },
991+
1037540: ($0, $1, $2) => { return eez_mqtt_unsubscribe($0, $1, UTF8ToString($2)); },
992+
1037599: ($0, $1, $2, $3) => { return eez_mqtt_publish($0, $1, UTF8ToString($2), UTF8ToString($3)); }
993993
};
994994

995995

Binary file not shown.

‎packages/project-editor/flow/runtime/lvgl_runtime_v9.0.js

+21-21
Original file line numberDiff line numberDiff line change
@@ -969,27 +969,27 @@ function dbg(text) {
969969
// === Body ===
970970

971971
var ASM_CONSTS = {
972-
1031872: ($0) => { startToDebuggerMessage($0); },
973-
1031904: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); },
974-
1031979: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); },
975-
1032054: ($0) => { finishToDebuggerMessage($0); },
976-
1032087: ($0, $1) => { lvglCreateScreen($0, $1); },
977-
1032117: ($0, $1) => { lvglDeleteScreen($0, $1); },
978-
1032147: ($0, $1) => { return getLvglScreenByName($0, UTF8ToString($1)); },
979-
1032201: ($0, $1) => { return getLvglObjectByName($0, UTF8ToString($1)); },
980-
1032255: ($0, $1) => { return getLvglGroupByName($0, UTF8ToString($1)); },
981-
1032308: ($0, $1) => { return getLvglStyleByName($0, UTF8ToString($1)); },
982-
1032361: ($0, $1) => { return getLvglImageByName($0, UTF8ToString($1)); },
983-
1032414: ($0, $1, $2) => { lvglObjAddStyle($0, $1, $2); },
984-
1032447: ($0, $1, $2) => { lvglObjRemoveStyle($0, $1, $2); },
985-
1032483: ($0, $1) => { lvglSetColorTheme($0, UTF8ToString($1)); },
986-
1032528: ($0, $1, $2, $3, $4, $5) => { return eez_mqtt_init($0, UTF8ToString($1), UTF8ToString($2), $3, UTF8ToString($4), UTF8ToString($5)); },
987-
1032634: ($0, $1) => { return eez_mqtt_deinit($0, $1); },
988-
1032670: ($0, $1) => { return eez_mqtt_connect($0, $1); },
989-
1032707: ($0, $1) => { return eez_mqtt_disconnect($0, $1); },
990-
1032747: ($0, $1, $2) => { return eez_mqtt_subscribe($0, $1, UTF8ToString($2)); },
991-
1032804: ($0, $1, $2) => { return eez_mqtt_unsubscribe($0, $1, UTF8ToString($2)); },
992-
1032863: ($0, $1, $2, $3) => { return eez_mqtt_publish($0, $1, UTF8ToString($2), UTF8ToString($3)); }
972+
1033552: ($0) => { startToDebuggerMessage($0); },
973+
1033584: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); },
974+
1033659: ($0, $1, $2) => { writeDebuggerBuffer($0, new Uint8Array(Module.HEAPU8.buffer, $1, $2)); },
975+
1033734: ($0) => { finishToDebuggerMessage($0); },
976+
1033767: ($0, $1) => { lvglCreateScreen($0, $1); },
977+
1033797: ($0, $1) => { lvglDeleteScreen($0, $1); },
978+
1033827: ($0, $1) => { return getLvglScreenByName($0, UTF8ToString($1)); },
979+
1033881: ($0, $1) => { return getLvglObjectByName($0, UTF8ToString($1)); },
980+
1033935: ($0, $1) => { return getLvglGroupByName($0, UTF8ToString($1)); },
981+
1033988: ($0, $1) => { return getLvglStyleByName($0, UTF8ToString($1)); },
982+
1034041: ($0, $1) => { return getLvglImageByName($0, UTF8ToString($1)); },
983+
1034094: ($0, $1, $2) => { lvglObjAddStyle($0, $1, $2); },
984+
1034127: ($0, $1, $2) => { lvglObjRemoveStyle($0, $1, $2); },
985+
1034163: ($0, $1) => { lvglSetColorTheme($0, UTF8ToString($1)); },
986+
1034208: ($0, $1, $2, $3, $4, $5) => { return eez_mqtt_init($0, UTF8ToString($1), UTF8ToString($2), $3, UTF8ToString($4), UTF8ToString($5)); },
987+
1034314: ($0, $1) => { return eez_mqtt_deinit($0, $1); },
988+
1034350: ($0, $1) => { return eez_mqtt_connect($0, $1); },
989+
1034387: ($0, $1) => { return eez_mqtt_disconnect($0, $1); },
990+
1034427: ($0, $1, $2) => { return eez_mqtt_subscribe($0, $1, UTF8ToString($2)); },
991+
1034484: ($0, $1, $2) => { return eez_mqtt_unsubscribe($0, $1, UTF8ToString($2)); },
992+
1034543: ($0, $1, $2, $3) => { return eez_mqtt_publish($0, $1, UTF8ToString($2), UTF8ToString($3)); }
993993
};
994994

995995

Binary file not shown.

0 commit comments

Comments
 (0)