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, + }); + } } 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(); + } }