diff --git a/app/handlers.js b/app/handlers.js index bd14df64..d5d81da8 100644 --- a/app/handlers.js +++ b/app/handlers.js @@ -1,11 +1,11 @@ -const { dialog, nativeImage } = require('electron').remote; +const { ipcRenderer, nativeImage } = 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']} ] @@ -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 3a0bd16c..6235b872 100644 --- a/app/main.js +++ b/app/main.js @@ -1,6 +1,15 @@ 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'