mirror of
https://github.com/Toinane/colorpicker.git
synced 2026-09-25 16:50:25 -04:00
refacto(storage): use other module for storage
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
"output": "out"
|
||||
},
|
||||
"files": [
|
||||
"**/*"
|
||||
"src/*"
|
||||
],
|
||||
"mac": {
|
||||
"category": "public.app-category.graphics-design",
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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', () => {
|
||||
|
||||
@@ -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,
|
||||
Reference in New Issue
Block a user