mirror of
https://github.com/LinoSchmidt/StickExporterTX.git
synced 2026-03-21 01:51:15 +01:00
Added finish side and notification
This commit is contained in:
113
package-lock.json
generated
113
package-lock.json
generated
@@ -13,6 +13,7 @@
|
|||||||
"@electron/remote": "^2.0.8",
|
"@electron/remote": "^2.0.8",
|
||||||
"csv-parse": "^5.2.0",
|
"csv-parse": "^5.2.0",
|
||||||
"electron-log": "^4.4.7",
|
"electron-log": "^4.4.7",
|
||||||
|
"electron-notification-state": "^1.0.4",
|
||||||
"electron-squirrel-startup": "^1.0.0",
|
"electron-squirrel-startup": "^1.0.0",
|
||||||
"electron-updater": "^5.0.1",
|
"electron-updater": "^5.0.1",
|
||||||
"is-valid-path": "^0.1.1",
|
"is-valid-path": "^0.1.1",
|
||||||
@@ -3668,6 +3669,14 @@
|
|||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/bindings": {
|
||||||
|
"version": "1.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
|
||||||
|
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"file-uri-to-path": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/bluebird": {
|
"node_modules/bluebird": {
|
||||||
"version": "3.7.2",
|
"version": "3.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
|
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
|
||||||
@@ -5040,6 +5049,17 @@
|
|||||||
"resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.7.tgz",
|
"resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.7.tgz",
|
||||||
"integrity": "sha512-uFZQdgevOp9Fn5lDOrJMU/bmmYxDLZitbIHJM7VXN+cpB59ZnPt1FQL4bOf/Dl2gaIMPYJEfXx38GvJma5iV6A=="
|
"integrity": "sha512-uFZQdgevOp9Fn5lDOrJMU/bmmYxDLZitbIHJM7VXN+cpB59ZnPt1FQL4bOf/Dl2gaIMPYJEfXx38GvJma5iV6A=="
|
||||||
},
|
},
|
||||||
|
"node_modules/electron-notification-state": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/electron-notification-state/-/electron-notification-state-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-MUTLCx+u8yha0cH//B1H0p1itT1RHVZvwV71s3HP9l0Kxbhwq/WQMtikmgwptFBqF0xJ6QyzmKXO3W/n+kboqQ==",
|
||||||
|
"deprecated": "this package has been deprecated",
|
||||||
|
"dependencies": {
|
||||||
|
"macos-notification-state": "^1.1.0",
|
||||||
|
"windows-notification-state": "^1.3.0",
|
||||||
|
"windows-quiet-hours": "^1.2.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/electron-osx-sign": {
|
"node_modules/electron-osx-sign": {
|
||||||
"version": "0.6.0",
|
"version": "0.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz",
|
||||||
@@ -6109,6 +6129,11 @@
|
|||||||
"node": "^10.12.0 || >=12.0.0"
|
"node": "^10.12.0 || >=12.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/file-uri-to-path": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
|
||||||
|
},
|
||||||
"node_modules/filelist": {
|
"node_modules/filelist": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
|
||||||
@@ -7766,6 +7791,15 @@
|
|||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/macos-notification-state": {
|
||||||
|
"version": "1.3.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/macos-notification-state/-/macos-notification-state-1.3.6.tgz",
|
||||||
|
"integrity": "sha512-/iL0Mepra7laWWxCWvXWQea+D8j7o73iazcgap5gYd/Lbx29JY0nfH3dYVNzWQT/AKvoB0I55fdTY/fd5JiTPg==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"dependencies": {
|
||||||
|
"bindings": "^1.5.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/make-dir": {
|
"node_modules/make-dir": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
|
||||||
@@ -7986,6 +8020,11 @@
|
|||||||
"multicast-dns": "cli.js"
|
"multicast-dns": "cli.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/nan": {
|
||||||
|
"version": "2.16.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz",
|
||||||
|
"integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA=="
|
||||||
|
},
|
||||||
"node_modules/nanoid": {
|
"node_modules/nanoid": {
|
||||||
"version": "3.3.4",
|
"version": "3.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
|
||||||
@@ -10913,6 +10952,26 @@
|
|||||||
"integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==",
|
"integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/windows-notification-state": {
|
||||||
|
"version": "1.3.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/windows-notification-state/-/windows-notification-state-1.3.4.tgz",
|
||||||
|
"integrity": "sha512-Z2n6YLARi14AGqaY5zAlMnhButzjRjlQui0k73nXe4tVRg2U918zLeC3ZxM/i4JKho/GqV85rgQsMfLWnbTUCA==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"dependencies": {
|
||||||
|
"bindings": "^1.5.0",
|
||||||
|
"nan": "^2.14.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/windows-quiet-hours": {
|
||||||
|
"version": "1.2.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/windows-quiet-hours/-/windows-quiet-hours-1.2.7.tgz",
|
||||||
|
"integrity": "sha512-PjKM2/RQhZ3ikG4COq0vPpXvmJsxckcg2YN3xmQv8kZl5l1uu00a/epSGDeY6tczDPkzBhoThBz1FKRqxBA7cQ==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"dependencies": {
|
||||||
|
"bindings": "^1.3.0",
|
||||||
|
"nan": "^2.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/word-wrap": {
|
"node_modules/word-wrap": {
|
||||||
"version": "1.2.3",
|
"version": "1.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
|
||||||
@@ -13757,6 +13816,14 @@
|
|||||||
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
|
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"bindings": {
|
||||||
|
"version": "1.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
|
||||||
|
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
|
||||||
|
"requires": {
|
||||||
|
"file-uri-to-path": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"bluebird": {
|
"bluebird": {
|
||||||
"version": "3.7.2",
|
"version": "3.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
|
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
|
||||||
@@ -14784,6 +14851,16 @@
|
|||||||
"resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.7.tgz",
|
"resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.7.tgz",
|
||||||
"integrity": "sha512-uFZQdgevOp9Fn5lDOrJMU/bmmYxDLZitbIHJM7VXN+cpB59ZnPt1FQL4bOf/Dl2gaIMPYJEfXx38GvJma5iV6A=="
|
"integrity": "sha512-uFZQdgevOp9Fn5lDOrJMU/bmmYxDLZitbIHJM7VXN+cpB59ZnPt1FQL4bOf/Dl2gaIMPYJEfXx38GvJma5iV6A=="
|
||||||
},
|
},
|
||||||
|
"electron-notification-state": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/electron-notification-state/-/electron-notification-state-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-MUTLCx+u8yha0cH//B1H0p1itT1RHVZvwV71s3HP9l0Kxbhwq/WQMtikmgwptFBqF0xJ6QyzmKXO3W/n+kboqQ==",
|
||||||
|
"requires": {
|
||||||
|
"macos-notification-state": "^1.1.0",
|
||||||
|
"windows-notification-state": "^1.3.0",
|
||||||
|
"windows-quiet-hours": "^1.2.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"electron-osx-sign": {
|
"electron-osx-sign": {
|
||||||
"version": "0.6.0",
|
"version": "0.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz",
|
||||||
@@ -15638,6 +15715,11 @@
|
|||||||
"flat-cache": "^3.0.4"
|
"flat-cache": "^3.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"file-uri-to-path": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
|
||||||
|
},
|
||||||
"filelist": {
|
"filelist": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
|
||||||
@@ -16845,6 +16927,14 @@
|
|||||||
"yallist": "^4.0.0"
|
"yallist": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"macos-notification-state": {
|
||||||
|
"version": "1.3.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/macos-notification-state/-/macos-notification-state-1.3.6.tgz",
|
||||||
|
"integrity": "sha512-/iL0Mepra7laWWxCWvXWQea+D8j7o73iazcgap5gYd/Lbx29JY0nfH3dYVNzWQT/AKvoB0I55fdTY/fd5JiTPg==",
|
||||||
|
"requires": {
|
||||||
|
"bindings": "^1.5.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"make-dir": {
|
"make-dir": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
|
||||||
@@ -17009,6 +17099,11 @@
|
|||||||
"thunky": "^1.0.2"
|
"thunky": "^1.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nan": {
|
||||||
|
"version": "2.16.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz",
|
||||||
|
"integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA=="
|
||||||
|
},
|
||||||
"nanoid": {
|
"nanoid": {
|
||||||
"version": "3.3.4",
|
"version": "3.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
|
||||||
@@ -19164,6 +19259,24 @@
|
|||||||
"integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==",
|
"integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"windows-notification-state": {
|
||||||
|
"version": "1.3.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/windows-notification-state/-/windows-notification-state-1.3.4.tgz",
|
||||||
|
"integrity": "sha512-Z2n6YLARi14AGqaY5zAlMnhButzjRjlQui0k73nXe4tVRg2U918zLeC3ZxM/i4JKho/GqV85rgQsMfLWnbTUCA==",
|
||||||
|
"requires": {
|
||||||
|
"bindings": "^1.5.0",
|
||||||
|
"nan": "^2.14.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"windows-quiet-hours": {
|
||||||
|
"version": "1.2.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/windows-quiet-hours/-/windows-quiet-hours-1.2.7.tgz",
|
||||||
|
"integrity": "sha512-PjKM2/RQhZ3ikG4COq0vPpXvmJsxckcg2YN3xmQv8kZl5l1uu00a/epSGDeY6tczDPkzBhoThBz1FKRqxBA7cQ==",
|
||||||
|
"requires": {
|
||||||
|
"bindings": "^1.3.0",
|
||||||
|
"nan": "^2.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"word-wrap": {
|
"word-wrap": {
|
||||||
"version": "1.2.3",
|
"version": "1.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
|
||||||
|
|||||||
@@ -104,6 +104,7 @@
|
|||||||
"@electron/remote": "^2.0.8",
|
"@electron/remote": "^2.0.8",
|
||||||
"csv-parse": "^5.2.0",
|
"csv-parse": "^5.2.0",
|
||||||
"electron-log": "^4.4.7",
|
"electron-log": "^4.4.7",
|
||||||
|
"electron-notification-state": "^1.0.4",
|
||||||
"electron-squirrel-startup": "^1.0.0",
|
"electron-squirrel-startup": "^1.0.0",
|
||||||
"electron-updater": "^5.0.1",
|
"electron-updater": "^5.0.1",
|
||||||
"is-valid-path": "^0.1.1",
|
"is-valid-path": "^0.1.1",
|
||||||
|
|||||||
@@ -6,8 +6,15 @@ import { setLogNumber, setPastTime, setRemainingTime, setRenderDisplayProgress,
|
|||||||
import {imageLoading, imageLoaded} from "./ui/settingsSide";
|
import {imageLoading, imageLoaded} from "./ui/settingsSide";
|
||||||
import { getLogList, getLogSize, settingList } from "./settings";
|
import { getLogList, getLogSize, settingList } from "./settings";
|
||||||
import isValid from "is-valid-path";
|
import isValid from "is-valid-path";
|
||||||
import { sideSetRendering, setProgress } from "../renderer";
|
import { sideSetRendering, setProgress, openSide, Side } from "../renderer";
|
||||||
import { ipcRenderer } from "electron";
|
import { ipcRenderer } from "electron";
|
||||||
|
// import { getDoNotDisturb } from "electron-notification-state";
|
||||||
|
|
||||||
|
export const renderInfo = {
|
||||||
|
time: "0min 0sec",
|
||||||
|
startTime: 0,
|
||||||
|
endTime: 0
|
||||||
|
}
|
||||||
|
|
||||||
const blenderStartString = [
|
const blenderStartString = [
|
||||||
templatePath,
|
templatePath,
|
||||||
@@ -26,8 +33,6 @@ let renderingPicture = false;
|
|||||||
let renderingVideo = false;
|
let renderingVideo = false;
|
||||||
let waitingForRender = false;
|
let waitingForRender = false;
|
||||||
|
|
||||||
let renderStartTime = new Date().getTime();
|
|
||||||
|
|
||||||
let logPortionList:number[] = [];
|
let logPortionList:number[] = [];
|
||||||
let currentLogPortion = 0;
|
let currentLogPortion = 0;
|
||||||
|
|
||||||
@@ -43,14 +48,15 @@ function setRenderProgress(log:number, init:boolean, frameCount:number, frame:nu
|
|||||||
setRenderDisplayProgress(parseFloat((progress*100).toFixed(2)));
|
setRenderDisplayProgress(parseFloat((progress*100).toFixed(2)));
|
||||||
|
|
||||||
const timeNow = new Date().getTime();
|
const timeNow = new Date().getTime();
|
||||||
const timeDiff = timeNow - renderStartTime;
|
const timeDiff = timeNow - renderInfo.startTime;
|
||||||
let timeDiffSeconds = timeDiff / 1000;
|
let timeDiffSeconds = timeDiff / 1000;
|
||||||
let timeDiffMinutes = 0;
|
let timeDiffMinutes = 0;
|
||||||
while(timeDiffSeconds > 60) {
|
while(timeDiffSeconds > 60) {
|
||||||
timeDiffMinutes++;
|
timeDiffMinutes++;
|
||||||
timeDiffSeconds -= 60;
|
timeDiffSeconds -= 60;
|
||||||
}
|
}
|
||||||
setPastTimeNow(timeDiffMinutes + "m " + timeDiffSeconds.toFixed(0) + "s");
|
renderInfo.time = timeDiffMinutes + "m " + timeDiffSeconds.toFixed(0) + "s";
|
||||||
|
setPastTimeNow(renderInfo.time);
|
||||||
|
|
||||||
if(progress > 0) {
|
if(progress > 0) {
|
||||||
const timeRemaining = (timeDiff / progress) * (1 - progress);
|
const timeRemaining = (timeDiff / progress) * (1 - progress);
|
||||||
@@ -108,8 +114,15 @@ function startBlender() {
|
|||||||
}
|
}
|
||||||
if(dataStr.includes("Finished") && renderingVideo) {
|
if(dataStr.includes("Finished") && renderingVideo) {
|
||||||
sideSetRendering(false);
|
sideSetRendering(false);
|
||||||
|
renderInfo.endTime = new Date().getTime();
|
||||||
if(lastFrame == frames) {
|
if(lastFrame == frames) {
|
||||||
setStatus("Finished Render Successfully!");
|
openSide(Side.RenderFinish);
|
||||||
|
// TODO: only show notification if not in do not disturb mode, currently not working. Details: https://github.com/felixrieseberg/macos-notification-state/issues/30
|
||||||
|
new Notification("Render Finished", {
|
||||||
|
body: "Rendering finished successfully!"
|
||||||
|
}).onclick = function() {
|
||||||
|
ipcRenderer.send("openApp");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
logger.errorMSG("Render Failed!");
|
logger.errorMSG("Render Failed!");
|
||||||
}
|
}
|
||||||
@@ -212,7 +225,7 @@ function blender(command:blenderCmd) {
|
|||||||
setBlenderLoading(true);
|
setBlenderLoading(true);
|
||||||
blenderConsole.stdin.write("startRendering\n");
|
blenderConsole.stdin.write("startRendering\n");
|
||||||
|
|
||||||
renderStartTime = new Date().getTime();
|
renderInfo.startTime = new Date().getTime();
|
||||||
setPastTime("0min 0sec");
|
setPastTime("0min 0sec");
|
||||||
setRemainingTime("calculating...");
|
setRemainingTime("calculating...");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ function WindowsMenu({side, blenderLoading, blenderStatus}:{side:Side, blenderLo
|
|||||||
{(side == Side.Main)? "StickExporterTX" : null}
|
{(side == Side.Main)? "StickExporterTX" : null}
|
||||||
{(side == Side.Settings)? "Settings" : null}
|
{(side == Side.Settings)? "Settings" : null}
|
||||||
{(side == Side.Rendering)? "Rendering" : null}
|
{(side == Side.Rendering)? "Rendering" : null}
|
||||||
|
{(side == Side.RenderFinish)? "Render Finished" : null}
|
||||||
</h4>
|
</h4>
|
||||||
<div id="blender-info-win">
|
<div id="blender-info-win">
|
||||||
<div id="blender-icon-win">
|
<div id="blender-icon-win">
|
||||||
@@ -89,7 +90,12 @@ function WindowsMenu({side, blenderLoading, blenderStatus}:{side:Side, blenderLo
|
|||||||
function LinuxMenu({side, blenderLoading, blenderStatus}:{side:Side, blenderLoading:boolean, blenderStatus:string}) {
|
function LinuxMenu({side, blenderLoading, blenderStatus}:{side:Side, blenderLoading:boolean, blenderStatus:string}) {
|
||||||
return (
|
return (
|
||||||
<header id="linuxHeader">
|
<header id="linuxHeader">
|
||||||
<h1>{(side == Side.Main)? "StickExporterTX" : "Settings"}</h1>
|
<h1>
|
||||||
|
{(side == Side.Main)? "StickExporterTX" : null}
|
||||||
|
{(side == Side.Settings)? "Settings" : null}
|
||||||
|
{(side == Side.Rendering)? "Rendering" : null}
|
||||||
|
{(side == Side.RenderFinish)? "Render Finished" : null}
|
||||||
|
</h1>
|
||||||
<div id="blender-info-linux">
|
<div id="blender-info-linux">
|
||||||
<div id="blender-icon-linux">
|
<div id="blender-icon-linux">
|
||||||
{blenderLoading? <BlenderLoadingSVG/> : <BlenderReadySVG/>}
|
{blenderLoading? <BlenderLoadingSVG/> : <BlenderReadySVG/>}
|
||||||
|
|||||||
46
src/components/ui/renderFinishSide.tsx
Normal file
46
src/components/ui/renderFinishSide.tsx
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
import React, { CSSProperties } from "react";
|
||||||
|
import {openSide, Side} from "../../renderer";
|
||||||
|
import {renderInfo} from "../blenderController";
|
||||||
|
import openFolder from "../openFolder";
|
||||||
|
import {settingList} from "../settings";
|
||||||
|
|
||||||
|
const detailsStyle:CSSProperties = {
|
||||||
|
display: "flex",
|
||||||
|
marginBottom: "10px",
|
||||||
|
}
|
||||||
|
const detailsInnerStyle:CSSProperties = {
|
||||||
|
margin: "0px",
|
||||||
|
marginRight: "5px",
|
||||||
|
}
|
||||||
|
|
||||||
|
function RenderFinishSide() {
|
||||||
|
return (
|
||||||
|
<div id="content">
|
||||||
|
<h3 style={{
|
||||||
|
color: "#00c24a",
|
||||||
|
}}>Render finished Successfully!</h3>
|
||||||
|
<div style={detailsStyle}>
|
||||||
|
<h4 style={detailsInnerStyle}>Duration:</h4>
|
||||||
|
<p style={detailsInnerStyle}>{renderInfo.time}</p>
|
||||||
|
</div>
|
||||||
|
<div style={detailsStyle}>
|
||||||
|
<h4 style={detailsInnerStyle}>Start Time:</h4>
|
||||||
|
<p style={detailsInnerStyle}>{new Date(renderInfo.startTime).toLocaleString().replace(",", "")}</p>
|
||||||
|
</div>
|
||||||
|
<div style={detailsStyle}>
|
||||||
|
<h4 style={detailsInnerStyle}>End Time:</h4>
|
||||||
|
<p style={detailsInnerStyle}>{new Date(renderInfo.endTime).toLocaleString().replace(",", "")}</p>
|
||||||
|
</div>
|
||||||
|
<button style={{
|
||||||
|
marginTop: "10px",
|
||||||
|
marginRight: "10px",
|
||||||
|
backgroundColor: "#00c24a",
|
||||||
|
}} onClick={() => {
|
||||||
|
openSide(Side.Main);
|
||||||
|
}}>Finish</button>
|
||||||
|
<button onClick={() => openFolder(settingList.output)}>Open Output Folder</button>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default RenderFinishSide;
|
||||||
@@ -4,6 +4,7 @@ import path from 'path';
|
|||||||
import { autoUpdater } from "electron-updater";
|
import { autoUpdater } from "electron-updater";
|
||||||
import logger from 'electron-log';
|
import logger from 'electron-log';
|
||||||
import { Platform, platform } from './components/platform';
|
import { Platform, platform } from './components/platform';
|
||||||
|
|
||||||
logger.transports.console.format = "{h}:{i}:{s} {text}";
|
logger.transports.console.format = "{h}:{i}:{s} {text}";
|
||||||
logger.transports.file.getFile();
|
logger.transports.file.getFile();
|
||||||
logger.transports.file.resolvePath = () => path.join(app.getPath('userData'), "logs", "start.log");
|
logger.transports.file.resolvePath = () => path.join(app.getPath('userData'), "logs", "start.log");
|
||||||
@@ -112,6 +113,10 @@ const createWindow = () => {
|
|||||||
mainWindow.on('close', () => {
|
mainWindow.on('close', () => {
|
||||||
mainWindow.webContents.send('closeApp');
|
mainWindow.webContents.send('closeApp');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ipcMain.on('openApp', () => {
|
||||||
|
mainWindow.show();
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// This method will be called when Electron has finished
|
// This method will be called when Electron has finished
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import Menu from "./components/ui/menu";
|
|||||||
import MainSide from "./components/ui/mainSide";
|
import MainSide from "./components/ui/mainSide";
|
||||||
import SettingsSite from "./components/ui/settingsSide";
|
import SettingsSite from "./components/ui/settingsSide";
|
||||||
import RenderingSide from "./components/ui/renderingSide";
|
import RenderingSide from "./components/ui/renderingSide";
|
||||||
|
import RenderFinishSide from "./components/ui/renderFinishSide";
|
||||||
import "./index.css";
|
import "./index.css";
|
||||||
import "./toggle-switchy.css";
|
import "./toggle-switchy.css";
|
||||||
import { startBlender } from "./components/blenderController";
|
import { startBlender } from "./components/blenderController";
|
||||||
@@ -12,7 +13,8 @@ import {ipcRenderer} from "electron";
|
|||||||
enum Side {
|
enum Side {
|
||||||
Main,
|
Main,
|
||||||
Rendering,
|
Rendering,
|
||||||
Settings
|
Settings,
|
||||||
|
RenderFinish
|
||||||
}
|
}
|
||||||
|
|
||||||
let rendering = false;
|
let rendering = false;
|
||||||
@@ -31,6 +33,7 @@ function openSide(side:Side) {
|
|||||||
{(side === Side.Main)? <MainSide/> : null}
|
{(side === Side.Main)? <MainSide/> : null}
|
||||||
{(side === Side.Settings)? <SettingsSite/> : null}
|
{(side === Side.Settings)? <SettingsSite/> : null}
|
||||||
{(side === Side.Rendering)? <RenderingSide/> : null}
|
{(side === Side.Rendering)? <RenderingSide/> : null}
|
||||||
|
{(side === Side.RenderFinish)? <RenderFinishSide/> : null}
|
||||||
</React.StrictMode>
|
</React.StrictMode>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user