From 885f0e1557c186cc384b5d3933f5e04e42d454d7 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Mon, 7 Feb 2022 17:23:20 +0000 Subject: [PATCH] Desktop: Improved custom icon selection --- packages/app-desktop/gui/EditFolderDialog/Dialog.tsx | 9 ++++++++- packages/app-desktop/gui/EditFolderDialog/style.scss | 4 ++++ packages/lib/shim-init-node.js | 5 ++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/app-desktop/gui/EditFolderDialog/Dialog.tsx b/packages/app-desktop/gui/EditFolderDialog/Dialog.tsx index 9852be10f1..27555e2210 100644 --- a/packages/app-desktop/gui/EditFolderDialog/Dialog.tsx +++ b/packages/app-desktop/gui/EditFolderDialog/Dialog.tsx @@ -96,7 +96,14 @@ export default function(props: Props) { }, []); const onBrowseClick = useCallback(async () => { - const filePaths = await bridge().showOpenDialog(); + const filePaths = await bridge().showOpenDialog({ + filters: [ + { + name: _('Images'), + extensions: ['jpg', 'jpeg', 'png'], + }, + ], + }); if (filePaths.length !== 1) return; const filePath = filePaths[0]; diff --git a/packages/app-desktop/gui/EditFolderDialog/style.scss b/packages/app-desktop/gui/EditFolderDialog/style.scss index 538ad36735..bfc77d1cb4 100644 --- a/packages/app-desktop/gui/EditFolderDialog/style.scss +++ b/packages/app-desktop/gui/EditFolderDialog/style.scss @@ -6,4 +6,8 @@ .icon-selector-row > .foldericon { margin-right: 5px; + display: flex; + border: 1px solid var(--joplin-divider-color); + padding: 5px; + background-color: var(--joplin-background-color); } \ No newline at end of file diff --git a/packages/lib/shim-init-node.js b/packages/lib/shim-init-node.js index 4cc1e255f8..219c6526f8 100644 --- a/packages/lib/shim-init-node.js +++ b/packages/lib/shim-init-node.js @@ -17,6 +17,7 @@ const toRelative = require('relative'); const timers = require('timers'); const zlib = require('zlib'); const dgram = require('dgram'); +const { basename, fileExtension, safeFileExtension } = require('./path-utils'); function fileExists(filePath) { try { @@ -230,7 +231,6 @@ function shimInit(options = null) { const imageType = require('image-type'); const uuid = require('./uuid').default; - const { basename, fileExtension, safeFileExtension } = require('./path-utils'); if (!(await fs.pathExists(filePath))) throw new Error(_('Cannot access %s', filePath)); @@ -336,6 +336,9 @@ function shimInit(options = null) { const image = nativeImage.createFromPath(filePath); if (!image) throw new Error(`Could not load image: ${filePath}`); + const ext = fileExtension(filePath).toLowerCase(); + if (!['jpg', 'jpeg', 'png'].includes(ext)) throw new Error(`Unsupported file format: ${ext}`); + if (maxSize) { const size = image.getSize(); if (size.width > maxSize || size.height > maxSize) throw new Error(`Image cannot be larger than ${maxSize}x${maxSize} pixels`);