Saving terminal state

This commit is contained in:
2023-04-11 21:02:16 +02:00
parent 248f676185
commit 2e9731e69a
2 changed files with 31 additions and 8 deletions

View File

@@ -27,6 +27,7 @@ type JSONSettings = {
profiles: JSONProfile[],
logs: string[],
output: string,
showRenderTerminal: boolean
}
const defaultSettings:JSONSettings = {
@@ -42,7 +43,8 @@ const defaultSettings:JSONSettings = {
}
],
logs: [],
output: defaultOutputPath
output: defaultOutputPath,
showRenderTerminal: false
};
function catchSetting(tryFunc:()=>string, catchFunc:()=>string) {
@@ -126,7 +128,8 @@ const settingList = await fetch(SettingPath).then(function(response) {
output: catchSetting(function() {return getXMLChild(xmlDoc, "output");},function() {
fetchFailed === "singleSetting"? fetchFailed = "multiSetting":fetchFailed = "singleSetting";
return defaultSettings.output;
})
}),
showRenderTerminal: defaultSettings.showRenderTerminal
} as JSONSettings;
});
}
@@ -195,7 +198,15 @@ const settingList = await fetch(SettingPath).then(function(response) {
output: catchSetting(function() {return parsedData.output;},function() {
fetchFailed === "singleSetting"? fetchFailed = "multiSetting":fetchFailed = "singleSetting";
return defaultSettings.output;
})
}),
showRenderTerminal: function() {
if(typeof parsedData.showRenderTerminal === "boolean") {
return parsedData.showRenderTerminal;
} else {
fetchFailed === "singleSetting"? fetchFailed = "multiSetting":fetchFailed = "singleSetting";
return defaultSettings.showRenderTerminal;
}
}()
}
});
if(fetchFailed !== "") {
@@ -332,6 +343,14 @@ function getInOutSettings() {
return {logs: settingList.logs, output: settingList.output};
}
function setShowRenderTerminal(show:boolean) {
settingList.showRenderTerminal = show;
writeSettings();
}
function getShowRenderTerminal() {
return settingList.showRenderTerminal;
}
function removeProfile(profileName?:string) {
if(profileName === undefined) {
profileName = getActiveProfile().profileName;
@@ -498,6 +517,8 @@ export {
getActiveProfile,
setInOutSettings,
getInOutSettings,
setShowRenderTerminal,
getShowRenderTerminal,
getLogSize,
importProfile,
exportProfile,

View File

@@ -1,5 +1,5 @@
import React, {useEffect, useRef, useState} from "react";
import {getInOutSettings} from "../settings";
import {getInOutSettings, getShowRenderTerminal, setShowRenderTerminal} from "../settings";
import openFolder from "../openFolder";
import { blenderCmd, blender } from "../blenderController";
@@ -14,7 +14,7 @@ let pastTimeNow = "0m 0s";
let remainingTimeNow = "calculating...";
function RenderingPage() {
const [terminalHidden, setTerminalHidden] = useState("none");
const [terminalHidden, setTerminalHidden] = useState(getShowRenderTerminal() ? "block" : "none");
const [terminalScroll, setTerminalScroll] = useState(true);
const [scrollButtonText, setScrollButtonText] = useState("pause scroll");
const [logNumber, setLogNumberInner] = useState("0");
@@ -93,10 +93,12 @@ function RenderingPage() {
<button id="stopRenderButton" onClick={() => blender(blenderCmd.stopRendering)}>Stop</button>
<button onClick={() => openFolder(getInOutSettings().output)}>Open Output Folder</button>
<button onClick={() => {
if (terminalHidden === "none") {
setTerminalHidden("block");
} else {
if (getShowRenderTerminal()) {
setTerminalHidden("none");
setShowRenderTerminal(false);
} else {
setTerminalHidden("block");
setShowRenderTerminal(true);
}
}} style={{marginLeft:"10px"}}>Details</button>
<div style={{display: terminalHidden}}>