사이드바 너비, 카드 크기 정보 저장, 앱 실행시 적용 + 개발 모드 실행시 로그 출력
This commit is contained in:
@@ -8,12 +8,17 @@ const {
|
||||
moveFileWithCopyFallback,
|
||||
readImageAsDataUrl,
|
||||
} = require('./file-utils');
|
||||
const logger = require('../logger');
|
||||
|
||||
function register() {
|
||||
ipcMain.handle('list-images', async (_event, folderPath) => {
|
||||
logger.log('ipc:files', 'list-images requested', { folderPath });
|
||||
try {
|
||||
return listImages(folderPath);
|
||||
const files = listImages(folderPath);
|
||||
logger.log('ipc:files', 'list-images result', { folderPath, count: files.length });
|
||||
return files;
|
||||
} catch (e) {
|
||||
logger.error('ipc:files', `list-images failed: ${folderPath}`, e);
|
||||
return [];
|
||||
}
|
||||
});
|
||||
|
||||
+24
-1
@@ -3,13 +3,19 @@ const path = require('path');
|
||||
const fs = require('fs');
|
||||
const os = require('os');
|
||||
const { readConfig, updateConfig } = require('../config');
|
||||
const logger = require('../logger');
|
||||
|
||||
function register(mainWindow) {
|
||||
ipcMain.handle('select-folder', async () => {
|
||||
logger.log('ipc:folder', 'select-folder requested');
|
||||
const result = await dialog.showOpenDialog(mainWindow, {
|
||||
properties: ['openDirectory'],
|
||||
title: '이미지 폴더 선택',
|
||||
});
|
||||
logger.log('ipc:folder', 'select-folder result', {
|
||||
canceled: result.canceled,
|
||||
filePaths: result.filePaths,
|
||||
});
|
||||
if (result.canceled) return null;
|
||||
return result.filePaths[0];
|
||||
});
|
||||
@@ -18,13 +24,21 @@ function register(mainWindow) {
|
||||
|
||||
ipcMain.handle('get-last-folder', () => {
|
||||
const cfg = readConfig();
|
||||
logger.log('ipc:folder', 'get-last-folder config', { lastFolder: cfg.lastFolder || null });
|
||||
if (cfg.lastFolder) {
|
||||
try { fs.accessSync(cfg.lastFolder); return cfg.lastFolder; } catch {}
|
||||
try {
|
||||
fs.accessSync(cfg.lastFolder);
|
||||
logger.log('ipc:folder', 'get-last-folder accessible', { lastFolder: cfg.lastFolder });
|
||||
return cfg.lastFolder;
|
||||
} catch (e) {
|
||||
logger.error('ipc:folder', `get-last-folder inaccessible: ${cfg.lastFolder}`, e);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
});
|
||||
|
||||
ipcMain.handle('set-last-folder', (_e, folderPath) => {
|
||||
logger.log('ipc:folder', 'set-last-folder', { folderPath });
|
||||
updateConfig(cfg => { cfg.lastFolder = folderPath; });
|
||||
});
|
||||
|
||||
@@ -65,6 +79,15 @@ function register(mainWindow) {
|
||||
ipcMain.handle('set-sidebar-width', (_e, width) => {
|
||||
updateConfig(cfg => { cfg.sidebarWidth = width; });
|
||||
});
|
||||
|
||||
ipcMain.handle('get-thumb-size', () => {
|
||||
const cfg = readConfig();
|
||||
return Number.isFinite(cfg.thumbSize) ? cfg.thumbSize : null;
|
||||
});
|
||||
|
||||
ipcMain.handle('set-thumb-size', (_e, size) => {
|
||||
updateConfig(cfg => { cfg.thumbSize = size; });
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = { register };
|
||||
|
||||
Reference in New Issue
Block a user