사이드바 너비, 카드 크기 정보 저장, 앱 실행시 적용 + 개발 모드 실행시 로그 출력
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user