From 8750568522d35e72d1d06ee9fcf89bc15038d258 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D0=BD=D0=B8=D1=97=D0=BB=20=D0=93=D1=80=D0=B8?= =?UTF-8?q?=D0=B3=D0=BE=D1=80=27=D1=94=D0=B2?= Date: Sat, 5 Nov 2022 20:19:05 +0200 Subject: [PATCH 1/2] Add "reveal" FS job and a wrapper --- electron/index.js | 5 +++++ electron_gog/index.js | 5 +++++ src/js/platform/electron/storage.js | 7 +++++++ 3 files changed, 17 insertions(+) diff --git a/electron/index.js b/electron/index.js index 31b4bca2..a63f49fb 100644 --- a/electron/index.js +++ b/electron/index.js @@ -336,6 +336,11 @@ ipcMain.handle("fs-job", async (event, job) => { return; } + case "reveal": { + shell.showItemInFolder(fname); + return; + } + default: throw new Error("Unknown fs job: " + job.type); } diff --git a/electron_gog/index.js b/electron_gog/index.js index 563f187d..c4ed96fe 100644 --- a/electron_gog/index.js +++ b/electron_gog/index.js @@ -335,6 +335,11 @@ ipcMain.handle("fs-job", async (event, job) => { return; } + case "reveal": { + shell.showItemInFolder(fname); + return; + } + default: throw new Error("Unknown fs job: " + job.type); } diff --git a/src/js/platform/electron/storage.js b/src/js/platform/electron/storage.js index 65f0e507..705694b5 100644 --- a/src/js/platform/electron/storage.js +++ b/src/js/platform/electron/storage.js @@ -38,4 +38,11 @@ export class StorageImplElectron extends StorageInterface { filename, }); } + + revealFileAsync(filename) { + return ipcRenderer.invoke("fs-job", { + type: "reveal", + filename, + }); + } } From 5c0d546d8868d2e83e74772b33dbd850f7609ecd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D0=BD=D0=B8=D1=97=D0=BB=20=D0=93=D1=80=D0=B8?= =?UTF-8?q?=D0=B3=D0=BE=D1=80=27=D1=94=D0=B2?= Date: Sat, 5 Nov 2022 21:37:48 +0200 Subject: [PATCH 2/2] Base/default implementation of revealFileAsync --- src/js/platform/storage.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/js/platform/storage.js b/src/js/platform/storage.js index c5c3701c..beb4b149 100644 --- a/src/js/platform/storage.js +++ b/src/js/platform/storage.js @@ -52,4 +52,14 @@ export class StorageInterface { // Default implementation does not allow deleting files return Promise.reject(); } + + /** + * Reveals a file in the file manager + * @param {string} filename + * @returns {Promise} + */ + revealFileAsync(filename) { + // Default implementation does not allow revealing files + return Promise.reject(); + } }