From cacd74b9e6c4a528f26dff60e445f9e9bf7eb8aa Mon Sep 17 00:00:00 2001 From: Maxime Jacquemin <maxime2.jacquemin@gmail.com> Date: Wed, 20 Apr 2022 16:08:37 +0200 Subject: [PATCH] [ivette] Deactivation of Evaluation when Eva component is not visible --- ivette/src/dome/main/menubar.ts | 2 +- ivette/src/frama-c/kernel/ASTview.tsx | 11 ----------- ivette/src/frama-c/plugins/eva/valuetable.tsx | 4 ++++ 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/ivette/src/dome/main/menubar.ts b/ivette/src/dome/main/menubar.ts index a0095ce60be..52f4212c96f 100644 --- a/ivette/src/dome/main/menubar.ts +++ b/ivette/src/dome/main/menubar.ts @@ -404,7 +404,7 @@ export function setMenuItem({ id, ...options }: CustomMenuItem) { if (entry) { if (entry.spec) Object.assign(entry.spec, options); if (entry.item) Object.assign(entry.item, options); - if (options.label || options.type || options.click) requestUpdate(); + requestUpdate (); } else console.warn(`[Dome] unknown menu item #${id}`); } diff --git a/ivette/src/frama-c/kernel/ASTview.tsx b/ivette/src/frama-c/kernel/ASTview.tsx index 304abf08132..339961b65b0 100644 --- a/ivette/src/frama-c/kernel/ASTview.tsx +++ b/ivette/src/frama-c/kernel/ASTview.tsx @@ -31,8 +31,6 @@ import _ from 'lodash'; import * as Server from 'frama-c/server'; import * as States from 'frama-c/states'; import * as RichText from 'frama-c/richtext'; -import * as Eva from 'frama-c/plugins/eva/api/general'; -import { evaluateEvent } from 'frama-c/plugins/eva/valuetable'; import * as Dome from 'dome'; import { RichTextBuffer } from 'dome/text/buffers'; @@ -249,9 +247,7 @@ export default function ASTview() { if (meta) States.MetaSelection.emit(location); } - const computationState = States.useSyncValue(Eva.computationState); async function onContextMenu(markerId: string) { - onSelection(markerId); const items = []; const selectedMarkerInfo = markersInfo.getData(markerId); if (selectedMarkerInfo?.var === 'function') { @@ -305,13 +301,6 @@ export default function ASTview() { enabled, onClick: () => onClick('Reads'), }); - if (computationState === 'computed') { - items.push({ - label: 'Evaluate', - enabled: true, - onClick: () => evaluateEvent.emit(), - }); - } if (items.length > 0) Dome.popupMenu(items); } diff --git a/ivette/src/frama-c/plugins/eva/valuetable.tsx b/ivette/src/frama-c/plugins/eva/valuetable.tsx index c60093ea90b..00c3b7738ba 100644 --- a/ivette/src/frama-c/plugins/eva/valuetable.tsx +++ b/ivette/src/frama-c/plugins/eva/valuetable.tsx @@ -949,6 +949,10 @@ function useEvaluationMode(props: EvaluationModeProps): void { key: 'Cmd+E', onClick: () => evaluateEvent.emit(), }); + React.useEffect(() => { + Dome.setMenuItem({ id: 'EvaluateMenu', enabled: true }); + return () => Dome.setMenuItem({ id: 'EvaluateMenu', enabled: false }); + }); } /* -------------------------------------------------------------------------- */ -- GitLab