@setoelkahfi / svara / commits / f591fd0

copy file paths

mellbacon committed Aug 11, 2022 at 17:02 UTC f591fd041e03a24ddd50b6554e6d39cde777bf0c
4 files changed +37 -12
src/components/FileTree/LeafNodeMenu.svelte
+18 -5
@@ -6,10 +6,15 @@
6 import Paste from "carbon-icons-svelte/lib/Paste.svelte";
7 import Cut from "carbon-icons-svelte/lib/Cut.svelte";
8 import Script from "carbon-icons-svelte/lib/Script.svelte";
9 + import { fs, clipboard } from "@tauri-apps/api";
10 export let target;
11 export let filename;
11 - export let path;
12 + export let filepath;
13 let open;
14 +
15 + async function copyToClipboard(input) {
16 + await clipboard.writeText(input);
17 + }
18 </script>
19
20 <ContextMenu {target}>
@@ -26,17 +31,25 @@
31 <ContextMenuOption indented icon={Script} labelText="Edit {filename}"></ContextMenuOption>
32 </ContextMenuOption>
33 <ContextMenuOption labelText="Copy Path...">
29 - <ContextMenuOption labelText="Copy Relative Path"></ContextMenuOption>
30 - <ContextMenuOption labelText="Copy Absolute Path"></ContextMenuOption>
34 + <!--TODO: Make this relative instead of file name. Am lazy-->
35 + <ContextMenuOption on:click={() => copyToClipboard(filename)}>
36 + <span slot="labelText" title={filename}>Copy File Name</span>
37 + </ContextMenuOption>
38 + <ContextMenuOption on:click={() => copyToClipboard(filepath)}>
39 + <span slot="labelText" title={filepath}>Copy Absolute Path</span>
40 + </ContextMenuOption>
41 </ContextMenuOption>
42 <ContextMenuOption labelText="Show in Explorer"></ContextMenuOption>
43 +
44 <ContextMenuDivider></ContextMenuDivider>
34 - <ContextMenuOption labelText="Delete...">
45 + <ContextMenuOption labelText="Delete..." on:click={ async() => {
46 + await fs.removeFile(filepath);
47 + }}>
48 <span class="contextshortcut" slot="shortcutText">Delete</span>
49 </ContextMenuOption>
50 </ContextMenu>
51
39 -<RenameModel bind:open bind:filename={filename} bind:path={path} />
52 +<RenameModel bind:open bind:filename={filename} bind:path={filepath} />
53
54 <style>
55 .contextshortcut {
src/components/FileTree/ParentNodeMenu.svelte
+17 -5
@@ -5,10 +5,15 @@
5 import Paste from "carbon-icons-svelte/lib/Paste.svelte";
6 import Cut from "carbon-icons-svelte/lib/Cut.svelte";
7 import RenameModel from "../Modal/RenameModel.svelte";
8 + import { fs, clipboard } from "@tauri-apps/api";
9 export let target;
10 export let filename;
10 - export let path;
11 + export let filepath;
12 let open;
13 +
14 + async function copyToClipboard(input) {
15 + await clipboard.writeText(input);
16 + }
17 </script>
18
19 <ContextMenu {target}>
@@ -27,17 +32,24 @@
32 </ContextMenuOption>
33 </ContextMenuOption>
34 <ContextMenuOption labelText="Copy Path...">
30 - <ContextMenuOption labelText="Copy Relative Path"></ContextMenuOption>
31 - <ContextMenuOption labelText="Copy Absolute Path"></ContextMenuOption>
35 + <!--TODO: Make this relative instead of file name. Am lazy-->
36 + <ContextMenuOption on:click={() => copyToClipboard(filename)}>
37 + <span slot="labelText" title={filename}>Copy File Name</span>
38 + </ContextMenuOption>
39 + <ContextMenuOption on:click={() => copyToClipboard(filepath)}>
40 + <span slot="labelText" title={filepath}>Copy Absolute Path</span>
41 + </ContextMenuOption>
42 </ContextMenuOption>
43 <ContextMenuOption labelText="Show in Explorer"></ContextMenuOption>
44 <ContextMenuDivider></ContextMenuDivider>
35 - <ContextMenuOption labelText="Delete...">
45 + <ContextMenuOption labelText="Delete..." on:click={ async() => {
46 + await fs.removeDir(filepath, {recursive: true});
47 + }}>
48 <span class="contextshortcut" slot="shortcutText">Delete</span>
49 </ContextMenuOption>
50 </ContextMenu>
51
40 -<RenameModel bind:open bind:filename={filename} bind:path={path} />
52 +<RenameModel bind:open bind:filename={filename} bind:path={filepath} />
53
54 <style>
55 .contextshortcut {
src/components/FileTree/TreeViewNode.svelte
+1 -1
@@ -114,7 +114,7 @@
114 {name}
115 </div>
116 </li>
117 -<LeafNodeMenu target={ref} filename={name} path={path}></LeafNodeMenu>
117 +<LeafNodeMenu target={ref} filename={name} filepath={path}></LeafNodeMenu>
118 <RenameModel bind:open bind:filename={name} bind:path={path} />
119
120 <style>
src/components/FileTree/TreeViewNodeList.svelte
+1 -1
@@ -148,4 +148,4 @@
148 </li>
149 {/if}
150
151 -<ParentNodeMenu target={[refLabel]} filename={name} path={path}></ParentNodeMenu>
\ No newline at end of file
151 +<ParentNodeMenu target={[refLabel]} filename={name} filepath={path}></ParentNodeMenu>
\ No newline at end of file