diff options
Diffstat (limited to 'electron/src/main.js')
| -rw-r--r-- | electron/src/main.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/electron/src/main.js b/electron/src/main.js new file mode 100644 index 00000000..db52ac94 --- /dev/null +++ b/electron/src/main.js @@ -0,0 +1,62 @@ +import { app, BrowserWindow, ipcMain, dialog, shell } from 'electron'; +var fs = require('fs'); +var path = require('path') +var tmp = require('tmp') + +// Keep a global reference of the window object, if you don't, the window will +// be closed automatically when the JavaScript object is garbage collected. +let mainWindow; + +const createWindow = () => { + // Create the browser window. + mainWindow = new BrowserWindow({icon: path.join(__dirname, 'assets/icons/png/512x512.png')}); + + mainWindow.maximize(); + + // and load the index.html of the app. + if (process.argv[1] == ".") { + // run in development mode with `electron . <url>` + var url = process.argv[2]; + } else { + var url = process.argv[1]; + } + mainWindow.loadURL(url); + + //mainWindow.webContents.openDevTools(); + + // Emitted when the window is closed. + mainWindow.on('closed', () => { + // Dereference the window object, usually you would store windows + // in an array if your app supports multi windows, this is the time + // when you should delete the corresponding element. + mainWindow = null; + }); +}; + +// This method will be called when Electron has finished +// initialization and is ready to create browser windows. +// Some APIs can only be used after this event occurs. +app.on('ready', createWindow); + +// Quit when all windows are closed. +app.on('window-all-closed', () => { + app.quit(); +}); + +ipcMain.on('save-pdf', function (event, pageSize) { + mainWindow.webContents.printToPDF({"pageSize": pageSize}, function(error, data) { + dialog.showSaveDialog(mainWindow, {"defaultPath": "inkstitch.pdf"}, function(filename, bookmark) { + if (typeof filename !== 'undefined') + fs.writeFileSync(filename, data, 'utf-8'); + }) + }) +}) + +ipcMain.on('open-pdf', function (event, pageSize) { + mainWindow.webContents.printToPDF({"pageSize": pageSize}, function(error, data) { + tmp.file({keep: true, discardDescriptor: true}, function(err, path, fd, cleanupCallback) { + fs.writeFileSync(path, data, 'utf-8'); + shell.openItem(path); + }) + }) +}) |
