From 77f95536a1704942f5be79528126942b4d591bc6 Mon Sep 17 00:00:00 2001 From: yo_waka Date: Mon, 13 Apr 2026 13:02:17 +0900 Subject: [PATCH 1/2] Use IPC instead remote --- app/handlers.js | 6 +++--- app/main.js | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/handlers.js b/app/handlers.js index bd14df64..1ea187eb 100644 --- a/app/handlers.js +++ b/app/handlers.js @@ -1,11 +1,11 @@ -const { dialog, nativeImage } = require('electron').remote; +const { ipcRenderer } = require('electron'); const fs = require('fs'); const path = require('path'); const handlers = {}; handlers.layoutOpen = (callback) => { - const filenames = dialog.showOpenDialogSync({ + const filenames = ipcRenderer.sendSync('dialog:openFile', { filters: [ {name: 'Thinreports Layout File', extensions: ['tlf']} ], @@ -32,7 +32,7 @@ handlers.layoutSave = (callback, data, attrs) => { } handlers.layoutSaveAs = (callback, data) => { - const filename = dialog.showSaveDialogSync({ + const filename = ipcRenderer.sendSync('dialog:saveFile', { filters: [ {name: 'Thinreports Layout File', extensions: ['tlf']} ] diff --git a/app/main.js b/app/main.js index 3a0bd16c..58c5c33a 100644 --- a/app/main.js +++ b/app/main.js @@ -1,9 +1,21 @@ const { app, BrowserWindow, Menu, shell } = require('electron') const path = require('path') const url = require('url') +const { ipcMain, dialog } = require('electron'); + +ipcMain.on('dialog:openFile', (event, options) => { + event.returnValue = dialog.showOpenDialogSync(options) || null; +}); + +ipcMain.on('dialog:saveFile', (event, options) => { + event.returnValue = dialog.showSaveDialogSync(options) || null; +}); process.env.NODE_ENV = process.env.NODE_ENV || 'production' +app.commandLine.appendSwitch('disable-gpu'); +app.commandLine.appendSwitch('disable-software-rasterizer'); + let win function createWindow () { From 9d370494cefb7feb27a4fb7a4e79fc51ecd61bdb Mon Sep 17 00:00:00 2001 From: yo_waka Date: Mon, 13 Apr 2026 13:32:42 +0900 Subject: [PATCH 2/2] and more imageOpen --- app/handlers.js | 9 +++++---- app/main.js | 3 --- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/app/handlers.js b/app/handlers.js index 1ea187eb..d5d81da8 100644 --- a/app/handlers.js +++ b/app/handlers.js @@ -1,4 +1,4 @@ -const { ipcRenderer } = require('electron'); +const { ipcRenderer, nativeImage } = require('electron'); const fs = require('fs'); const path = require('path'); @@ -53,10 +53,11 @@ handlers.layoutSaveAs = (callback, data) => { } handlers.imageOpen = (callback) => { - const imagefiles = dialog.showOpenDialogSync({ + const imagefiles = ipcRenderer.sendSync('dialog:openFile', { filters: [ {name: 'Images', extensions: ['jpg', 'png']} - ] + ], + properties: ['openFile'] }); if (!imagefiles) { @@ -83,7 +84,7 @@ handlers.exportAs = (callback, type, content) => { break; } - const filename = dialog.showSaveDialogSync({ + const filename = ipcRenderer.sendSync('dialog:saveFile', { filters: [ {extensions: [extName], name: description} ] diff --git a/app/main.js b/app/main.js index 58c5c33a..6235b872 100644 --- a/app/main.js +++ b/app/main.js @@ -13,9 +13,6 @@ ipcMain.on('dialog:saveFile', (event, options) => { process.env.NODE_ENV = process.env.NODE_ENV || 'production' -app.commandLine.appendSwitch('disable-gpu'); -app.commandLine.appendSwitch('disable-software-rasterizer'); - let win function createWindow () {