From a72e449e9c484fba72205f28356a7cb344aad863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Mon, 3 Jan 2022 14:32:17 +0100 Subject: [PATCH] [dome] ipc for dialogs --- ivette/src/dome/main/dome.ts | 20 ++++++++++++++++++++ ivette/src/dome/renderer/dialogs.tsx | 14 +++++++------- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/ivette/src/dome/main/dome.ts b/ivette/src/dome/main/dome.ts index 082d748effc..8aa0d1dffa1 100644 --- a/ivette/src/dome/main/dome.ts +++ b/ivette/src/dome/main/dome.ts @@ -45,6 +45,7 @@ import { BrowserWindowConstructorOptions, IpcMainEvent, shell, + dialog, } from 'electron'; import installExtension, { REACT_DEVELOPER_TOOLS } from 'dome/devtools'; import SYS, * as System from 'dome/system'; @@ -596,3 +597,22 @@ ipcMain.on('dome.ipc.menu.addmenuitem', (_evt, spec) => addMenuItem(spec)); ipcMain.on('dome.ipc.menu.setmenuitem', (_evt, spec) => setMenuItem(spec)); // -------------------------------------------------------------------------- +// --- Dialogs Management +// -------------------------------------------------------------------------- + +ipcMain.handle( + 'dome.dialog.showMessageBox', + (_evt, props) => dialog.showMessageBox(props), +); + +ipcMain.handle( + 'dome.dialog.showOpenDialog', + (_evt, props) => dialog.showOpenDialog(props), +); + +ipcMain.handle( + 'dome.dialog.showSaveDialog', + (_evt, props) => dialog.showSaveDialog(props), +); + +// -------------------------------------------------------------------------- diff --git a/ivette/src/dome/renderer/dialogs.tsx b/ivette/src/dome/renderer/dialogs.tsx index d0936827972..c117832f270 100644 --- a/ivette/src/dome/renderer/dialogs.tsx +++ b/ivette/src/dome/renderer/dialogs.tsx @@ -27,7 +27,7 @@ */ import filepath from 'path'; -import { dialog } from 'electron'; +import { ipcRenderer } from 'electron'; import * as System from 'dome/system'; // -------------------------------------------------------------------------- @@ -122,9 +122,9 @@ export async function showMessageBox<A>( if (cancelId === defaultId) cancelId = -1; - return dialog.showMessageBox( + return ipcRenderer.invoke('dome.dialog.showMessageBox', { - type: kind, + 'type': kind, message, detail: details, defaultId, @@ -196,7 +196,7 @@ export async function showOpenFile( props: OpenFileProps, ): Promise<string | undefined> { const { title, label, path, hidden = false, filters } = props; - return dialog.showOpenDialog( + return ipcRenderer.invoke('dome.dialog.showOpenDialog', { title, buttonLabel: label, @@ -219,7 +219,7 @@ export async function showOpenFiles( ): Promise<string[] | undefined> { const { title, label, path, hidden, filters } = props; - return dialog.showOpenDialog( + return ipcRenderer.invoke('dome.dialog.showOpenDialog', { title, buttonLabel: label, @@ -255,7 +255,7 @@ export async function showSaveFile( props: SaveFileProps, ): Promise<string | undefined> { const { title, label, path, filters } = props; - return dialog.showSaveDialog( + return ipcRenderer.invoke('dome.dialog.showSaveDialog', { title, buttonLabel: label, @@ -288,7 +288,7 @@ export async function showOpenDir( default: break; } - return dialog.showOpenDialog( + return ipcRenderer.invoke('dome.dialog.showOpenDialog', { title, buttonLabel: label, -- GitLab