config quit confirm #252

pull/276/head
Mikael Finstad 6 years ago
parent 059b30c4b8
commit 55131fde62

@ -16,6 +16,8 @@ if (!isDev) process.env.NODE_ENV = 'production';
// be closed automatically when the JavaScript object is garbage collected.
let mainWindow;
let askBeforeClose = false;
function createWindow() {
mainWindow = new BrowserWindow({
darkTheme: true,
@ -34,6 +36,8 @@ function createWindow() {
// https://stackoverflow.com/questions/39574636/prompt-to-save-quit-before-closing-window/47434365
mainWindow.on('close', (e) => {
if (!askBeforeClose) return;
const choice = electron.dialog.showMessageBoxSync(mainWindow, {
type: 'question',
buttons: ['Yes', 'No'],
@ -79,3 +83,7 @@ electron.ipcMain.on('renderer-ready', () => {
if (fileToOpen && !fileToOpen.startsWith('-psn_')) mainWindow.webContents.send('file-opened', [fileToOpen]);
}
});
electron.ipcMain.on('setAskBeforeClose', (e, val) => {
askBeforeClose = val;
});

@ -117,6 +117,7 @@ const App = memo(() => {
const [mifiLink, setMifiLink] = useState();
const [invertCutSegments, setInvertCutSegments] = useState(false);
const [autoExportExtraStreams, setAutoExportExtraStreams] = useState(true);
const [askBeforeClose, setAskBeforeClose] = useState(true);
const videoRef = useRef();
const timelineWrapperRef = useRef();
@ -808,6 +809,10 @@ const App = memo(() => {
electron.ipcRenderer.send('renderer-ready');
}, []);
useEffect(() => {
electron.ipcRenderer.send('setAskBeforeClose', askBeforeClose);
}, [askBeforeClose]);
const extractAllStreams = useCallback(async () => {
if (!filePath) return;
@ -1053,8 +1058,7 @@ const App = memo(() => {
);
}
function renderSettings() {
return (
const renderSettings = () => (
<Fragment>
<tr>
<td>Output format (default autodetected)</td>
@ -1161,9 +1165,20 @@ const App = memo(() => {
</button>
</td>
</tr>
<tr>
<td>Ask for confirmation when closing app?</td>
<td>
<button
type="button"
onClick={() => setAskBeforeClose(v => !v)}
>
{askBeforeClose ? 'Ask before closing' : 'Don\'t ask before closing'}
</button>
</td>
</tr>
</Fragment>
);
}
useEffect(() => {
loadMifiLink().then(setMifiLink);

Loading…
Cancel
Save