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

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
+17 -3
View File
@@ -18,6 +18,7 @@ import * as dragDrop from './handlers/drag-drop.js';
import * as hoverPreview from './handlers/image-preview.js';
import * as fileExplorer from './handlers/file-explorer.js';
import * as sidebarResize from './handlers/sidebar-resize.js';
import { log } from './logger.js';
// ── DOM ──────────────────────────────────────────────
const btnOpen = document.getElementById('btn-open');
@@ -64,7 +65,6 @@ const callbacks = {
pushHistory: (affectedPaths) => history.pushReorder(state.files, affectedPaths),
};
pinchZoom.init({ gridContainer, thumbSizeHint });
selection.init({ gridContainer, rubberBand, grid, state, callbacks });
dragDrop.init({ grid, gridContainer, dragGhostEl, state, callbacks, fileExplorerEl: fileExplorerContainer, onFolderDrop: handleFolderDrop });
hoverPreview.init();
@@ -77,12 +77,15 @@ window.api.onFullscreenChange((isFullscreen) => {
// ── 앱 시작 ───────────────────────────────────────
(async () => {
const [lastFolder, homeDir, previewOn, sidebarWidth] = await Promise.all([
log('startup', 'init start');
const [lastFolder, homeDir, previewOn, sidebarWidth, thumbSize] = await Promise.all([
window.api.getLastFolder(),
window.api.getHomeDir(),
window.api.getPreviewOn(),
window.api.getSidebarWidth(),
window.api.getThumbSize(),
]);
log('startup', 'settings loaded', { lastFolder, homeDir, previewOn, sidebarWidth, thumbSize });
folderController.setHomeDir(homeDir);
btnPreviewToggle.classList.toggle('active', previewOn);
@@ -93,16 +96,27 @@ window.api.onFullscreenChange((isFullscreen) => {
initialWidth: sidebarWidth,
onResizeEnd: width => window.api.setSidebarWidth(width),
});
pinchZoom.init({
gridContainer,
thumbSizeHint,
initialSize: thumbSize,
onChange: size => window.api.setThumbSize(size),
});
const target = lastFolder || homeDir;
log('startup', 'initial folder target', { target, fromLastFolder: Boolean(lastFolder) });
await fileExplorer.loadTree(homeDir, target);
await folderController.loadFolder(target);
log('startup', 'init done');
})();
// ── 버튼 / 키보드 이벤트 ─────────────────────────
inputPrefix.addEventListener('input', updatePreview);
inputDigits.addEventListener('input', updatePreview);
btnOpen.addEventListener('click', folderController.openFolder);
btnOpen.addEventListener('click', () => {
log('ui', 'open button clicked');
folderController.openFolder();
});
btnSortName.addEventListener('click', () => folderController.sortFiles('name'));
btnSortDate.addEventListener('click', () => folderController.sortFiles('date'));
btnRename.addEventListener('click', doRename);