Desktop: Open Recent support
parent
c56caac533
commit
9cf691345f
|
@ -1,7 +1,7 @@
|
||||||
import { app, BrowserWindow, Menu } from "electron";
|
import { app, BrowserWindow, Menu } from "electron";
|
||||||
import { openFolder, openFolderPicker } from "./instance";
|
import { openFolder, openFolderPicker } from "./instance";
|
||||||
import { menu } from "./menu";
|
import { menu } from "./menu";
|
||||||
import { getOpenWindows } from "./store";
|
import { getOpenWindows, newWindowState } from "./store";
|
||||||
|
|
||||||
// This allows TypeScript to pick up the magic constants that's auto-generated by Forge's Webpack
|
// This allows TypeScript to pick up the magic constants that's auto-generated by Forge's Webpack
|
||||||
// plugin that tells the Electron app where to look for the Webpack-bundled app code (depending on
|
// plugin that tells the Electron app where to look for the Webpack-bundled app code (depending on
|
||||||
|
@ -18,6 +18,7 @@ if (require("electron-squirrel-startup")) {
|
||||||
require("update-electron-app")();
|
require("update-electron-app")();
|
||||||
|
|
||||||
async function boot() {
|
async function boot() {
|
||||||
|
console.log("Process args", process.argv);
|
||||||
const openWindows = getOpenWindows();
|
const openWindows = getOpenWindows();
|
||||||
if (openWindows.length === 0) {
|
if (openWindows.length === 0) {
|
||||||
await openFolderPicker();
|
await openFolderPicker();
|
||||||
|
@ -38,6 +39,10 @@ app.on("ready", () => {
|
||||||
boot().catch(console.error);
|
boot().catch(console.error);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.on("open-file", (event, path) => {
|
||||||
|
openFolder(newWindowState(path)).catch(console.error);
|
||||||
|
});
|
||||||
|
|
||||||
// Quit when all windows are closed, except on macOS. There, it's common
|
// Quit when all windows are closed, except on macOS. There, it's common
|
||||||
// for applications and their menu bar to stay active until the user quits
|
// for applications and their menu bar to stay active until the user quits
|
||||||
// explicitly with Cmd + Q.
|
// explicitly with Cmd + Q.
|
||||||
|
|
|
@ -1,5 +1,13 @@
|
||||||
import { ChildProcessWithoutNullStreams, spawn } from "node:child_process";
|
import { ChildProcessWithoutNullStreams, spawn } from "node:child_process";
|
||||||
import { app, BrowserWindow, dialog, Menu, MenuItem, shell, nativeImage } from "electron";
|
import {
|
||||||
|
app,
|
||||||
|
BrowserWindow,
|
||||||
|
dialog,
|
||||||
|
Menu,
|
||||||
|
MenuItem,
|
||||||
|
nativeImage,
|
||||||
|
shell,
|
||||||
|
} from "electron";
|
||||||
import portfinder from "portfinder";
|
import portfinder from "portfinder";
|
||||||
import fetch from "node-fetch";
|
import fetch from "node-fetch";
|
||||||
import { existsSync } from "node:fs";
|
import { existsSync } from "node:fs";
|
||||||
|
@ -55,6 +63,7 @@ async function folderPicker(): Promise<string> {
|
||||||
export async function openFolderPicker() {
|
export async function openFolderPicker() {
|
||||||
const folderPath = await folderPicker();
|
const folderPath = await folderPicker();
|
||||||
if (folderPath) {
|
if (folderPath) {
|
||||||
|
app.addRecentDocument(folderPath);
|
||||||
openFolder(newWindowState(folderPath));
|
openFolder(newWindowState(folderPath));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,14 @@ const template: MenuItemConstructorOptions[] = [
|
||||||
openFolderPicker();
|
openFolderPicker();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
role: "recentDocuments",
|
||||||
|
submenu: [
|
||||||
|
{
|
||||||
|
role: "clearRecentDocuments",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
{ type: "separator" },
|
{ type: "separator" },
|
||||||
{
|
{
|
||||||
label: "Quit",
|
label: "Quit",
|
||||||
|
|
|
@ -5,6 +5,8 @@ release.
|
||||||
## Next
|
## Next
|
||||||
* Syntax highlighting for a bunch of new languages: PgSQL, Rust, CSS, Python, Protobuf, Shell, Swift, toml, XML, JSON, C, C++, Java, C#, Scala, Kotlin, ObjectiveC, ObjectiveC++ and Dart
|
* Syntax highlighting for a bunch of new languages: PgSQL, Rust, CSS, Python, Protobuf, Shell, Swift, toml, XML, JSON, C, C++, Java, C#, Scala, Kotlin, ObjectiveC, ObjectiveC++ and Dart
|
||||||
* [[Vim]] support for VIMRC (see [[Vim]] documentation)
|
* [[Vim]] support for VIMRC (see [[Vim]] documentation)
|
||||||
|
* Desktop: “Open Recent” menu to quickly reopen recently opened spaces.
|
||||||
|
* Sync bug fixes and better logging (in {[Show Logs]})
|
||||||
|
|
||||||
---
|
---
|
||||||
## 0.2.9
|
## 0.2.9
|
||||||
|
|
Loading…
Reference in New Issue