diff --git a/cc-inspector/src/core/types.ts b/cc-inspector/src/core/types.ts index d89609e..1ccd701 100644 --- a/cc-inspector/src/core/types.ts +++ b/cc-inspector/src/core/types.ts @@ -121,7 +121,8 @@ export enum Msg { ResponseUseFrame = "response-use-frame", RequestLogData = "request-log-data", - + RequestLogCustom = "request-log-custom", + ReqWriteClipboard = "request-write-clipboard", RequestSetProperty = "request-set-property", ResponseSetProperty = "response-set-property", RequestVisible = "request-visible", diff --git a/cc-inspector/src/scripts/const.ts b/cc-inspector/src/scripts/const.ts index 64b9c84..9742b86 100644 --- a/cc-inspector/src/scripts/const.ts +++ b/cc-inspector/src/scripts/const.ts @@ -12,6 +12,7 @@ export enum DocumentEvent { EngineVersion = "engineVersion", GoogleAnalytics = "googleAnalytics", LoadInjectCss = "load-inject-css", + InspectorClear = "inspector_clear", GameInspectorBegan = "GameInspectorBegan", GameInspectorEnd = "GameInspectorEnd", } diff --git a/cc-inspector/src/scripts/inject-view/app.vue b/cc-inspector/src/scripts/inject-view/app.vue index 2be1367..d76b4fd 100644 --- a/cc-inspector/src/scripts/inject-view/app.vue +++ b/cc-inspector/src/scripts/inject-view/app.vue @@ -155,6 +155,11 @@ export default defineComponent({ ga(GA_EventName.PickTop); }, }, + { + name: "", + type: ccui.menu.MenuType.Separator, + callback() {}, + }, { name: "Filter Enabled", selected: inspectTarget.enabled, diff --git a/cc-inspector/src/scripts/inject/inspector.ts b/cc-inspector/src/scripts/inject/inspector.ts index eb09ae0..f0d415a 100644 --- a/cc-inspector/src/scripts/inject/inspector.ts +++ b/cc-inspector/src/scripts/inject/inspector.ts @@ -99,6 +99,23 @@ export class Inspector extends InjectEvent { logFunction(value); break; } + case Msg.RequestLogCustom: { + const logFunction = console.log; + logFunction(pluginEvent.data); + } + case Msg.ReqWriteClipboard: { + document.body.focus(); + navigator.clipboard + .writeText(pluginEvent.data) + + .then(() => { + console.log("ok"); + }) + .catch((e) => { + console.log("fail", e); + }); + break; + } case Msg.RequestVisible: { const uuid: string = pluginEvent.data; const node = this.inspectorGameMemoryStorage[uuid]; diff --git a/cc-inspector/src/views/devtools/hierarchy.vue b/cc-inspector/src/views/devtools/hierarchy.vue index fc45f0a..d8de7d1 100644 --- a/cc-inspector/src/views/devtools/hierarchy.vue +++ b/cc-inspector/src/views/devtools/hierarchy.vue @@ -11,7 +11,7 @@ - + @@ -257,7 +257,7 @@ export default defineComponent({ } } }, - onMenu(event: MouseEvent) { + onMenu(event: MouseEvent, data: TreeData) { const menus: IUiMenuItem[] = []; menus.push({ name: "update hierarchy", @@ -302,22 +302,33 @@ export default defineComponent({ }); }, }); - menus.push({ - name: "copy name", - enabled: false, - callback() { - navigator.clipboard - .writeText("123") - .then(() => { - ccui.footbar.showTips("copy success"); - }) - .catch((e) => { - console.log(e); - ccui.footbar.showError("copy failed"); - }); - }, - }); - if (selectedUUID) { + if (data) { + menus.push({ + name: "", + type: ccui.menu.MenuType.Separator, + callback() {}, + }); + menus.push({ + name: "copy name", + enabled: true, + callback() { + console.log(data.text); + + if (!data.text) { + return; + } + navigator.clipboard + .writeText(data.text) + .then(() => { + ccui.footbar.showTips("copy success"); + }) + .catch((e) => { + console.log(e); + bridge.send(Msg.RequestLogCustom, data.text); + // bridge.send(Msg.ReqWriteClipboard, data.text); + }); + }, + }); menus.push({ name: "visible", shortKey: "space", @@ -332,7 +343,7 @@ export default defineComponent({ enabled: true, callback: () => { ga.fireEventWithParam(GA_EventName.MouseMenu, "destroy"); - bridge.send(Msg.RequestDestroy, selectedUUID); + bridge.send(Msg.RequestDestroy, data.id); }, }); }