diff --git a/src/functions.js b/src/functions.js index f68b185..ba919bd 100644 --- a/src/functions.js +++ b/src/functions.js @@ -2319,10 +2319,10 @@ function image_stretch_and_skew(){ $w.center(); } -function choose_file_name_and_type(file_name, types, callback) { +function choose_file_name_and_type(dialog_name, file_name, types, callback) { // file_name = `${file_name.replace(/\.(bmp|dib|a?png|gif|jpe?g|jpe|jfif|tiff?|webp|raw)$/i, "")}.png`; - const $w = new $FormToolWindow(localize("Save As")); + const $w = new $FormToolWindow(dialog_name); $w.addClass("save-as"); // TODO: hotkeys (N, T, S, Enter, Esc) @@ -2427,7 +2427,7 @@ function save_canvas_as(canvas, fileName, savedCallbackUnreliable){ // "256 Color Bitmap (*.bmp;*.dib)": "image/bitmap", // "24-bit Bitmap (*.bmp;*.dib)": "image/bitmap", }; - choose_file_name_and_type(file_name, image_types, (new_file_name, file_type)=> { + choose_file_name_and_type(localize("Save As"), file_name, image_types, (new_file_name, file_type)=> { canvas.toBlob(blob => { const png_magic_bytes = [0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A]; sanity_check_blob(blob, () => { diff --git a/src/menus.js b/src/menus.js index e76f7c1..cb8e734 100644 --- a/src/menus.js +++ b/src/menus.js @@ -655,10 +655,20 @@ window.menus = { blue: b / 255, })); } - const file_content = AnyPalette.writePalette(ap, AnyPalette.formats.GIMP_PALETTE); - const blob = new Blob([file_content], {type: "text/plain"}); - sanity_check_blob(blob, ()=> { - saveAs(blob, "Colors.gpl"); + const palette_types = {}; + for (const [format_id, format] of Object.entries(AnyPalette.formats)) { + if (format.write) { + palette_types[format_id] = `${format.name} (${ + format.fileExtensions.map((extension)=> `*.${extension}`).join(";") + })`; + } + } + choose_file_name_and_type(localize("Save Colors"), "Colors", palette_types, (palette_file_name, format_id)=> { + const file_content = AnyPalette.writePalette(ap, AnyPalette.formats[format_id]); + const blob = new Blob([file_content], {type: "text/plain"}); + sanity_check_blob(blob, ()=> { + saveAs(blob, palette_file_name); + }); }); }, description: localize("Saves the current palette of colors to a file."), diff --git a/styles/layout.css b/styles/layout.css index eec3028..37932e8 100644 --- a/styles/layout.css +++ b/styles/layout.css @@ -557,18 +557,11 @@ html, body, .jspaint { } .save-as .window-content > form > div > label > input, .save-as .window-content > form > div > label > select { - flex: 1 1 0; - min-width: 0px; + width: calc(100vw - 220px); + max-width: 230px; float: right; margin: 5px; } -@media (min-width: 500px) { - .save-as .window-content > form > div > label > input, - .save-as .window-content > form > div > label > select { - width: 230px; - flex: 0 0 auto; - } -} .save-as .button-group button { margin: 5px; }