mirror of https://github.com/Askill/Photo-Wall.git
158 lines
3.8 KiB
JavaScript
158 lines
3.8 KiB
JavaScript
|
|
const electron = require('electron');
|
||
|
|
const path = require('path');
|
||
|
|
const {app, BrowserWindow, Menu, dialog} = electron;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Auto Updater
|
||
|
|
*
|
||
|
|
* Uncomment the following code below and install `electron-updater` to
|
||
|
|
* support auto updating. Code Signing with a valid certificate is required.
|
||
|
|
* https://simulatedgreg.gitbooks.io/electron-vue/content/en/using-electron-builder.html#auto-updating
|
||
|
|
*/
|
||
|
|
|
||
|
|
process.env.NODE_ENV = 'production'
|
||
|
|
|
||
|
|
const { autoUpdater } = require("electron-updater");
|
||
|
|
|
||
|
|
const server = 'http://update.jpmatz.de'
|
||
|
|
const feed = `${server}/update/win/latest`
|
||
|
|
let update = true;
|
||
|
|
autoUpdater.setFeedURL(feed)
|
||
|
|
|
||
|
|
const ipcMain = electron.ipcMain
|
||
|
|
|
||
|
|
setInterval(() => {
|
||
|
|
autoUpdater.checkForUpdates()
|
||
|
|
}, 60000)
|
||
|
|
|
||
|
|
autoUpdater.logger = require("electron-log");
|
||
|
|
autoUpdater.logger.transports.file.level = "info";
|
||
|
|
|
||
|
|
autoUpdater.on('update-downloaded', () => {
|
||
|
|
if(update){
|
||
|
|
dialog.showMessageBox({
|
||
|
|
type: 'info',
|
||
|
|
title: 'Found Updates',
|
||
|
|
message: 'Found updates, do you want to update now?',
|
||
|
|
buttons: ['Sure', 'Nope']
|
||
|
|
}, (buttonIndex) => {
|
||
|
|
if (buttonIndex === 0) {
|
||
|
|
const isSilent = true;
|
||
|
|
const isForceRunAfter = true;
|
||
|
|
autoUpdater.quitAndInstall(isSilent, isForceRunAfter);
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
update = false;
|
||
|
|
|
||
|
|
}
|
||
|
|
})
|
||
|
|
}
|
||
|
|
})
|
||
|
|
|
||
|
|
autoUpdater.on('error', message => {
|
||
|
|
console.error('There was a problem updating the application')
|
||
|
|
console.error(message)
|
||
|
|
})
|
||
|
|
|
||
|
|
|
||
|
|
let mainWindow;
|
||
|
|
// when app is ready
|
||
|
|
app.on('ready', function(){
|
||
|
|
autoUpdater.checkForUpdates()
|
||
|
|
var dns = require('dns');
|
||
|
|
|
||
|
|
dns.resolve4('query.jpmatz.de', function (err, addresses) {
|
||
|
|
if (err) app.quit();
|
||
|
|
});
|
||
|
|
|
||
|
|
mainWindow = new BrowserWindow({
|
||
|
|
width: 800,
|
||
|
|
height: 600,
|
||
|
|
webPreferences: {
|
||
|
|
nodeIntegration: true,
|
||
|
|
//preload: path.join(__dirname, 'preload.js')
|
||
|
|
}
|
||
|
|
})
|
||
|
|
|
||
|
|
// load html
|
||
|
|
mainWindow.loadFile(path.join(__dirname, 'mainWindow.html'));
|
||
|
|
mainWindow.maximize();
|
||
|
|
|
||
|
|
|
||
|
|
//mainWindow.webContents.openDevTools();
|
||
|
|
//mainWindow.show();
|
||
|
|
// close all windows
|
||
|
|
mainWindow.on('closed', function(){
|
||
|
|
app.quit();
|
||
|
|
});
|
||
|
|
|
||
|
|
|
||
|
|
// build Menue from Template
|
||
|
|
const mainMenu = Menu.buildFromTemplate(mainMenueTemplate);
|
||
|
|
// insert menu
|
||
|
|
Menu.setApplicationMenu(mainMenu);
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// create menue template
|
||
|
|
|
||
|
|
const mainMenueTemplate = [
|
||
|
|
{
|
||
|
|
label: 'File',
|
||
|
|
submenu:[{
|
||
|
|
label: 'save',
|
||
|
|
accelerator: process.platform== 'darwin' ? 'Command+S' : 'Ctrl+S',
|
||
|
|
click(){
|
||
|
|
let path = dialog.showSaveDialog({
|
||
|
|
filters: [
|
||
|
|
{ name: 'png', extensions: ['png'] }
|
||
|
|
]
|
||
|
|
});
|
||
|
|
mainWindow.webContents.send('saveCanvas', path);
|
||
|
|
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
label: 'Quit',
|
||
|
|
accelerator: process.platform== 'darwin' ? 'Command+Q' : 'Ctrl+Q',
|
||
|
|
click(){
|
||
|
|
app.quit();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
label: 'Scale',
|
||
|
|
submenu:[{
|
||
|
|
label: 'set scale',
|
||
|
|
click(){
|
||
|
|
mainWindow.webContents.send('setScale');
|
||
|
|
}
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
];
|
||
|
|
|
||
|
|
// if mac add empty object to menue
|
||
|
|
|
||
|
|
if(process.platform == 'darwin'){
|
||
|
|
mainMenueTemplate.unshift({});
|
||
|
|
}
|
||
|
|
|
||
|
|
// add dev tools if debug
|
||
|
|
|
||
|
|
if(process.env.node_env != 'production'){
|
||
|
|
mainMenueTemplate.push({
|
||
|
|
label: 'DevTools',
|
||
|
|
submenu: [
|
||
|
|
{
|
||
|
|
label: 'toogle',
|
||
|
|
accelerator: process.platform == 'darwin' ? 'Command+I' : 'Ctrl+I',
|
||
|
|
click(item, focusedWindow){
|
||
|
|
focusedWindow.toggleDevTools();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
]
|
||
|
|
})
|
||
|
|
}
|