사이드바 너비, 카드 크기 정보 저장, 앱 실행시 적용 + 개발 모드 실행시 로그 출력

This commit is contained in:
2026-05-18 11:14:10 +09:00
parent d74c2e055d
commit 0ef8a28d54
16 changed files with 234 additions and 44 deletions
+6 -1
View File
@@ -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
View File
@@ -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 };