Skip to content

Commit 61bfc01

Browse files
committed
Add "open game directory" button
1 parent 6e5c99a commit 61bfc01

File tree

3 files changed

+25
-12
lines changed

3 files changed

+25
-12
lines changed

backend/bindings/app.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"strings"
77
"time"
88

9+
"github.com/pkg/browser"
910
"github.com/pkg/errors"
1011
"github.com/spf13/viper"
1112
wailsRuntime "github.com/wailsapp/wails/v2/pkg/runtime"
@@ -164,6 +165,13 @@ func (a *App) Show() {
164165
wailsRuntime.Show(a.ctx)
165166
}
166167

168+
func (a *App) OpenExternal(input string) {
169+
err := browser.OpenFile(input)
170+
if err != nil {
171+
slog.Error("failed to open external", slog.Any("error", err), slog.String("path", input))
172+
}
173+
}
174+
167175
func (a *App) GetAPIEndpoint() string {
168176
return viper.GetString("api-base") + viper.GetString("graphql-api")
169177
}

frontend/src/lib/components/left-bar/LeftBar.svelte

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import Dialog, { Title, Content, Actions } from '@smui/dialog';
55
import TextField from '@smui/textfield';
66
import Tooltip, { Wrapper } from '@smui/tooltip';
7-
import { mdiCheckCircle, mdiCloseCircle, mdiDownload, mdiHelpCircle, mdiPencil, mdiPlusCircle, mdiTrashCan, mdiUpload, mdiWeb } from '@mdi/js';
7+
import { mdiCheckCircle, mdiCloseCircle, mdiDownload, mdiFolderOpen, mdiHelpCircle, mdiPencil, mdiPlusCircle, mdiTrashCan, mdiUpload, mdiWeb } from '@mdi/js';
88
import { siDiscord, siGithub } from 'simple-icons/icons';
99
import HelperText from '@smui/textfield/helper-text';
1010
import LinearProgress from '@smui/linear-progress';
@@ -18,7 +18,7 @@
1818
import { installs, profiles, canModify, selectedInstall, selectedInstallPath, selectedProfile, modsEnabled, progress } from '$lib/store/ficsitCLIStore';
1919
import { error, siteURL } from '$lib/store/generalStore';
2020
import { BrowserOpenURL, EventsOn } from '$wailsjs/runtime/runtime';
21-
import { OpenFileDialog } from '$wailsjs/go/bindings/App';
21+
import { OpenExternal, OpenFileDialog } from '$wailsjs/go/bindings/App';
2222
import type { ficsitcli } from '$wailsjs/go/models';
2323
import { AddProfile, DeleteProfile, RenameProfile, ImportProfile, ExportCurrentProfile, ReadExportedProfileMetadata } from '$wailsjs/go/ficsitcli/FicsitCLI';
2424
@@ -217,15 +217,20 @@
217217
disabled={!$canModify}
218218
>
219219
{#each $installs as install}
220-
<Wrapper>
221-
<Option value={install.path}>
222-
<Label>{install?.branch} ({install?.launcher})</Label>
223-
</Option>
224-
225-
<Tooltip surface$class="max-w-lg text-base">
226-
{install?.path}
227-
</Tooltip>
228-
</Wrapper>
220+
<Option value={install.path}>
221+
<Label class="mdc-deprecated-list-item__text">{install?.branch} ({install?.launcher})</Label>
222+
<div class="!p-4 !m-0 !ml-auto !h-full" on:click={(e) => {
223+
e.stopPropagation();
224+
OpenExternal(install.path);
225+
}}>
226+
<Wrapper>
227+
<SvgIcon icon={mdiFolderOpen} class="!w-full !h-full"/>
228+
<Tooltip surface$class="max-w-lg text-base">
229+
{install?.path}
230+
</Tooltip>
231+
</Wrapper>
232+
</div>
233+
</Option>
229234
{/each}
230235
</Select>
231236
<div class="flex w-full mt-2">

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ require (
1010
github.com/lmittmann/tint v1.0.3
1111
github.com/minio/selfupdate v0.6.0
1212
github.com/mitchellh/go-ps v1.0.0
13+
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8
1314
github.com/pkg/errors v0.9.1
1415
github.com/samber/slog-multi v1.0.2
1516
github.com/satisfactorymodding/ficsit-cli v0.5.0
@@ -53,7 +54,6 @@ require (
5354
github.com/mircearoata/pubgrub-go v0.3.3 // indirect
5455
github.com/mitchellh/mapstructure v1.5.0 // indirect
5556
github.com/pelletier/go-toml/v2 v2.1.1 // indirect
56-
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect
5757
github.com/pkg/sftp v1.13.6 // indirect
5858
github.com/pterm/pterm v0.12.72 // indirect
5959
github.com/puzpuzpuz/xsync/v3 v3.0.2 // indirect

0 commit comments

Comments
 (0)