From 58b0768603cc2066ac902445b37644aa01baa107 Mon Sep 17 00:00:00 2001 From: Grant Ammons Date: Mon, 19 Sep 2022 17:33:07 -0400 Subject: [PATCH] use prettier library and clean up the codebase --- electron_app/.prettierrc | 7 + electron_app/package-lock.json | 420 ++++++++----- electron_app/package.json | 2 + electron_app/src/App.vue | 432 ++++++------- electron_app/src/background.js | 260 ++++---- electron_app/src/bridge.js | 158 ++--- electron_app/src/components/ImgGenerate.vue | 371 ++++++----- .../src/components_bare/ApplicationFrame.vue | 551 ++++++++-------- electron_app/src/components_bare/Form.vue | 191 +++--- .../src/components_bare/FormInput.vue | 314 +++++----- .../components_bare/GalleryContainerBare.vue | 152 ++--- .../src/components_bare/GalleryItem.vue | 590 +++++++++--------- .../src/components_bare/SplashScreen.vue | 73 +-- .../src/components_bare/empty_component.vue | 29 +- electron_app/src/init_vue_libs.js | 42 +- electron_app/src/main.js | 18 +- electron_app/src/main_demoui.js | 6 +- electron_app/src/menu_template.js | 73 +-- electron_app/src/native_functions.js | 473 ++++++-------- .../src/native_functions_vue_bridge.js | 12 +- electron_app/src/preload.js | 32 +- electron_app/src/py_vue_bridge.js | 105 ++-- electron_app/src/utils.js | 68 +- 23 files changed, 2111 insertions(+), 2268 deletions(-) create mode 100644 electron_app/.prettierrc diff --git a/electron_app/.prettierrc b/electron_app/.prettierrc new file mode 100644 index 00000000..8dbd99de --- /dev/null +++ b/electron_app/.prettierrc @@ -0,0 +1,7 @@ +{ + "useTabs": false, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "semi": false, +} diff --git a/electron_app/package-lock.json b/electron_app/package-lock.json index f2451c53..4ef7b05c 100644 --- a/electron_app/package-lock.json +++ b/electron_app/package-lock.json @@ -40,7 +40,9 @@ "electron-builder": "^23.3.3", "electron-devtools-installer": "^3.1.0", "eslint": "^6.7.2", + "eslint-plugin-prettier-vue": "^4.2.0", "eslint-plugin-vue": "^6.2.2", + "prettier": "^2.7.1", "vue-cli-plugin-electron-builder": "~2.1.1", "vue-template-compiler": "^2.6.11" } @@ -3176,15 +3178,13 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.31.tgz", - "integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==", + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.39.tgz", + "integrity": "sha512-mf/36OWXqWn0wsC40nwRRGheR/qoID+lZXbIuLnr4/AngM0ov8Xvv8GHunC0rKRIkh60bTqydlqTeBo49rlbqw==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.31", + "@vue/shared": "3.2.39", "estree-walker": "^2.0.2", "source-map": "^0.6.1" } @@ -3194,38 +3194,32 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "optional": true, - "peer": true, "engines": { "node": ">=0.10.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz", - "integrity": "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==", + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.39.tgz", + "integrity": "sha512-HMFI25Be1C8vLEEv1hgEO1dWwG9QQ8LTTPmCkblVJY/O3OvWx6r1+zsox5mKPMGvqYEZa6l8j+xgOfUspgo7hw==", "dev": true, - "optional": true, - "peer": true, "dependencies": { - "@vue/compiler-core": "3.2.31", - "@vue/shared": "3.2.31" + "@vue/compiler-core": "3.2.39", + "@vue/shared": "3.2.39" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz", - "integrity": "sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==", + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.39.tgz", + "integrity": "sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.31", - "@vue/compiler-dom": "3.2.31", - "@vue/compiler-ssr": "3.2.31", - "@vue/reactivity-transform": "3.2.31", - "@vue/shared": "3.2.31", + "@vue/compiler-core": "3.2.39", + "@vue/compiler-dom": "3.2.39", + "@vue/compiler-ssr": "3.2.39", + "@vue/reactivity-transform": "3.2.39", + "@vue/shared": "3.2.39", "estree-walker": "^2.0.2", "magic-string": "^0.25.7", "postcss": "^8.1.10", @@ -3236,17 +3230,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "node_modules/@vue/compiler-sfc/node_modules/postcss": { "version": "8.4.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "nanoid": "^3.2.0", "picocolors": "^1.0.0", @@ -3265,22 +3255,18 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "optional": true, - "peer": true, "engines": { "node": ">=0.10.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz", - "integrity": "sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==", + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.39.tgz", + "integrity": "sha512-EoGCJ6lincKOZGW+0Ky4WOKsSmqL7hp1ZYgen8M7u/mlvvEQUaO9tKKOy7K43M9U2aA3tPv0TuYYQFrEbK2eFQ==", "dev": true, - "optional": true, - "peer": true, "dependencies": { - "@vue/compiler-dom": "3.2.31", - "@vue/shared": "3.2.31" + "@vue/compiler-dom": "3.2.39", + "@vue/shared": "3.2.39" } }, "node_modules/@vue/component-compiler-utils": { @@ -3347,27 +3333,23 @@ } }, "node_modules/@vue/reactivity-transform": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz", - "integrity": "sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==", + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.39.tgz", + "integrity": "sha512-HGuWu864zStiWs9wBC6JYOP1E00UjMdDWIG5W+FpUx28hV3uz9ODOKVNm/vdOy/Pvzg8+OcANxAVC85WFBbl3A==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.31", - "@vue/shared": "3.2.31", + "@vue/compiler-core": "3.2.39", + "@vue/shared": "3.2.39", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "node_modules/@vue/shared": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.31.tgz", - "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==", - "dev": true, - "optional": true, - "peer": true + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.39.tgz", + "integrity": "sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==", + "dev": true }, "node_modules/@vue/web-component-wrapper": { "version": "1.3.0", @@ -8946,6 +8928,91 @@ "webpack": ">=2.0.0 <5.0.0" } }, + "node_modules/eslint-plugin-prettier-vue": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier-vue/-/eslint-plugin-prettier-vue-4.2.0.tgz", + "integrity": "sha512-DA2oNRx+pZ6RM/EIHIPME4FQZifnkEROa55OWtTTUFGHpj53tcHomuxVP/kS/2MM+ul46GEK+jymK69STWDWoA==", + "dev": true, + "dependencies": { + "@vue/compiler-sfc": "^3.2.37", + "chalk": "^4.0.0", + "prettier": "^2.7.1", + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/eslint-plugin-prettier-vue/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint-plugin-prettier-vue/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint-plugin-prettier-vue/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier-vue/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint-plugin-prettier-vue/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-plugin-prettier-vue/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/eslint-plugin-vue": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz", @@ -9182,9 +9249,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "node_modules/esutils": { "version": "2.0.3", @@ -9642,6 +9707,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, "node_modules/fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", @@ -12779,14 +12850,12 @@ } }, "node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", "dev": true, - "optional": true, - "peer": true, "dependencies": { - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "^1.4.8" } }, "node_modules/make-dir": { @@ -13279,8 +13348,6 @@ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.0.tgz", "integrity": "sha512-JzxqqT5u/x+/KOFSd7JP15DOo9nOoHpx6DYatqIHUW2+flybkm+mdcraotSQR5WcnZr+qhGVh8Ted0KdfSMxlg==", "dev": true, - "optional": true, - "peer": true, "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -15130,16 +15197,30 @@ } }, "node_modules/prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", "dev": true, - "optional": true, "bin": { "prettier": "bin-prettier.js" }, "engines": { "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" } }, "node_modules/pretty-error": { @@ -16713,8 +16794,6 @@ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true, - "optional": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -16763,9 +16842,7 @@ "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "node_modules/spdx-correct": { "version": "3.1.1", @@ -23704,15 +23781,13 @@ } }, "@vue/compiler-core": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.31.tgz", - "integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==", + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.39.tgz", + "integrity": "sha512-mf/36OWXqWn0wsC40nwRRGheR/qoID+lZXbIuLnr4/AngM0ov8Xvv8GHunC0rKRIkh60bTqydlqTeBo49rlbqw==", "dev": true, - "optional": true, - "peer": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.31", + "@vue/shared": "3.2.39", "estree-walker": "^2.0.2", "source-map": "^0.6.1" }, @@ -23721,38 +23796,32 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "peer": true + "dev": true } } }, "@vue/compiler-dom": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz", - "integrity": "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==", + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.39.tgz", + "integrity": "sha512-HMFI25Be1C8vLEEv1hgEO1dWwG9QQ8LTTPmCkblVJY/O3OvWx6r1+zsox5mKPMGvqYEZa6l8j+xgOfUspgo7hw==", "dev": true, - "optional": true, - "peer": true, "requires": { - "@vue/compiler-core": "3.2.31", - "@vue/shared": "3.2.31" + "@vue/compiler-core": "3.2.39", + "@vue/shared": "3.2.39" } }, "@vue/compiler-sfc": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz", - "integrity": "sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==", + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.39.tgz", + "integrity": "sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA==", "dev": true, - "optional": true, - "peer": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.31", - "@vue/compiler-dom": "3.2.31", - "@vue/compiler-ssr": "3.2.31", - "@vue/reactivity-transform": "3.2.31", - "@vue/shared": "3.2.31", + "@vue/compiler-core": "3.2.39", + "@vue/compiler-dom": "3.2.39", + "@vue/compiler-ssr": "3.2.39", + "@vue/reactivity-transform": "3.2.39", + "@vue/shared": "3.2.39", "estree-walker": "^2.0.2", "magic-string": "^0.25.7", "postcss": "^8.1.10", @@ -23763,17 +23832,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "postcss": { "version": "8.4.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", "dev": true, - "optional": true, - "peer": true, "requires": { "nanoid": "^3.2.0", "picocolors": "^1.0.0", @@ -23784,22 +23849,18 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "peer": true + "dev": true } } }, "@vue/compiler-ssr": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz", - "integrity": "sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==", + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.39.tgz", + "integrity": "sha512-EoGCJ6lincKOZGW+0Ky4WOKsSmqL7hp1ZYgen8M7u/mlvvEQUaO9tKKOy7K43M9U2aA3tPv0TuYYQFrEbK2eFQ==", "dev": true, - "optional": true, - "peer": true, "requires": { - "@vue/compiler-dom": "3.2.31", - "@vue/shared": "3.2.31" + "@vue/compiler-dom": "3.2.39", + "@vue/shared": "3.2.39" } }, "@vue/component-compiler-utils": { @@ -23857,27 +23918,23 @@ "requires": {} }, "@vue/reactivity-transform": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz", - "integrity": "sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==", + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.39.tgz", + "integrity": "sha512-HGuWu864zStiWs9wBC6JYOP1E00UjMdDWIG5W+FpUx28hV3uz9ODOKVNm/vdOy/Pvzg8+OcANxAVC85WFBbl3A==", "dev": true, - "optional": true, - "peer": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.31", - "@vue/shared": "3.2.31", + "@vue/compiler-core": "3.2.39", + "@vue/shared": "3.2.39", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "@vue/shared": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.31.tgz", - "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==", - "dev": true, - "optional": true, - "peer": true + "version": "3.2.39", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.39.tgz", + "integrity": "sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==", + "dev": true }, "@vue/web-component-wrapper": { "version": "1.3.0", @@ -28372,6 +28429,69 @@ "rimraf": "^2.6.1" } }, + "eslint-plugin-prettier-vue": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier-vue/-/eslint-plugin-prettier-vue-4.2.0.tgz", + "integrity": "sha512-DA2oNRx+pZ6RM/EIHIPME4FQZifnkEROa55OWtTTUFGHpj53tcHomuxVP/kS/2MM+ul46GEK+jymK69STWDWoA==", + "dev": true, + "requires": { + "@vue/compiler-sfc": "^3.2.37", + "chalk": "^4.0.0", + "prettier": "^2.7.1", + "prettier-linter-helpers": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "eslint-plugin-vue": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz", @@ -28476,9 +28596,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "esutils": { "version": "2.0.3", @@ -28847,6 +28965,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, "fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", @@ -31277,14 +31401,12 @@ } }, "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", "dev": true, - "optional": true, - "peer": true, "requires": { - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "^1.4.8" } }, "make-dir": { @@ -31689,9 +31811,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.0.tgz", "integrity": "sha512-JzxqqT5u/x+/KOFSd7JP15DOo9nOoHpx6DYatqIHUW2+flybkm+mdcraotSQR5WcnZr+qhGVh8Ted0KdfSMxlg==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "nanomatch": { "version": "1.2.13", @@ -33205,11 +33325,19 @@ "dev": true }, "prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, - "optional": true + "requires": { + "fast-diff": "^1.1.2" + } }, "pretty-error": { "version": "2.1.2", @@ -34530,9 +34658,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "source-map-resolve": { "version": "0.5.3", @@ -34575,9 +34701,7 @@ "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "spdx-correct": { "version": "3.1.1", diff --git a/electron_app/package.json b/electron_app/package.json index 5b4f08d4..decdf7e5 100644 --- a/electron_app/package.json +++ b/electron_app/package.json @@ -50,7 +50,9 @@ "electron-builder": "^23.3.3", "electron-devtools-installer": "^3.1.0", "eslint": "^6.7.2", + "eslint-plugin-prettier-vue": "^4.2.0", "eslint-plugin-vue": "^6.2.2", + "prettier": "^2.7.1", "vue-cli-plugin-electron-builder": "~2.1.1", "vue-template-compiler": "^2.6.11" }, diff --git a/electron_app/src/App.vue b/electron_app/src/App.vue index 435dee20..89a4bb34 100644 --- a/electron_app/src/App.vue +++ b/electron_app/src/App.vue @@ -1,266 +1,224 @@ \ No newline at end of file + diff --git a/electron_app/src/background.js b/electron_app/src/background.js index 213feb54..14285346 100644 --- a/electron_app/src/background.js +++ b/electron_app/src/background.js @@ -1,180 +1,158 @@ 'use strict' -import { app, protocol, BrowserWindow, nativeTheme, ipcMain , Menu} from 'electron' +import { app, protocol, BrowserWindow, nativeTheme, Menu } from 'electron' import { createProtocol } from 'vue-cli-plugin-electron-builder/lib' import installExtension, { VUEJS_DEVTOOLS } from 'electron-devtools-installer' const isDevelopment = process.env.NODE_ENV !== 'production' const electronLocalshortcut = require('electron-localshortcut') -import settings from 'electron-settings'; - +import settings from 'electron-settings' import { start_bridge, bind_window_bridge } from './bridge.js' -import { bind_window_native_functions } from "./native_functions.js" - +import { bind_window_native_functions } from './native_functions.js' -let is_windows = process.platform.startsWith('win'); +let is_windows = process.platform.startsWith('win') -const path = require('path'); +const path = require('path') -let win; +let win // Scheme must be registered before the app is ready protocol.registerSchemesAsPrivileged([ - { scheme: 'app', privileges: { secure: true, standard: true } } + { scheme: 'app', privileges: { secure: true, standard: true } } ]) - -import {menu_template} from "./menu_template" +import { menu_template } from './menu_template' Menu.setApplicationMenu(Menu.buildFromTemplate(menu_template)) -start_bridge(); - - +start_bridge() function save_window_size() { - if( ! win.savable ) - return; - let windowState = win.getBounds(); - windowState.isMaximized = win.isMaximized(); - settings.set('windowPosState', windowState); + if (!win.savable) return + let windowState = win.getBounds() + windowState.isMaximized = win.isMaximized() + settings.set('windowPosState', windowState) } - - - async function createWindow() { - // Create the browser window. - win = new BrowserWindow({ - width: 800, - height: 600, - minWidth: 770, - minHeight: 550, - titleBarStyle : (is_windows ) ? 'default' : 'hidden' , - titleBarOverlay : is_windows, - maximizable : false, - trafficLightPosition: { x: 10, y: 10 }, - webPreferences: { - webSecurity: false, - - // Use pluginOptions.nodeIntegration, leave this alone - // See nklayman.github.io/vue-cli-plugin-electron-builder/guide/security.html#node-integration for more info - nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION, - contextIsolation: !process.env.ELECTRON_NODE_INTEGRATION, - enableRemoteModule: true, - preload: path.join(__dirname, 'preload.js'), - } - }); - - win.removeMenu(); // remove the menu ( works for windows! ) - - electronLocalshortcut.register(win, ['CommandOrControl+R','CommandOrControl+Shift+R', 'F5'], () => {}) // make the refresh shortcuts blank - - win.setSize(770, 550); - win.setResizable(false); - win.setMaximizable(false); - - // save the window state on resize , move, etc - ['resize', 'move'].forEach(event => { - win.on(event, save_window_size); - }); - - - win.on('close', function(e) { - - if(win.show_dialog_on_quit){ - - let message = 'Are you sure you want to quit?'; - if(win.dialog_on_msg) - message = win.dialog_on_msg; - - const choice = require('electron').dialog.showMessageBoxSync(this, { - type: 'question', - buttons: ['Yes', 'No'], - title: 'Confirm', - message: message - }); - if (choice === 1) { - e.preventDefault(); - } - } - }); - - - - - nativeTheme.themeSource = 'light'; - - if (process.env.WEBPACK_DEV_SERVER_URL) { - // Load the url of the dev server if in development mode - await win.loadURL(process.env.WEBPACK_DEV_SERVER_URL) - if (!process.env.IS_TEST) win.webContents.openDevTools() - } else { - createProtocol('app') - // Load the index.html when not in development - win.loadURL('app://./index.html') - } + // Create the browser window. + win = new BrowserWindow({ + width: 800, + height: 600, + minWidth: 770, + minHeight: 550, + titleBarStyle: is_windows ? 'default' : 'hidden', + titleBarOverlay: is_windows, + maximizable: false, + trafficLightPosition: { x: 10, y: 10 }, + webPreferences: { + webSecurity: false, + + // Use pluginOptions.nodeIntegration, leave this alone + // See nklayman.github.io/vue-cli-plugin-electron-builder/guide/security.html#node-integration for more info + nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION, + contextIsolation: !process.env.ELECTRON_NODE_INTEGRATION, + enableRemoteModule: true, + preload: path.join(__dirname, 'preload.js') + } + }) + + win.removeMenu() // remove the menu ( works for windows! ) + + electronLocalshortcut.register( + win, + ['CommandOrControl+R', 'CommandOrControl+Shift+R', 'F5'], + () => {} + ) // make the refresh shortcuts blank + + win.setSize(770, 550) + win.setResizable(false) + win.setMaximizable(false) + + // save the window state on resize , move, etc + ;['resize', 'move'].forEach((event) => { + win.on(event, save_window_size) + }) + + win.on('close', function (e) { + if (win.show_dialog_on_quit) { + let message = 'Are you sure you want to quit?' + if (win.dialog_on_msg) message = win.dialog_on_msg + + const choice = require('electron').dialog.showMessageBoxSync(this, { + type: 'question', + buttons: ['Yes', 'No'], + title: 'Confirm', + message: message + }) + if (choice === 1) { + e.preventDefault() + } + } + }) + + nativeTheme.themeSource = 'light' + + if (process.env.WEBPACK_DEV_SERVER_URL) { + // Load the url of the dev server if in development mode + await win.loadURL(process.env.WEBPACK_DEV_SERVER_URL) + if (!process.env.IS_TEST) win.webContents.openDevTools() + } else { + createProtocol('app') + // Load the index.html when not in development + win.loadURL('app://./index.html') + } } - app.on('activate', () => { - // On macOS it's common to re-create a window in the app when the - // dock icon is clicked and there are no other windows open. - if (BrowserWindow.getAllWindows().length === 0) createWindow() + // On macOS it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (BrowserWindow.getAllWindows().length === 0) createWindow() }) - - - // 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', async () => { - if (isDevelopment && !process.env.IS_TEST) { - // Install Vue Devtools - try { - await installExtension(VUEJS_DEVTOOLS) - } catch (e) { - console.error('Vue Devtools failed to install:', e.toString()) - } - } - createWindow(); - - console.log(win); - bind_window_bridge(win); - - win.webContents.on('did-finish-load', function() { - - bind_window_native_functions(win); - }); - + if (isDevelopment && !process.env.IS_TEST) { + // Install Vue Devtools + try { + await installExtension(VUEJS_DEVTOOLS) + } catch (e) { + console.error('Vue Devtools failed to install:', e.toString()) + } + } + createWindow() + + console.log(win) + bind_window_bridge(win) + + win.webContents.on('did-finish-load', function () { + bind_window_native_functions(win) + }) }) -// set the about panel +// set the about panel app.setAboutPanelOptions({ - applicationName: require('../package.json').name, - applicationVersion: require('../package.json').version, - version: require('../package.json').build_number, - credits: require('../package.json').description, - copyright: "Copyright © 2022 " + require('../package.json').name, - website: require('../package.json').website -}); - - - - + applicationName: require('../package.json').name, + applicationVersion: require('../package.json').version, + version: require('../package.json').build_number, + credits: require('../package.json').description, + copyright: 'Copyright © 2022 ' + require('../package.json').name, + website: require('../package.json').website +}) // Exit cleanly on request from parent process in development mode. if (isDevelopment) { - if (process.platform === 'win32') { - process.on('message', (data) => { - if (data === 'graceful-exit') { - app.quit() - } - }) - } else { - process.on('SIGTERM', () => { - app.quit() - }) - } -} \ No newline at end of file + if (process.platform === 'win32') { + process.on('message', (data) => { + if (data === 'graceful-exit') { + app.quit() + } + }) + } else { + process.on('SIGTERM', () => { + app.quit() + }) + } +} diff --git a/electron_app/src/bridge.js b/electron_app/src/bridge.js index 4bcf95a6..431aef4f 100644 --- a/electron_app/src/bridge.js +++ b/electron_app/src/bridge.js @@ -1,120 +1,96 @@ import { ipcMain, dialog, app } from 'electron' -var win; -var python; - -var py_buffer = ""; -var is_app_closing = false; +var win +var python +var py_buffer = '' +var is_app_closing = false function start_bridge() { + console.log('starting briddddd') + const fs = require('fs') - console.log("starting briddddd") - const fs = require('fs') - - if (fs.existsSync( '../stable-diffusion/txt2img.py' )) { - python = require('child_process').spawn('python3', ['../stable-diffusion/txt2img.py' ]); - } - else{ - const path = require('path'); - let backend_path = path.join(path.dirname(__dirname), 'core' , 'txt2img' ); - python = require('child_process').spawn( backend_path ); - } - - - python.stdin.setEncoding('utf-8'); - - python.stdout.on('data', function(data) { - console.log("Python response: ", data.toString('utf8')); - + if (fs.existsSync('../stable-diffusion/txt2img.py')) { + python = require('child_process').spawn('python3', ['../stable-diffusion/txt2img.py']) + } else { + const path = require('path') + let backend_path = path.join(path.dirname(__dirname), 'core', 'txt2img') + python = require('child_process').spawn(backend_path) + } - if(! data.toString().includes("___U_P_D_A_T_E___")) - win.webContents.send('to_renderer', 'adlg ' + data.toString('utf8')); - + python.stdin.setEncoding('utf-8') - if (win) { + python.stdout.on('data', function (data) { + console.log('Python response: ', data.toString('utf8')) - py_buffer += data.toString('utf8'); + if (!data.toString().includes('___U_P_D_A_T_E___')) + win.webContents.send('to_renderer', 'adlg ' + data.toString('utf8')) - let splitted = py_buffer.split("\n") + if (win) { + py_buffer += data.toString('utf8') - if( splitted.length > 1 ){ - for (var i = 0; i < splitted.length -1 ; i++) { - if (splitted[i].length > 0) - win.webContents.send('to_renderer', 'py2b ' + splitted[i]); - } - } + let splitted = py_buffer.split('\n') - py_buffer = splitted[ splitted.length - 1 ]; - - } else { - console.log("window not binded yet, got from py : " + data.toString('utf8')) + if (splitted.length > 1) { + for (var i = 0; i < splitted.length - 1; i++) { + if (splitted[i].length > 0) win.webContents.send('to_renderer', 'py2b ' + splitted[i]) } + } - }); - - python.stderr.on('data', (data) => { - console.error(`stderr: ${data}`); - win.webContents.send('to_renderer', 'adlg ' + data.toString('utf8') ); - }); - - python.on('close', (code) => { - // if( code != 0 ) - // { - // dialog.showMessageBox("Backend quit unexpectedly") - // } - - if(is_app_closing){ - if (win) - app.exit(1); - return; - } - - dialog.showMessageBox({ message: "Backend quit unexpectedly" }); - if (win) - app.exit(1); - - }); - -} - - -ipcMain.on('to_python_sync', (event, arg) => { - if (python) { - event.returnValue = "ok"; - // console("sending to py from main " + arg ) - python.stdin.write("b2py " + arg.toString() + "\n") - + py_buffer = splitted[splitted.length - 1] } else { - console.log("Python not binded yet!"); - event.returnValue = "not_ok"; + console.log('window not binded yet, got from py : ' + data.toString('utf8')) + } + }) + + python.stderr.on('data', (data) => { + console.error(`stderr: ${data}`) + win.webContents.send('to_renderer', 'adlg ' + data.toString('utf8')) + }) + + python.on('close', (code) => { + // if( code != 0 ) + // { + // dialog.showMessageBox("Backend quit unexpectedly") + // } + + if (is_app_closing) { + if (win) app.exit(1) + return } + dialog.showMessageBox({ message: 'Backend quit unexpectedly' }) + if (win) app.exit(1) + }) +} +ipcMain.on('to_python_sync', (event, arg) => { + if (python) { + event.returnValue = 'ok' + // console("sending to py from main " + arg ) + python.stdin.write('b2py ' + arg.toString() + '\n') + } else { + console.log('Python not binded yet!') + event.returnValue = 'not_ok' + } }) - ipcMain.on('to_python_async', (event, arg) => { - if (python) { - python.stdin.write("b2py " + arg.toString() + "\n") - - } + if (python) { + python.stdin.write('b2py ' + arg.toString() + '\n') + } }) app.on('window-all-closed', () => { - if(python){ - is_app_closing = true; - python.kill(); - } - + if (python) { + is_app_closing = true + python.kill() + } }) - - function bind_window_bridge(w) { - console.log("browser object binded") - win = w; + console.log('browser object binded') + win = w } - -export { start_bridge, bind_window_bridge } \ No newline at end of file +export { start_bridge, bind_window_bridge } diff --git a/electron_app/src/components/ImgGenerate.vue b/electron_app/src/components/ImgGenerate.vue index a5974536..113de27e 100644 --- a/electron_app/src/components/ImgGenerate.vue +++ b/electron_app/src/components/ImgGenerate.vue @@ -1,220 +1,203 @@ \ No newline at end of file +.ad_form_box { + float: left; + background-color: rgba(0, 0, 0, 0.1); + padding: 10px; + margin-right: 10px; + border-radius: 3px 3px 3px 3px; +} + diff --git a/electron_app/src/components_bare/ApplicationFrame.vue b/electron_app/src/components_bare/ApplicationFrame.vue index 0d1d49b1..c2ec5548 100644 --- a/electron_app/src/components_bare/ApplicationFrame.vue +++ b/electron_app/src/components_bare/ApplicationFrame.vue @@ -1,431 +1,402 @@ \ No newline at end of file + diff --git a/electron_app/src/components_bare/Form.vue b/electron_app/src/components_bare/Form.vue index 6d2d03d4..deb302b6 100644 --- a/electron_app/src/components_bare/Form.vue +++ b/electron_app/src/components_bare/Form.vue @@ -1,126 +1,105 @@ - - \ No newline at end of file + + diff --git a/electron_app/src/components_bare/FormInput.vue b/electron_app/src/components_bare/FormInput.vue index c3653d27..4952147c 100644 --- a/electron_app/src/components_bare/FormInput.vue +++ b/electron_app/src/components_bare/FormInput.vue @@ -1,160 +1,194 @@ - - \ No newline at end of file + + diff --git a/electron_app/src/components_bare/GalleryContainerBare.vue b/electron_app/src/components_bare/GalleryContainerBare.vue index 2da02120..c9d9734a 100644 --- a/electron_app/src/components_bare/GalleryContainerBare.vue +++ b/electron_app/src/components_bare/GalleryContainerBare.vue @@ -1,96 +1,98 @@ \ No newline at end of file + diff --git a/electron_app/src/components_bare/GalleryItem.vue b/electron_app/src/components_bare/GalleryItem.vue index cd6a2b6f..3da782ab 100644 --- a/electron_app/src/components_bare/GalleryItem.vue +++ b/electron_app/src/components_bare/GalleryItem.vue @@ -1,423 +1,395 @@ - + \ No newline at end of file + diff --git a/electron_app/src/components_bare/SplashScreen.vue b/electron_app/src/components_bare/SplashScreen.vue index 564521cf..9aff0d83 100644 --- a/electron_app/src/components_bare/SplashScreen.vue +++ b/electron_app/src/components_bare/SplashScreen.vue @@ -1,30 +1,27 @@ \ No newline at end of file + diff --git a/electron_app/src/components_bare/empty_component.vue b/electron_app/src/components_bare/empty_component.vue index 02fb2e50..d91946d5 100644 --- a/electron_app/src/components_bare/empty_component.vue +++ b/electron_app/src/components_bare/empty_component.vue @@ -1,22 +1,15 @@ - + - - \ No newline at end of file + + diff --git a/electron_app/src/init_vue_libs.js b/electron_app/src/init_vue_libs.js index 44972231..81c32684 100644 --- a/electron_app/src/init_vue_libs.js +++ b/electron_app/src/init_vue_libs.js @@ -1,13 +1,28 @@ import Vue from 'vue' - - -// add the fond awesome stuff import { library } from '@fortawesome/fontawesome-svg-core' -import { faChevronRight, faStopCircle, faPlayCircle , faPlus , faChevronLeft , - faFileImage , faFileAudio , faFile , faBars , faAngleDown , faTrash, faChevronDown , - faGlobe, faFolder, faCamera, faKeyboard, - faMusic , faMicrophone , faTimes , faCheck } from '@fortawesome/free-solid-svg-icons' +import { + faChevronRight, + faStopCircle, + faPlayCircle, + faPlus, + faChevronLeft, + faFileImage, + faFileAudio, + faFile, + faBars, + faAngleDown, + faTrash, + faChevronDown, + faGlobe, + faFolder, + faCamera, + faKeyboard, + faMusic, + faMicrophone, + faTimes, + faCheck +} from '@fortawesome/free-solid-svg-icons' import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome' library.add(faBars) @@ -33,13 +48,10 @@ library.add(faCamera) library.add(faTimes) library.add(faCheck) - - Vue.component('font-awesome-icon', FontAwesomeIcon) Vue.config.productionTip = false - -// vue bootstrap +// vue bootstrap import { BootstrapVue } from 'bootstrap-vue' // Import Bootstrap an BootstrapVue CSS files (order is important) @@ -48,18 +60,14 @@ import 'bootstrap-vue/dist/bootstrap-vue.css' Vue.use(BootstrapVue) - - -// vue outside +// vue outside import vClickOutside from 'v-click-outside' Vue.use(vClickOutside) - // // vue toast notification // import VueToast from 'vue-toast-notification'; // import 'vue-toast-notification/dist/theme-sugar.css'; // Vue.use(VueToast); - -export {} \ No newline at end of file +export { } diff --git a/electron_app/src/main.js b/electron_app/src/main.js index 831270d8..bf7d6629 100644 --- a/electron_app/src/main.js +++ b/electron_app/src/main.js @@ -1,21 +1,15 @@ import Vue from 'vue' - - - Vue.config.productionTip = false Vue.config.performance = true -// setup the vue libs -import {} from "./init_vue_libs.js" - - -// include the py vue bridge -import {} from "./py_vue_bridge.js" - +// setup the vue libs +import {} from './init_vue_libs.js' +// include the py vue bridge +import {} from './py_vue_bridge.js' import App from './App.vue' new Vue({ - render: h => h(App), -}).$mount('#app') \ No newline at end of file + render: (h) => h(App) +}).$mount('#app') diff --git a/electron_app/src/main_demoui.js b/electron_app/src/main_demoui.js index 5c5a7341..d78796db 100644 --- a/electron_app/src/main_demoui.js +++ b/electron_app/src/main_demoui.js @@ -2,12 +2,10 @@ import Vue from 'vue' Vue.config.productionTip = false -// setup the vue libs -import {} from "./init_vue_libs.js" +import {} from './init_vue_libs.js' import AppDemoUI from './AppDemoUI.vue' - new Vue({ - render: h => h(AppDemoUI), + render: (h) => h(AppDemoUI) }).$mount('#app') diff --git a/electron_app/src/menu_template.js b/electron_app/src/menu_template.js index 235977b8..eb4bf1e5 100644 --- a/electron_app/src/menu_template.js +++ b/electron_app/src/menu_template.js @@ -1,31 +1,29 @@ - - - - -let isMac = true; +let isMac = true const menu_template = [ // { role: 'appMenu' } - ...(isMac ? [{ - label: require('../package.json').name , - submenu: [ - { role: 'about' }, - { type: 'separator' }, - { role: 'services' }, - { type: 'separator' }, - { role: 'hide' }, - { role: 'hideOthers' }, - { role: 'unhide' }, - { type: 'separator' }, - { role: 'quit' } - ] - }] : []), + ...(isMac + ? [ + { + label: require('../package.json').name, + submenu: [ + { role: 'about' }, + { type: 'separator' }, + { role: 'services' }, + { type: 'separator' }, + { role: 'hide' }, + { role: 'hideOthers' }, + { role: 'unhide' }, + { type: 'separator' }, + { role: 'quit' } + ] + } + ] + : []), // { role: 'fileMenu' } { label: 'File', - submenu: [ - isMac ? { role: 'close' } : { role: 'quit' } - ] + submenu: [isMac ? { role: 'close' } : { role: 'quit' }] }, // { role: 'editMenu' } { @@ -37,23 +35,18 @@ const menu_template = [ { role: 'cut' }, { role: 'copy' }, { role: 'paste' }, - ...(isMac ? [ - { role: 'pasteAndMatchStyle' }, - { role: 'delete' }, - { role: 'selectAll' }, - { type: 'separator' }, - { - label: 'Speech', - submenu: [ - { role: 'startSpeaking' }, - { role: 'stopSpeaking' } + ...(isMac + ? [ + { role: 'pasteAndMatchStyle' }, + { role: 'delete' }, + { role: 'selectAll' }, + { type: 'separator' }, + { + label: 'Speech', + submenu: [{ role: 'startSpeaking' }, { role: 'stopSpeaking' }] + } ] - } - ] : [ - { role: 'delete' }, - { type: 'separator' }, - { role: 'selectAll' } - ]) + : [{ role: 'delete' }, { type: 'separator' }, { role: 'selectAll' }]) ] }, { @@ -70,6 +63,4 @@ const menu_template = [ } ] - - -export {menu_template} \ No newline at end of file +export { menu_template } diff --git a/electron_app/src/native_functions.js b/electron_app/src/native_functions.js index c316287f..ecbe1bb7 100644 --- a/electron_app/src/native_functions.js +++ b/electron_app/src/native_functions.js @@ -1,337 +1,252 @@ import { ipcMain, dialog } from 'electron' -import { app , screen } from 'electron' -import settings from 'electron-settings'; - -var win; +import { app, screen } from 'electron' +import settings from 'electron-settings' +var win function bind_window_native_functions(w) { - console.log("browser object binded") - win = w; + console.log('browser object binded') + win = w } +let is_windows = process.platform.startsWith('win') -let is_windows = process.platform.startsWith('win'); - - - -console.log(require('os').freemem()/(1000000000) + " Is the free memory") -console.log(require('os').totalmem()/(1000000000) + " Is the total memory") - +console.log(require('os').freemem() / 1000000000 + ' Is the free memory') +console.log(require('os').totalmem() / 1000000000 + ' Is the total memory') ipcMain.on('save_dialog', (event, arg) => { + let save_path = dialog.showSaveDialogSync({ + filters: [ + { + name: 'Image', + extensions: ['png'] + } + ] + }) + + event.returnValue = save_path +}) - let save_path = dialog.showSaveDialogSync({ - filters: [{ - name: 'Image', - extensions: ['png'] - }] - }) - - event.returnValue = save_path; -} ) - -console.log(require('os').release() + " ohoho") - - +console.log(require('os').release() + ' ohoho') ipcMain.on('file_dialog', (event, arg) => { - console.log("file dialog request recieved" + arg) // prints "ping" - let properties; - let options; - - if (arg == "folder") // single folder - { - properties = ['openDirectory']; - options = { properties: properties } ; - } - else if(arg == 'img_file') // single image file - { - properties = ['openFile' ] - options = { filters :[ {name: 'Images', extensions: ['jpg', 'png', 'bmp']}] , properties: properties } ; - } - else if(arg == 'img_files') // multi image files - { - properties = ['multiSelections' , 'openFile' ] - options = { filters :[ {name: 'Images', extensions: ['jpg', 'png', 'bmp']}] , properties: properties } ; - } - else if(arg == 'text_files') // multi image files - { - properties = ['multiSelections' , 'openFile' ] - options = { filters :[ {name: 'Images', extensions: ['txt']}] , properties: properties } ; - } - else if(arg == 'audio_files') // multi image files - { - properties = ['multiSelections' , 'openFile' ] - options = { filters :[ {name: 'Images', extensions: ['mp3', 'wav']}] , properties: properties } ; - } - else if(arg == 'video_files') // multi image files - { - properties = ['multiSelections' , 'openFile' ] - options = { filters :[ {name: 'Images', extensions: ["mp4", "mov", "avi", "flv", "wmv", "mkv"]}] , properties: properties } ; - } - else if(arg == 'any_files') // multi image files - { - properties = ['multiSelections' , 'openFile' ] - options = { properties: properties } ; - } - else - { - properties = ['openFile']; - options = { properties: properties } ; - } - - // let options = { - // See place holder 1 in above image - // title : "Custom title bar", - // message : "Custom title bar", - - // buttonLabel : "Custom button", - - // See place holder 4 in above image - // filters :[ - // {name: 'Images', extensions: ['jpg', 'png', 'gif']}, - // {name: 'Movies', extensions: ['mkv', 'avi', 'mp4']}, - // {name: 'Custom File Type', extensions: ['as']}, - // {name: 'All Files', extensions: ['*']} - // ], - // properties: properties - // } - - // //Synchronous - let filePaths = dialog.showOpenDialogSync(options) - - if (filePaths && filePaths.length > 0) - event.returnValue = filePaths.join(";;;"); - else - event.returnValue = "NULL"; + console.log('file dialog request recieved' + arg) // prints "ping" + let properties + let options + + if (arg == 'folder') { + // single folder + properties = ['openDirectory'] + options = { properties: properties } + } else if (arg == 'img_file') { + // single image file + properties = ['openFile'] + options = { + filters: [{ name: 'Images', extensions: ['jpg', 'png', 'bmp'] }], + properties: properties + } + } else if (arg == 'img_files') { + // multi image files + properties = ['multiSelections', 'openFile'] + options = { + filters: [{ name: 'Images', extensions: ['jpg', 'png', 'bmp'] }], + properties: properties + } + } else if (arg == 'text_files') { + // multi image files + properties = ['multiSelections', 'openFile'] + options = { filters: [{ name: 'Images', extensions: ['txt'] }], properties: properties } + } else if (arg == 'audio_files') { + // multi image files + properties = ['multiSelections', 'openFile'] + options = { filters: [{ name: 'Images', extensions: ['mp3', 'wav'] }], properties: properties } + } else if (arg == 'video_files') { + // multi image files + properties = ['multiSelections', 'openFile'] + options = { + filters: [{ name: 'Images', extensions: ['mp4', 'mov', 'avi', 'flv', 'wmv', 'mkv'] }], + properties: properties + } + } else if (arg == 'any_files') { + // multi image files + properties = ['multiSelections', 'openFile'] + options = { properties: properties } + } else { + properties = ['openFile'] + options = { properties: properties } + } + + // //Synchronous + let filePaths = dialog.showOpenDialogSync(options) + + if (filePaths && filePaths.length > 0) event.returnValue = filePaths.join(';;;') + else event.returnValue = 'NULL' }) - - - ipcMain.on('open_url', (event, url) => { - let website_domain = require('../package.json').website ; - url = url.replace("__domain__" , website_domain ); - require('electron').shell.openExternal(url); - event.returnValue = ''; + let website_domain = require('../package.json').website + url = url.replace('__domain__', website_domain) + require('electron').shell.openExternal(url) + event.returnValue = '' }) - - ipcMain.on('save_file', (event, arg) => { - let p1 = arg.split("||")[0]; - let p2 = arg.split("||")[1]; - require('fs').copyFileSync(p1, p2); - event.returnValue = ''; + let p1 = arg.split('||')[0] + let p2 = arg.split('||')[1] + require('fs').copyFileSync(p1, p2) + event.returnValue = '' }) - - - - ipcMain.on('show_dialog_on_quit', (event, msg) => { - if(win) - { - win.show_dialog_on_quit = true; - win.dialog_on_msg = msg; - } - event.returnValue = 'ok'; - + if (win) { + win.show_dialog_on_quit = true + win.dialog_on_msg = msg + } + event.returnValue = 'ok' }) - ipcMain.on('dont_show_dialog_on_quit', (event, arg) => { - if(win) - win.show_dialog_on_quit = false; - event.returnValue = 'ok'; - + if (win) win.show_dialog_on_quit = false + event.returnValue = 'ok' }) - ipcMain.on('get_instance_id', (event, arg) => { - if (settings.hasSync('instance_id')){ - event.returnValue = settings.getSync('instance_id') - return; - } - let instance_id = (Math.random() + 1).toString(36); - settings.set('instance_id', instance_id); - event.returnValue = instance_id; - + if (settings.hasSync('instance_id')) { + event.returnValue = settings.getSync('instance_id') + return + } + let instance_id = (Math.random() + 1).toString(36) + settings.set('instance_id', instance_id) + event.returnValue = instance_id }) - ipcMain.on('unfreeze_win', (event, arg) => { - - if (win) { - win.savable=true; - const primaryDisplay = screen.getPrimaryDisplay() - const { width, height } = primaryDisplay.workAreaSize - - if (settings.hasSync('windowPosState')) { - let windowState = settings.getSync('windowPosState'); - console.log("stateeee") - console.log(windowState) - - if( windowState.x > 0.8*width || windowState.y > 0.8*height || windowState.x < -0.2*width || windowState.y < -0.2*height ){ - win.setSize(850, 650, false); - } else { - win.setPosition( windowState.x , windowState.y , false); - win.setSize(windowState.width, windowState.height , false); - } - - - } - else{ - win.setSize(850, 650, false); - } - - - win.setResizable(true); - win.setMaximizable(true); - - - - - } - - event.returnValue = 'ok'; - + if (win) { + win.savable = true + const primaryDisplay = screen.getPrimaryDisplay() + const { width, height } = primaryDisplay.workAreaSize + + if (settings.hasSync('windowPosState')) { + let windowState = settings.getSync('windowPosState') + console.log('stateeee') + console.log(windowState) + + if ( + windowState.x > 0.8 * width || + windowState.y > 0.8 * height || + windowState.x < -0.2 * width || + windowState.y < -0.2 * height + ) { + win.setSize(850, 650, false) + } else { + win.setPosition(windowState.x, windowState.y, false) + win.setSize(windowState.width, windowState.height, false) + } + } else { + win.setSize(850, 650, false) + } + + win.setResizable(true) + win.setMaximizable(true) + } + + event.returnValue = 'ok' }) - - ipcMain.on('freeze_win', (event, arg) => { + if (win) { + win.savable = false + win.restore() + win.setSize(770, 550, false) + win.setResizable(false) + win.setMaximizable(false) - if (win) { - win.savable=false; - win.restore() - win.setSize(770, 550, false); - win.setResizable(false); - win.setMaximizable(false); - - const primaryDisplay = screen.getPrimaryDisplay() - const { width, height } = primaryDisplay.workAreaSize; + const primaryDisplay = screen.getPrimaryDisplay() + const { width, height } = primaryDisplay.workAreaSize - console.log( width +" " + height) + console.log(width + ' ' + height) - win.setPosition( parseInt((width-770)/2) , parseInt((height-550)/2), false); - - - - } - - event.returnValue = 'ok'; + win.setPosition(parseInt((width - 770) / 2), parseInt((height - 550) / 2), false) + } + event.returnValue = 'ok' }) - - ipcMain.on('show_about', (event, arg) => { - - if (win) { - - if(is_windows) - { - let about_content = require('../package.json').name + "\n" + "Version " + require('../package.json').version + " (" + require('../package.json').build_number + ")\n" + require('../package.json').description; - const choice = require('electron').dialog.showMessageBoxSync(this, { - buttons: ['Okay'], - title: require('../package.json').name , - message: about_content - }); - } - else{ - app.showAboutPanel() - } - - - } - - event.returnValue = 'ok'; - + if (win) { + if (is_windows) { + let about_content = + require('../package.json').name + + '\n' + + 'Version ' + + require('../package.json').version + + ' (' + + require('../package.json').build_number + + ')\n' + + require('../package.json').description + const choice = require('electron').dialog.showMessageBoxSync(this, { + buttons: ['Okay'], + title: require('../package.json').name, + message: about_content + }) + } else { + app.showAboutPanel() + } + } + + event.returnValue = 'ok' }) - - - ipcMain.on('native_confirm', (event, arg) => { - - if (win) { - - const choice = require('electron').dialog.showMessageBoxSync(this, { - type: 'question', - buttons: ['Yes', 'No'], - title: require('../package.json').name , - message: arg - }); - if (choice === 1) { - event.returnValue = false ; - } - else{ - event.returnValue = true ; - } - - } - else{ - event.returnValue = false ; - } - + if (win) { + const choice = require('electron').dialog.showMessageBoxSync(this, { + type: 'question', + buttons: ['Yes', 'No'], + title: require('../package.json').name, + message: arg + }) + if (choice === 1) { + event.returnValue = false + } else { + event.returnValue = true + } + } else { + event.returnValue = false + } }) - - ipcMain.on('close_window', (event, arg) => { - - if (win) { - - win.close() - event.returnValue = true ; - } - else{ - event.returnValue = false ; - } - + if (win) { + win.close() + event.returnValue = true + } else { + event.returnValue = false + } }) - - - ipcMain.on('native_alert', (event, arg) => { - - if (win) { - - const choice = require('electron').dialog.showMessageBoxSync(this, { - buttons: ['Okay'], - title: require('../package.json').name , - message: arg - }); - - } - - event.returnValue = true ; - + if (win) { + const choice = require('electron').dialog.showMessageBoxSync(this, { + buttons: ['Okay'], + title: require('../package.json').name, + message: arg + }) + } + + event.returnValue = true }) - - - ipcMain.on('save_b64_image', (event, arg) => { + let base64Data = arg.replace(/^data:image\/jpeg;base64,/, '') + let temp_dir = require('os').tmpdir() - let base64Data = arg.replace(/^data:image\/jpeg;base64,/, ""); - let temp_dir = require("os").tmpdir(); + let p = require('path').join(temp_dir, Math.random().toString() + '.jpg') - let p = require('path').join(temp_dir, Math.random().toString()+".jpg"); - - require("fs").writeFileSync(p , base64Data, 'base64'); - - event.returnValue = p ; + require('fs').writeFileSync(p, base64Data, 'base64') + event.returnValue = p }) +console.log('native functions imported') - - -console.log("native functions imported") - - -export { bind_window_native_functions } \ No newline at end of file +export { bind_window_native_functions } diff --git a/electron_app/src/native_functions_vue_bridge.js b/electron_app/src/native_functions_vue_bridge.js index de910471..4682df6d 100644 --- a/electron_app/src/native_functions_vue_bridge.js +++ b/electron_app/src/native_functions_vue_bridge.js @@ -1,11 +1,9 @@ - - -function native_confirm(message){ - return window.ipcRenderer.sendSync('native_confirm', message ); +function native_confirm(message) { + return window.ipcRenderer.sendSync('native_confirm', message) } -function native_alert(message){ - return window.ipcRenderer.sendSync('native_alert', message ); +function native_alert(message) { + return window.ipcRenderer.sendSync('native_alert', message) } -export { native_confirm , native_alert } \ No newline at end of file +export { native_confirm, native_alert } diff --git a/electron_app/src/preload.js b/electron_app/src/preload.js index 0fa31d46..743cce96 100644 --- a/electron_app/src/preload.js +++ b/electron_app/src/preload.js @@ -5,35 +5,15 @@ import { contextBridge, ipcRenderer } from 'electron' contextBridge.exposeInMainWorld('ipcRenderer', ipcRenderer) contextBridge.exposeInMainWorld('ipcRenderer_on', ipcRenderer.on) -var bind_ipc_renderer_on_fn = undefined; - +var bind_ipc_renderer_on_fn = undefined function bind_ipc_renderer_on(fn) { - bind_ipc_renderer_on_fn = fn; + bind_ipc_renderer_on_fn = fn } contextBridge.exposeInMainWorld('bind_ipc_renderer_on', bind_ipc_renderer_on) - -ipcRenderer.on("to_renderer", (e, data) => { // the msg channel which is used for electron to send msges to browser / renderer - if (bind_ipc_renderer_on_fn) - bind_ipc_renderer_on_fn(data) -}); - - -// Expose ipcRenderer to the client ( not using it yet ) -// contextBridge.exposeInMainWorld('ipcRenderer', { -// send: (channel, data) => { -// let validChannels = ['client_channel'] // <-- Array of all ipcRenderer Channels used in the client -// if (validChannels.includes(channel)) { -// ipcRenderer.send(channel, data) -// } -// }, -// receive: (channel, func) => { -// let validChannels = ['electron_channel'] // <-- Array of all ipcMain Channels used in the electron -// if (validChannels.includes(channel)) { -// // Deliberately strip event as it includes `sender` -// ipcRenderer.on(channel, (event, ...args) => func(...args)) -// } -// } -// }) \ No newline at end of file +ipcRenderer.on('to_renderer', (e, data) => { + // the msg channel which is used for electron to send msges to browser / renderer + if (bind_ipc_renderer_on_fn) bind_ipc_renderer_on_fn(data) +}) diff --git a/electron_app/src/py_vue_bridge.js b/electron_app/src/py_vue_bridge.js index 866c7d73..bc4916a8 100644 --- a/electron_app/src/py_vue_bridge.js +++ b/electron_app/src/py_vue_bridge.js @@ -1,92 +1,73 @@ import Vue from 'vue' +import { native_alert } from './native_functions_vue_bridge.js' -import {native_alert} from "./native_functions_vue_bridge.js" - -var app_component_object; +var app_component_object function update_state(msg) { + if (app_component_object) { + let keys = msg.split('___U_P_D_A_T_E___')[0] + let value = msg.split('___U_P_D_A_T_E___')[1] - if (app_component_object) { - let keys = msg.split("___U_P_D_A_T_E___")[0]; - let value = msg.split("___U_P_D_A_T_E___")[1]; - - keys = keys.split('.'); - - let object_to_update = app_component_object.app_state; - - for (let i = 0; i < keys.length - 1; i++) { - object_to_update = object_to_update[keys[i]]; - } + keys = keys.split('.') + let object_to_update = app_component_object.app_state - let final_key = keys[keys.length - 1]; - Vue.set(object_to_update, final_key, JSON.parse(value)) - - - } else { - alert("Err : app stage object not set yet.") + for (let i = 0; i < keys.length - 1; i++) { + object_to_update = object_to_update[keys[i]] } - + let final_key = keys[keys.length - 1] + Vue.set(object_to_update, final_key, JSON.parse(value)) + } else { + alert('Err : app stage object not set yet.') + } } - function bind_app_component(app_component) { - // this should be called by the main vue componnet, to set bind the "app state" object to the bridge - app_component_object; - app_component_object = app_component; + // this should be called by the main vue componnet, to set bind the "app state" object to the bridge + app_component_object + app_component_object = app_component } function on_msg_from_py(msg) { - - if (msg.substring(0, 4) == "utds") // update the state of - { - update_state(msg.substring(5)); - } else if (msg.substring(0, 4) == "alrt") // just alert - { - native_alert(msg.substring(5)); - } - - + if (msg.substring(0, 4) == 'utds') { + // update the state of + update_state(msg.substring(5)) + } else if (msg.substring(0, 4) == 'alrt') { + // just alert + native_alert(msg.substring(5)) + } } - - function add_log(msg) { - if (app_component_object) { - Vue.set(app_component_object.app_state, 'logs' , app_component_object.app_state.logs + "\n" + msg ); - } - + if (app_component_object) { + Vue.set( + app_component_object.app_state, + 'logs', + app_component_object.app_state.logs + '\n' + msg + ) + } } +function on_msg_recieve(msg) { + // on new msg from python -function on_msg_recieve(msg) { // on new msg from python - - if (msg.substring(0, 4) == "py2b") { - on_msg_from_py(msg.substring(5)) - } - else if (msg.substring(0, 4) == "adlg") { - add_log(msg.substring(5)) - } else { - alert("recieved unk message " + msg.toString()) - } - + if (msg.substring(0, 4) == 'py2b') { + on_msg_from_py(msg.substring(5)) + } else if (msg.substring(0, 4) == 'adlg') { + add_log(msg.substring(5)) + } else { + alert('recieved unk message ' + msg.toString()) + } } window.bind_ipc_renderer_on(on_msg_recieve) - - function send_to_py(msg) { - window.ipcRenderer.sendSync('to_python_sync', msg) -} - -function send_to_py_async() { - - + window.ipcRenderer.sendSync('to_python_sync', msg) } +function send_to_py_async() { } - -export { send_to_py, bind_app_component, send_to_py_async } \ No newline at end of file +export { send_to_py, bind_app_component, send_to_py_async } diff --git a/electron_app/src/utils.js b/electron_app/src/utils.js index 6f7639df..cf79cd0b 100644 --- a/electron_app/src/utils.js +++ b/electron_app/src/utils.js @@ -1,39 +1,45 @@ - function compute_n_cols() { - let w = window.innerWidth; - let n_col; - if (w < 576) { n_col = 2 } else if (w < 668) { n_col = 3 } else if (w < 892) { n_col = 4 } else if (w < 1100) { n_col = 5 } else if (w < 1600) { n_col = 6 } else if (w < 1900) { n_col = 7 } else if (w < 2100) { n_col = 8 } else if (w < 2400) { n_col = 9 } - - n_col -= 1; - return n_col; + let w = window.innerWidth + let n_col + if (w < 576) { + n_col = 2 + } else if (w < 668) { + n_col = 3 + } else if (w < 892) { + n_col = 4 + } else if (w < 1100) { + n_col = 5 + } else if (w < 1600) { + n_col = 6 + } else if (w < 1900) { + n_col = 7 + } else if (w < 2100) { + n_col = 8 + } else if (w < 2400) { + n_col = 9 + } + + n_col -= 1 + return n_col } - - -function simple_hash( strr ) { - var hash = 0; - for (var i = 0; i < strr.length; i++) { - var char = strr.charCodeAt(i); - hash = ((hash<<5)-hash)+char; - hash = hash & hash; // Convert to 32bit integer - } - return hash; +function simple_hash(strr) { + var hash = 0 + for (var i = 0; i < strr.length; i++) { + var char = strr.charCodeAt(i) + hash = (hash << 5) - hash + char + hash = hash & hash // Convert to 32bit integer + } + return hash } - function resolve_asset_illustration(name) { - let pre_assets_list_svg = [ - ]; - let pre_assets_list_png = [ - ]; - if (pre_assets_list_svg.includes(name)) - return require("@/assets/" + name + ".svg") - else if (pre_assets_list_png.includes(name)) - return require("@/assets/" + name + ".png") - else if (name.startsWith("https://") || name.startsWith("http://")) - return name; - else - return "file://" + name; + let pre_assets_list_svg = [] + let pre_assets_list_png = [] + if (pre_assets_list_svg.includes(name)) return require('@/assets/' + name + '.svg') + else if (pre_assets_list_png.includes(name)) return require('@/assets/' + name + '.png') + else if (name.startsWith('https://') || name.startsWith('http://')) return name + else return 'file://' + name } -export { compute_n_cols ,resolve_asset_illustration , simple_hash } \ No newline at end of file +export { compute_n_cols, resolve_asset_illustration, simple_hash }