From 00dd71e63f575533278c9609df5cd0276d6c2702 Mon Sep 17 00:00:00 2001 From: Lex Neva Date: Tue, 21 Jul 2020 23:19:53 -0400 Subject: [PATCH 1/4] fix save and print PDF buttons --- electron/src/main/index.js | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/electron/src/main/index.js b/electron/src/main/index.js index 9e90851f9..f7fb9437c 100644 --- a/electron/src/main/index.js +++ b/electron/src/main/index.js @@ -1,6 +1,9 @@ 'use strict' -import {app, BrowserWindow} from 'electron' +import {app, BrowserWindow, ipcMain, dialog, shell} from 'electron' +var fs = require('fs'); +var path = require('path'); +var tmp = require('tmp'); const url = require('url') @@ -15,7 +18,7 @@ if (process.env.NODE_ENV === 'development') { process.argv.shift() process.argv.shift() } else { - global.__static = require('path').join(__dirname, '/static').replace(/\\/g, '\\\\') + global.__static = path.join(__dirname, '/static').replace(/\\/g, '\\\\') } let mainWindow @@ -69,6 +72,25 @@ app.on('activate', () => { } }) +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); + }) + }) +}) + + /** * Auto Updater * From d003ddbd26746c235492902e5a47ed7e7e3a121d Mon Sep 17 00:00:00 2001 From: Lex Neva Date: Tue, 18 Aug 2020 14:52:47 -0400 Subject: [PATCH 2/4] fix windows? --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 0f5593552..b5bbd4e58 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ dist: locales inx - bin/build-python - bin/build-electron - bin/build-distribution-archives + bash bin/build-python + bash bin/build-electron + bash bin/build-distribution-archives distclean: rm -rf build dist inx locales *.spec *.tar.gz *.zip electron/node_modules electron/dist From 53ba4f530389b79d0156da284d1cd94e14de7e24 Mon Sep 17 00:00:00 2001 From: Lex Neva Date: Tue, 18 Aug 2020 14:58:39 -0400 Subject: [PATCH 3/4] fail on electron build errors --- bin/build-electron | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/build-electron b/bin/build-electron index dc7a1ca2d..3496abf10 100755 --- a/bin/build-electron +++ b/bin/build-electron @@ -1,6 +1,6 @@ #!/bin/bash - +set -e if [ "$BUILD" = "windows" ]; then args="-w --ia32" From c2c2d569c245d9982542bb7e7c526f3a9405e5c8 Mon Sep 17 00:00:00 2001 From: Lex Neva Date: Tue, 18 Aug 2020 14:58:52 -0400 Subject: [PATCH 4/4] windows already has yarn, in a weird place --- bin/build-electron | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/build-electron b/bin/build-electron index 3496abf10..11616cb4a 100755 --- a/bin/build-electron +++ b/bin/build-electron @@ -1,6 +1,7 @@ #!/bin/bash set -e +set -x if [ "$BUILD" = "windows" ]; then args="-w --ia32" @@ -11,6 +12,6 @@ elif [ "$BUILD" = "osx" ]; then fi cd electron -npm install -g yarn +which yarn > /dev/null 2>&1 || npm install -g yarn yarn --link-duplicates --pure-lockfile yarn run dist ${args}