feat: restart on directory load
Signed-off-by: mellobacon <mellodev@outlook.com>
mellobacon committed
May 13, 2024 at 13:33 UTC
9bfbfc4f707047a1756a382edfacbaeeb6e1e165
2 files changed
+19
-7
src/App.svelte
+11
-5
@@ -15,6 +15,7 @@
15
import ToolView from "./lib/ToolView.svelte";
16
import { getExtensions } from "./config/extensionhandler";
17
import { fitTerminal } from "./lib/Terminal.svelte";
18
+ import { loadDir } from "./lib/File";
19
let resolution = writable(0);
20
21
let minPanelSize = 10;
@@ -24,6 +25,11 @@
25
onMount(async () => {
26
await getExtensions();
27
await loadDefaultSettings();
28
+ let dir = localStorage.getItem("lastDir");
29
+ if (dir) {
30
+ loadDir(dir);
31
+ }
32
+
33
let size = await appWindow.innerSize();
34
resolution.set(size.width);
35
updateMinPanelSize();
@@ -39,16 +45,14 @@
45
})
46
47
function updatePanelSize(e) {
42
- fitTerminal();
48
if ($showsidebarview) {
49
panelSize = e.detail[0].size
50
}
51
}
52
53
async function updateMinPanelSize() {
49
-
50
- updateTablistWidth();
54
fitTerminal();
55
+ updateTablistWidth();
56
if (!await appWindow.isFocused()) {
57
return;
58
}
@@ -117,16 +121,18 @@
121
{/if}
122
<Pane>
123
<div class="__">
120
- <Splitpanes horizontal theme="editor-panes" on:resize={fitTerminal} on:resized={fitTerminal} class="{!$showBottomPanel ? "hidden" : ""}">
124
+ <Splitpanes horizontal theme="editor-panes" on:resize={fitTerminal} class="{!$showBottomPanel ? "hidden" : ""}">
125
<Pane size={$showBottomPanel ? 100 - bottomPanelSize : 100}>
126
<div id="container">
127
<EditorTabList />
128
<div id="tabview" class:hidden={$hidden}></div>
129
</div>
130
</Pane>
131
+ {#if $editortool}
132
<Pane bind:size={bottomPanelSize} maxSize={90} minSize={10} class="view-bottom-pane">
133
<ToolView content={$editortool.content} name={$editortool.name}></ToolView>
134
</Pane>
135
+ {/if}
136
</Splitpanes>
137
</div>
138
</Pane>
@@ -169,4 +175,4 @@
175
:global(.view-bottom-pane) {
176
z-index: 1;
177
}
172
-</style>
\ No newline at end of file
178
+</style>
src/lib/File.ts
+8
-2
@@ -7,6 +7,7 @@ import { openFileTree } from "./Sidebar.svelte";
7
import { info, trace, warn, error } from "tauri-plugin-log-api";
8
import { homeDir } from "@tauri-apps/api/path";
9
import { appSettings } from "../config/config";
10
+import { relaunch } from "@tauri-apps/api/process";
11
12
export async function openFile() {
13
let newPath = await dialog.open() as string;
@@ -22,9 +23,14 @@ export const workingDir = writable(await homeDir());
23
export async function openFolder() {
24
dirLoadFail.set(false);
25
let directory = await dialog.open({directory: true}) as string;
25
- info(`Opening folder in: ${directory}`, {file: "File.ts", line: 22});
26
+ info(`Opening folder in: ${directory}`, {file: "File.ts", line: 25});
27
+ localStorage.setItem("lastDir", directory);
28
+ await relaunch();
29
+}
30
+
31
+export async function loadDir(directory) {
32
if (!directory) {
27
- warn("Directory path is null. Aborting...", {file: "File.ts", line: 24});
33
+ warn("Directory path is null. Aborting...", {file: "File.ts", line: 30});
34
return
35
};
36
dirToLoad.set(directory.split(path.sep).pop());