refacto(storage): use other module for storage

This commit is contained in:
Toinane
2017-08-02 14:07:34 +02:00
parent cb276ef723
commit 5287b2f0f8
6 changed files with 108 additions and 88 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
"output": "out"
},
"files": [
"**/*"
"src/*"
],
"mac": {
"category": "public.app-category.graphics-design",
+6 -1
View File
@@ -7,7 +7,7 @@
"output": "out"
},
"files": [
"**/*"
"src/*"
],
"mac": {
"category": "public.app-category.graphics-design",
@@ -22,6 +22,11 @@
"height": 380
}
},
"linux": {
"icon": "./build",
"synopsis": "Colorpicker App",
"category": "Graphics"
},
"win": {
"icon": "build/icon.ico"
}
+5 -6
View File
@@ -23,16 +23,15 @@
"Crea-THAT",
"crea-that"
],
"dependencies": {
"electron-json-storage": "^3.0.7",
"robotjs": "^0.4.7"
},
"devDependencies": {
"electron": "1.6.11",
"electron-builder": "19.6.3"
},
"author": "Toinane",
"homepage": "https://toinane.crea-th.at",
"license": "GNU GPLv3",
"dependencies": {
"electron-json-storage": "^3.0.7",
"electron-storage": "^1.0.7",
"robotjs": "^0.4.7"
}
"license": "GNU GPLv3"
}
+14 -33
View File
@@ -1,7 +1,7 @@
'use strict';
const {BrowserWindow, Menu} = require('electron');
const config = require('../settings');
const {BrowserWindow} = require('electron');
const config = require('../storage');
let win, dirname, settings;
@@ -14,8 +14,8 @@ let init = folder => {
config.getSettings('colorpicker').then(config => {
settings = config;
if(win === null || win === undefined) {
setMenu();
createWindow(settings.size.width, settings.size.height);
console.log(config)
createWindow(settings.size.width, settings.size.height, settings.pos.x, settings.pos.y);
} else { win.show(); }
});
};
@@ -26,12 +26,14 @@ let init = folder => {
* @param {int} height [height of the window]
* @return {void}
*/
let createWindow = (width, height) => {
let createWindow = (width, height, x, y) => {
win = new BrowserWindow({
frame:false,
'auto-hide-menu-bar': true,
width: width,
height: height,
x: x,
y: y,
minWidth: 438,
minHeight: 139,
icon: `${dirname}/build/logo.png`
@@ -53,41 +55,20 @@ let createWindow = (width, height) => {
*/
let windowEvents = win => {
win.on('resize', event => {
const size = win.getBounds();
settings.size.width = size.width;
settings.size.height = size.height;
config.saveSettings('colorpicker', settings);
});
};
/**
* [setMenu - set new app menu]
* @return {void}
*/
let setMenu = () => {
let template = [{
label: "Colorpicker",
submenu: [
{ label: "About Colorpicker", selector: "orderFrontStandardAboutPanel:" },
{ type: "separator" },
{ label: "Quit", accelerator: "Command+Q", click:() => { app.quit(); }}
]}, {
label: "Edit",
submenu: [
{ label: "Undo", accelerator: "CmdOrCtrl+Z", selector: "undo:" },
{ label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:" },
{ type: "separator" },
{ label: "Cut", accelerator: "CmdOrCtrl+X", selector: "cut:" },
{ label: "Copy", accelerator: "CmdOrCtrl+C", selector: "copy:" },
{ label: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:" },
{ label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:" }
]}
];
Menu.setApplicationMenu(Menu.buildFromTemplate(template));
}
win.on('move', event => {
const size = win.getBounds();
settings.pos.x = size.x;
settings.pos.y = size.y;
config.saveSettings('colorpicker', settings);
});
};
module.exports = {
init: init
+30 -3
View File
@@ -1,7 +1,7 @@
'use strict';
const {app, Tray} = require('electron');
const settings = require('./settings');
const {app, Tray, Menu} = require('electron');
const settings = require('./storage');
const {colorpicker, hexacolor, picker} = require('./browsers');
let tray;
@@ -15,10 +15,37 @@ let createTray = () => {
tray.on('click', event => colorpicker.init(__dirname));
}
/**
* [setMenu - set new app menu]
* @return {void}
*/
let setMenu = () => {
let template = [{
label: "Colorpicker",
submenu: [
{ label: "About Colorpicker", selector: "orderFrontStandardAboutPanel:" },
{ type: "separator" },
{ label: "Quit", accelerator: "Command+Q", click:() => { app.quit(); }}
]}, {
label: "Edit",
submenu: [
{ label: "Undo", accelerator: "CmdOrCtrl+Z", selector: "undo:" },
{ label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:" },
{ type: "separator" },
{ label: "Cut", accelerator: "CmdOrCtrl+X", selector: "cut:" },
{ label: "Copy", accelerator: "CmdOrCtrl+C", selector: "copy:" },
{ label: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:" },
{ label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:" }
]}
];
Menu.setApplicationMenu(Menu.buildFromTemplate(template));
}
app.on('ready', () => {
createTray();
setMenu();
colorpicker.init(__dirname);
// picker.init(__dirname);
//picker.init(__dirname);
});
app.on('activate', () => {
+52 -44
View File
@@ -1,20 +1,27 @@
'use strict';
const storage = require('electron-storage');
const storage = require('electron-json-storage');
// @TODO utiliser electron-json-storage quand async & await est possible
let settings = {};
/**
* [getSettings - return settings]
* @return {object} [App settings]
*/
let getSettings = name => storage.get(name);
let saveSettings = (name, config) => {
settings = config;
return storage.set(name, config);
}
let templateWindows = {
'size': { 'width': 484, 'height': 190 },
'pos': { 'x': 300, 'y': 300},
'buttonsPosition': 'right',
'buttonsType': 'window'
};
let templateMacOS = {
'size': { 'width': 484, 'height': 190 },
'pos': { 'x': 300, 'y': 300},
'buttonsPosition': 'left',
'buttonsType': 'osx'
};
let templaceLinux = {
'size': { 'width': 484, 'height': 190 },
'pos': { 'x': 300, 'y': 300},
'buttonsPosition': 'right',
'buttonsType': 'linux'
};
/**
* [init - init settings]
@@ -22,32 +29,51 @@ let saveSettings = (name, config) => {
*/
let init = name => (
new Promise((resolve, reject) => (
storage.isPathExists(name)
.then(result => {
if (result) { resolve(initStorage(name)); }
storage.has(name, (err, exist) => {
if (err) throw err;
if (exist) { resolve(getSettings(name)); }
else { resolve(initDefaultSettings(name)); }
})
.catch(err => reject(err))
))
);
/**
* [initStorage - load settings from storage]
* @return {Promise} [promise for load settings]
* [getSettings - return settings]
* @return {object} [App settings]
*/
let checkStorage = name => {
console.log('init storage');
return storage.get(name).then(result => {
settings = result;
});
}
let getSettings = name => (
new Promise((resolve, reject) => {
console.log('get Settings');
storage.get(name, (err, data) => {
if (err) throw err;
settings = data;
resolve(data);
});
})
);
/**
* [saveSettings - save settings]
* @param {[type]} name [description]
* @param {[type]} config [description]
* @return {[type]} [description]
*/
let saveSettings = (name, config) => (
new Promise((resolve, reject) => {
settings = config;
storage.set(name, config, (err, data) => {
if (err) throw err;
resolve(true);
});
})
);
/**
* [initDefaultSettings - save default settings to storage]
* @return {Promise} [promise for save settings]
*/
let initDefaultSettings = name => {
console.log('init default settings');
console.log('Init default settings');
switch(process.platform) {
case 'darwin': settings = templateMacOS; break;
case 'win32': settings = templateWindows; break;
@@ -56,27 +82,9 @@ let initDefaultSettings = name => {
case 'sunos': settings = templaceLinux; break;
default: settings = templateMacOS; break;
}
return storage.set(name, settings);
return saveSettings(name, settings);
}
let templateWindows = {
'size': { 'width': 484, 'height': 190 },
'buttonsPosition': 'right',
'buttonsType': 'window'
};
let templateMacOS = {
'size': { 'width': 484, 'height': 190 },
'buttonsPosition': 'left',
'buttonsType': 'osx'
};
let templaceLinux = {
'size': { 'width': 484, 'height': 190 },
'buttonsPosition': 'right',
'buttonsType': 'linux'
};
module.exports = {
init: init,
getSettings: getSettings,