Added open recent to menu bar
fixed problem with function loadFile
This commit is contained in:
parent
606b358d5d
commit
4ee75511ad
21
src/index.js
21
src/index.js
@ -40,6 +40,10 @@ let menu_template = [
|
||||
accelerator: "Ctrl+O",
|
||||
click: openFile
|
||||
},
|
||||
{
|
||||
label: "Open Recent",
|
||||
submenu:[]
|
||||
},
|
||||
{
|
||||
label: "Exit",
|
||||
click: function () {
|
||||
@ -193,7 +197,7 @@ ipcMain.on("save", (event, data, new_file) => {
|
||||
})
|
||||
|
||||
ipcMain.on("loadFile", (event, file_name) => {
|
||||
loadFile();
|
||||
loadFile(file_name);
|
||||
})
|
||||
|
||||
ipcMain.on("newFile", (event) => {
|
||||
@ -230,6 +234,21 @@ const createWindow = () => {
|
||||
}
|
||||
});
|
||||
|
||||
let recent_files = store.get("recent_files");
|
||||
for (let menu of menu_template[0].submenu) {
|
||||
if (menu.label == "Open Recent") {
|
||||
for (let file of recent_files) {
|
||||
if (fs.existsSync(file)) {
|
||||
menu.submenu.push({
|
||||
label: file, click: () => {
|
||||
mainWindow.webContents.send("open", file);
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let menu = Menu.buildFromTemplate(menu_template);
|
||||
Menu.setApplicationMenu(menu);
|
||||
|
||||
|
@ -618,7 +618,6 @@ async function updateRecentFiles(new_file) {
|
||||
let recent_files = await ipcRenderer.invoke("getStoreValue", "recent_files");
|
||||
if (recent_files.includes(new_file)) {
|
||||
recent_files.splice(recent_files.indexOf(new_file), 1);
|
||||
// delete recent_files[recent_files.indexOf(new_file)];
|
||||
}
|
||||
recent_files.splice(0, 0, new_file);
|
||||
ipcRenderer.invoke("setStoreValue", "recent_files", recent_files);
|
||||
|
@ -14,7 +14,7 @@
|
||||
<script>if (window.module) module = window.module;</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="recent-files" class="w3-light-gray w3-small" style="width: 300px; height: 500px; float: left; border-right: 1px solid gray; overflow-y: scroll">
|
||||
<div id="recent-files" class="w3-light-gray w3-small" style="width: 300px; height: 500px; float: left; border-right: 1px solid gray; overflow-y: auto">
|
||||
</div>
|
||||
<div class="w3-center" style="width: 500px; height: 500px; float: right; padding-top: 20px">
|
||||
<h1 class="">Web Editor</h1>
|
||||
@ -24,28 +24,33 @@
|
||||
</body>
|
||||
<script>
|
||||
const {ipcRenderer} = require("electron");
|
||||
const fs = require("fs");
|
||||
let recent_files = null;
|
||||
|
||||
async function getRecentFiles() {
|
||||
recent_files = await ipcRenderer.invoke("getStoreValue", "recent_files");
|
||||
let recent_files_elm = $("#recent-files");
|
||||
if (recent_files.length > 0) {
|
||||
for (let file of recent_files) {
|
||||
for (let file of recent_files) {
|
||||
if (fs.existsSync(file)) {
|
||||
let match = RegExp(/[^\\]+.json/).exec(file);
|
||||
recent_files_elm.append(`<div><button class="w3-btn w3-left-align" style="width: 100%" onclick="loadFile(recent_files[${recent_files.indexOf(file)}])">${match[0]}<br/>${file}</button></div>`)
|
||||
}
|
||||
} else {
|
||||
}
|
||||
if (recent_files_elm.children().length == 0) {
|
||||
recent_files_elm.append("<div class='w3-container'><h3>No recent files</h3></div>")
|
||||
}
|
||||
}
|
||||
|
||||
getRecentFiles();
|
||||
|
||||
function loadFile(file_name) {
|
||||
ipcRenderer.send("loadFile", file_name.toString());
|
||||
}
|
||||
|
||||
function newFile(file_name) {
|
||||
ipcRenderer.send("newFile");
|
||||
}
|
||||
|
||||
function openFile() {
|
||||
ipcRenderer.send("openFile");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user