mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
Enhancement palettes : Added download palette
- palettes can be downloaded as GPL palettes - slightly tweaked the UI of hsl rgb picker - switched preferred format of spectrum to hex
This commit is contained in:
parent
fab9c6e836
commit
8ebdc4cd41
@ -82,7 +82,7 @@
|
|||||||
float:left;
|
float:left;
|
||||||
height : 10px;
|
height : 10px;
|
||||||
width : 100px;
|
width : 100px;
|
||||||
margin: 7px 5px;
|
margin: 7px 1px 7px 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.color-picker-slider input[type="text"]{
|
.color-picker-slider input[type="text"]{
|
||||||
|
@ -149,7 +149,16 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ns.PalettesListController.prototype.downloadSelectedPalette_ = function () {
|
ns.PalettesListController.prototype.downloadSelectedPalette_ = function () {
|
||||||
window.alert('not implemented yet');
|
// getSelectedPalette
|
||||||
|
var paletteId = this.colorPaletteSelect_.value;
|
||||||
|
var palette = this.paletteService.getPaletteById(paletteId);
|
||||||
|
|
||||||
|
var paletteWriter = new pskl.service.palette.PaletteGplWriter(palette);
|
||||||
|
var paletteAsString = paletteWriter.write();
|
||||||
|
|
||||||
|
pskl.utils.BlobUtils.stringToBlob(paletteAsString, function(blob) {
|
||||||
|
pskl.utils.FileUtils.downloadAsFile(blob, palette.name + '.gpl');
|
||||||
|
}.bind(this), "application/json");
|
||||||
};
|
};
|
||||||
|
|
||||||
ns.PalettesListController.prototype.onColorContainerContextMenu = function (event) {
|
ns.PalettesListController.prototype.onColorContainerContextMenu = function (event) {
|
||||||
|
@ -20,7 +20,8 @@
|
|||||||
showInput: true,
|
showInput: true,
|
||||||
showButtons: false,
|
showButtons: false,
|
||||||
move : this.setColor.bind(this),
|
move : this.setColor.bind(this),
|
||||||
change : this.setColor.bind(this)
|
change : this.setColor.bind(this),
|
||||||
|
preferredFormat: 'hex'
|
||||||
});
|
});
|
||||||
|
|
||||||
this.setColor("#000000");
|
this.setColor("#000000");
|
||||||
|
@ -669,10 +669,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Update the text entry input as it changes happen
|
// Update the text entry input as it changes happen
|
||||||
if (opts.showInput) {
|
if (opts.showInput) {
|
||||||
textInput.val(realColor.toString(Constants.PREFERRED_COLOR_FORMAT || format));
|
textInput.val(realColor.toString(format));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opts.showPalette) {
|
if (opts.showPalette) {
|
||||||
|
@ -14,13 +14,27 @@
|
|||||||
pskl.app.shortcutService.addShortcut('shift+?', this.toggleCheatsheet_.bind(this));
|
pskl.app.shortcutService.addShortcut('shift+?', this.toggleCheatsheet_.bind(this));
|
||||||
pskl.app.shortcutService.addShortcut('?', this.toggleCheatsheet_.bind(this));
|
pskl.app.shortcutService.addShortcut('?', this.toggleCheatsheet_.bind(this));
|
||||||
|
|
||||||
|
document.body.addEventListener('click', this.onBodyClick_.bind(this));
|
||||||
|
|
||||||
var link = $('.cheatsheet-link');
|
var link = $('.cheatsheet-link');
|
||||||
link.click(this.toggleCheatsheet_.bind(this));
|
link.click(this.toggleCheatsheet_.bind(this));
|
||||||
|
|
||||||
|
|
||||||
$.subscribe(Events.TOGGLE_HELP, this.toggleCheatsheet_.bind(this));
|
$.subscribe(Events.TOGGLE_HELP, this.toggleCheatsheet_.bind(this));
|
||||||
$.subscribe(Events.ESCAPE, this.onEscape_.bind(this));
|
$.subscribe(Events.ESCAPE, this.onEscape_.bind(this));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ns.CheatsheetService.prototype.onBodyClick_ = function (event) {
|
||||||
|
if (this.isDisplayed_) {
|
||||||
|
var target = event.target;
|
||||||
|
var cheatsheetContainerEl = document.querySelector('.cheatsheet-container');
|
||||||
|
var isInCheatsheetContainer = pskl.utils.Dom.isParent(target, cheatsheetContainerEl);
|
||||||
|
if (!isInCheatsheetContainer) {
|
||||||
|
this.hideCheatsheet_();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
ns.CheatsheetService.prototype.toggleCheatsheet_ = function () {
|
ns.CheatsheetService.prototype.toggleCheatsheet_ = function () {
|
||||||
if (this.isDisplayed_) {
|
if (this.isDisplayed_) {
|
||||||
this.hideCheatsheet_();
|
this.hideCheatsheet_();
|
||||||
|
58
src/js/service/palette/PaletteGplWriter.js
Normal file
58
src/js/service/palette/PaletteGplWriter.js
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
(function () {
|
||||||
|
var ns = $.namespace('pskl.service.palette');
|
||||||
|
|
||||||
|
ns.PaletteGplWriter = function (palette, onSuccess, onError) {
|
||||||
|
this.palette = palette;
|
||||||
|
this.onSuccess = onSuccess;
|
||||||
|
this.onError = onError;
|
||||||
|
};
|
||||||
|
|
||||||
|
ns.PaletteGplWriter.prototype.write = function () {
|
||||||
|
var lines = [];
|
||||||
|
lines.push('GIMP Palette');
|
||||||
|
lines.push('Name: ' + this.palette.name);
|
||||||
|
lines.push('Columns: 0');
|
||||||
|
lines.push('#');
|
||||||
|
this.palette.colors.forEach(function (color) {
|
||||||
|
lines.push(this.writeColorLine(color));
|
||||||
|
}.bind(this));
|
||||||
|
lines.push('\r\n');
|
||||||
|
|
||||||
|
return lines.join('\r\n');
|
||||||
|
};
|
||||||
|
|
||||||
|
ns.PaletteGplWriter.prototype.writeColorLine = function (color) {
|
||||||
|
var tinycolor = window.tinycolor(color);
|
||||||
|
var rgb = tinycolor.toRgb();
|
||||||
|
var strBuffer = [];
|
||||||
|
strBuffer.push(this.padString(rgb.r, 3));
|
||||||
|
strBuffer.push(this.padString(rgb.g, 3));
|
||||||
|
strBuffer.push(this.padString(rgb.b, 3));
|
||||||
|
strBuffer.push('Untitled');
|
||||||
|
|
||||||
|
return strBuffer.join(' ');
|
||||||
|
};
|
||||||
|
|
||||||
|
ns.PaletteGplWriter.prototype.padString = function (str, size) {
|
||||||
|
str = str.toString();
|
||||||
|
for (var i = 0 ; i < size-str.length ; i++) {
|
||||||
|
str = ' ' + str;
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
};
|
||||||
|
|
||||||
|
})();
|
||||||
|
|
||||||
|
// GIMP Palette
|
||||||
|
// Name: Fabric_jeans
|
||||||
|
// Columns: 0
|
||||||
|
// #
|
||||||
|
// 194 198 201 Untitled
|
||||||
|
// 173 180 194 Untitled
|
||||||
|
// 123 126 145 Untitled
|
||||||
|
// 91 136 195 Untitled
|
||||||
|
// 41 52 74 Untitled
|
||||||
|
// 20 25 37 Untitled
|
||||||
|
// 164 156 145 Untitled
|
||||||
|
// 103 92 82 Untitled
|
||||||
|
// 87 58 107 Untitled
|
@ -122,6 +122,7 @@
|
|||||||
"js/service/palette/PaletteService.js",
|
"js/service/palette/PaletteService.js",
|
||||||
"js/service/palette/PaletteTxtReader.js",
|
"js/service/palette/PaletteTxtReader.js",
|
||||||
"js/service/palette/PaletteGplReader.js",
|
"js/service/palette/PaletteGplReader.js",
|
||||||
|
"js/service/palette/PaletteGplWriter.js",
|
||||||
"js/service/palette/PaletteImageReader.js",
|
"js/service/palette/PaletteImageReader.js",
|
||||||
"js/service/palette/PaletteImportService.js",
|
"js/service/palette/PaletteImportService.js",
|
||||||
"js/service/SavedStatusService.js",
|
"js/service/SavedStatusService.js",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user