From e56cf16304d3a6e77e0eb71268aee62e520fb978 Mon Sep 17 00:00:00 2001 From: Karan Duggal Date: Sun, 10 Aug 2025 15:43:37 +0530 Subject: [PATCH 1/2] [Feat]: Open game config file in folder (#4788) --- public/locales/en/gamepage.json | 1 + src/backend/main.ts | 4 ++++ src/common/types/ipc.ts | 1 + src/frontend/screens/Game/GameSubMenu/index.tsx | 8 ++++++++ src/preload/api/misc.ts | 1 + 5 files changed, 15 insertions(+) diff --git a/public/locales/en/gamepage.json b/public/locales/en/gamepage.json index aa5bf9d34a..0a92a68a38 100644 --- a/public/locales/en/gamepage.json +++ b/public/locales/en/gamepage.json @@ -55,6 +55,7 @@ "add_to_favourites": "Add To Favourites", "browse_files": "Browse Files", "browse_wine_prefix": "Browse Wine Prefix", + "showGameConfigFileInFolder": "Show Game Config File", "cancel": "Pause/Cancel", "changelog": "Show Changelog", "continue": "Continue Downloading", diff --git a/src/backend/main.ts b/src/backend/main.ts index 46577004b7..a4d8923d93 100644 --- a/src/backend/main.ts +++ b/src/backend/main.ts @@ -634,6 +634,10 @@ addListener('showConfigFileInFolder', async (event, appName) => { return openUrlOrFile(path.join(gamesConfigPath, `${appName}.json`)) }) +addListener('showGameConfigFileInFolder', (event, appName) => + showItemInFolder(path.join(gamesConfigPath, `${appName}.json`)) +) + addListener('removeFolder', async (e, [path, folderName]) => { removeFolder(path, folderName) }) diff --git a/src/common/types/ipc.ts b/src/common/types/ipc.ts index 3db51226f1..9c1b81f8be 100644 --- a/src/common/types/ipc.ts +++ b/src/common/types/ipc.ts @@ -74,6 +74,7 @@ interface SyncIPCFunctions { openSidInfoPage: () => void openCustomThemesWiki: () => void showConfigFileInFolder: (appName: string) => void + showGameConfigFileInFolder: (appName: string) => void removeFolder: ([path, folderName]: [string, string]) => void clearCache: (showDialog?: boolean, fromVersionChange?: boolean) => void resetHeroic: () => void diff --git a/src/frontend/screens/Game/GameSubMenu/index.tsx b/src/frontend/screens/Game/GameSubMenu/index.tsx index 46a25ac42f..f202798e87 100644 --- a/src/frontend/screens/Game/GameSubMenu/index.tsx +++ b/src/frontend/screens/Game/GameSubMenu/index.tsx @@ -410,6 +410,14 @@ export default function GamesSubmenu({ {t('button.browse_wine_prefix', 'Browse Wine Prefix')} )} + {isInstalled && ( + + )} diff --git a/src/preload/api/misc.ts b/src/preload/api/misc.ts index 4b3bc423fd..f18f751339 100644 --- a/src/preload/api/misc.ts +++ b/src/preload/api/misc.ts @@ -39,6 +39,7 @@ export const gamepadAction = makeHandlerInvoker('gamepadAction') export const logError = makeListenerCaller('logError') export const logInfo = makeListenerCaller('logInfo') export const showConfigFileInFolder = makeListenerCaller('showConfigFileInFolder') +export const showGameConfigFileInFolder = makeListenerCaller('showGameConfigFileInFolder') export const openFolder = makeListenerCaller('openFolder') export const syncGOGSaves = makeHandlerInvoker('syncGOGSaves') export const checkDiskSpace = makeHandlerInvoker('checkDiskSpace') From 1534a391490827c94910232258d7a3b148a59482 Mon Sep 17 00:00:00 2001 From: Karan Duggal Date: Sun, 24 Aug 2025 16:26:19 +0530 Subject: [PATCH 2/2] [refactor]: open config file functions renamed (#4788) --- public/locales/en/gamepage.json | 2 +- src/backend/main.ts | 4 ++-- src/common/types/ipc.ts | 2 +- src/frontend/screens/Game/GameSubMenu/index.tsx | 4 ++-- src/frontend/screens/Settings/index.tsx | 2 +- src/preload/api/misc.ts | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/public/locales/en/gamepage.json b/public/locales/en/gamepage.json index 0a92a68a38..e2494b6133 100644 --- a/public/locales/en/gamepage.json +++ b/public/locales/en/gamepage.json @@ -55,7 +55,7 @@ "add_to_favourites": "Add To Favourites", "browse_files": "Browse Files", "browse_wine_prefix": "Browse Wine Prefix", - "showGameConfigFileInFolder": "Show Game Config File", + "showConfigFileInFolder": "Show Game Config File", "cancel": "Pause/Cancel", "changelog": "Show Changelog", "continue": "Continue Downloading", diff --git a/src/backend/main.ts b/src/backend/main.ts index a4d8923d93..4fecd5d037 100644 --- a/src/backend/main.ts +++ b/src/backend/main.ts @@ -627,14 +627,14 @@ addListener('openSidInfoPage', async () => openUrlOrFile(sidInfoUrl)) addListener('openCustomThemesWiki', async () => openUrlOrFile(customThemesWikiLink) ) -addListener('showConfigFileInFolder', async (event, appName) => { +addListener('openConfigFile', async (event, appName) => { if (appName === 'default') { return openUrlOrFile(configPath) } return openUrlOrFile(path.join(gamesConfigPath, `${appName}.json`)) }) -addListener('showGameConfigFileInFolder', (event, appName) => +addListener('showConfigFileInFolder', (event, appName) => showItemInFolder(path.join(gamesConfigPath, `${appName}.json`)) ) diff --git a/src/common/types/ipc.ts b/src/common/types/ipc.ts index 9c1b81f8be..c970ac03b3 100644 --- a/src/common/types/ipc.ts +++ b/src/common/types/ipc.ts @@ -73,8 +73,8 @@ interface SyncIPCFunctions { openWikiLink: () => void openSidInfoPage: () => void openCustomThemesWiki: () => void + openConfigFile: (appName: string) => void showConfigFileInFolder: (appName: string) => void - showGameConfigFileInFolder: (appName: string) => void removeFolder: ([path, folderName]: [string, string]) => void clearCache: (showDialog?: boolean, fromVersionChange?: boolean) => void resetHeroic: () => void diff --git a/src/frontend/screens/Game/GameSubMenu/index.tsx b/src/frontend/screens/Game/GameSubMenu/index.tsx index f202798e87..13ed3851d0 100644 --- a/src/frontend/screens/Game/GameSubMenu/index.tsx +++ b/src/frontend/screens/Game/GameSubMenu/index.tsx @@ -412,10 +412,10 @@ export default function GamesSubmenu({ )} {isInstalled && ( )} diff --git a/src/frontend/screens/Settings/index.tsx b/src/frontend/screens/Settings/index.tsx index 664fcfa728..ef36162758 100644 --- a/src/frontend/screens/Settings/index.tsx +++ b/src/frontend/screens/Settings/index.tsx @@ -97,7 +97,7 @@ function Settings() { }, { label: t('settings.open-config-file', 'Open Config File'), - onclick: () => window.api.showConfigFileInFolder(appName), + onclick: () => window.api.openConfigFile(appName), show: !isLogSettings } ]} diff --git a/src/preload/api/misc.ts b/src/preload/api/misc.ts index f18f751339..eb9fd6bcff 100644 --- a/src/preload/api/misc.ts +++ b/src/preload/api/misc.ts @@ -38,8 +38,8 @@ export const refreshLibrary = makeHandlerInvoker('refreshLibrary') export const gamepadAction = makeHandlerInvoker('gamepadAction') export const logError = makeListenerCaller('logError') export const logInfo = makeListenerCaller('logInfo') +export const openConfigFile = makeListenerCaller('openConfigFile') export const showConfigFileInFolder = makeListenerCaller('showConfigFileInFolder') -export const showGameConfigFileInFolder = makeListenerCaller('showGameConfigFileInFolder') export const openFolder = makeListenerCaller('openFolder') export const syncGOGSaves = makeHandlerInvoker('syncGOGSaves') export const checkDiskSpace = makeHandlerInvoker('checkDiskSpace')