Enhance path picking functionality in Electron and LibraryManager

This commit is contained in:
2026-03-20 09:49:37 +01:00
parent b813e88634
commit b5d4085a4b
3 changed files with 30 additions and 14 deletions

View File

@@ -475,9 +475,20 @@ ipcMain.handle('update-settings', (event, settings) => {
return true
})
ipcMain.handle('pick-paths', async () => {
function pickDialogProperties(kind) {
if (kind === 'directories') {
return ['openDirectory', 'multiSelections']
}
if (kind === 'mixed') {
return ['openFile', 'openDirectory', 'multiSelections']
}
return ['openFile', 'multiSelections']
}
ipcMain.handle('pick-paths', async (event, options = {}) => {
const kind = typeof options?.kind === 'string' ? options.kind : 'files'
const result = await dialog.showOpenDialog(mainWindow, {
properties: ['openFile', 'openDirectory', 'multiSelections'],
properties: pickDialogProperties(kind),
})
return result.canceled ? [] : result.filePaths
})

View File

@@ -8,7 +8,7 @@ contextBridge.exposeInMainWorld('electronAPI', {
checkForUpdates: () => ipcRenderer.invoke('check-for-updates'),
setSetting: (key, value) => ipcRenderer.invoke('set-setting', key, value),
updateSettings: (settings) => ipcRenderer.invoke('update-settings', settings),
pickPaths: () => ipcRenderer.invoke('pick-paths'),
pickPaths: (options = {}) => ipcRenderer.invoke('pick-paths', options),
openPath: (filePath) => ipcRenderer.invoke('open-path', filePath),
openExternalLink: (event) => {
event.preventDefault();