diff --git a/src/main.js b/src/main.js index 3040ef2..3846377 100644 --- a/src/main.js +++ b/src/main.js @@ -2700,6 +2700,7 @@ async function saveAs() { } async function _open(path) { + closeDialog() try { const contents = await readTextFile(path) let file = JSON.parse(contents) @@ -2746,7 +2747,6 @@ async function _open(path) { } async function open() { - closeDialog() const path = await openFileDialog({ multiple: false, directory: false, @@ -4957,6 +4957,15 @@ async function updateMenu() { let newFrameMenuItem; let newKeyframeMenuItem; let deleteFrameMenuItem; + + let recentFilesList = [] + config.recentFiles.forEach((file) => { + recentFilesList.push({ + text: file, + enabled: true, + action: () => { _open(file) } + }) + }) activeKeyframe = false if (context.activeObject.activeLayer.frames[context.activeObject.currentFrameNum]) { @@ -5008,6 +5017,10 @@ async function updateMenu() { action: saveAs, accelerator: getShortcut("saveAs") }, + await Submenu.new({ + text: "Open Recent", + items: recentFilesList + }), { text: 'Open File...', enabled: true, diff --git a/src/tauri_polyfill.js b/src/tauri_polyfill.js index c2a1058..d02d9e5 100644 --- a/src/tauri_polyfill.js +++ b/src/tauri_polyfill.js @@ -230,12 +230,19 @@ if (!window.__TAURI__) { menu = new Menu() for (let i in items) { let item = items[i] - menuItem = new MenuItem({ - label: item.text, - enabled: item.enabled, - click: item.action, - accelerator: item.accelerator - }) + if (item instanceof Menu) { + menuItem = new MenuItem({ + label: item.text, + submenu: item + }) + } else { + menuItem = new MenuItem({ + label: item.text, + enabled: item.enabled, + click: item.action, + accelerator: item.accelerator + }) + } menu.append(menuItem) } menu.text = params.text