* ⚡️大幅提升UIGF导入速度 (#225)
* Initial plan
* perf: optimize gacha import with batch transactions and reduced UI delays
- Wrap DB inserts in transactions (batches of 500) for mergeUIGF/mergeUIGF4
- Pre-transform all data before batch insert loop
- Pass timeout: 0 to showLoading.update in progress callbacks
- Remove 1500ms snackbar delay in cleanGachaRecords
- Reduce per-item loading update delay in refreshGachaPool
Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>
* fix: increment progress counter per item instead of per batch for accurate progress display
Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>
* Initial plan
* feat: calculate window size based on resolution/scaling with baseline check and centering
- resizeWindow: add baseline check (1920x1080@150%), clamp to screen bounds
- setWindowPos: ensure window fits on screen and always center
- App.vue: use setWindowPos instead of manual positioning, center on deep link show
- tray.rs: center window when showing from system tray
Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>
* fix: address code review - add zero guard and use setWindowPos consistently
Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>
* refactor: address review feedback - move baseline to setWindowPos, revert tray.rs
- tray.rs: reverted, center() removed as redundant
- TGWindow.ts: baseline check moved to setWindowPos, resizeWindow restored as fallback
- App.vue: needResize=false → setWindowPos, else → center; deep link reverted;
handleResizeListen true path unchanged, setWindowPos moved inside else
Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>
* refactor: use needResize judgment condition (targetZoom/scaleFactor/textScale) in setWindowPos
Replace the simple curSize > screen.size overflow check with the same
condition used by resizeWindow(): targetZoom < 1, which considers
scaleFactor and textScale. Falls back to resizeWindow() when below
baseline or when targetZoom < 1.
Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>
* 🚸 调整尺寸判断
* 🚸 处理溢出
* 🚸 优化处理
* 🚸 移除冗余scale处理
* 🎨 CodeStyle
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>
Co-authored-by: BTMuli <bt-muli@outlook.com>
* Initial plan
* perf: optimize gacha import with batch transactions and reduced UI delays
- Wrap DB inserts in transactions (batches of 500) for mergeUIGF/mergeUIGF4
- Pre-transform all data before batch insert loop
- Pass timeout: 0 to showLoading.update in progress callbacks
- Remove 1500ms snackbar delay in cleanGachaRecords
- Reduce per-item loading update delay in refreshGachaPool
Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>
* fix: increment progress counter per item instead of per batch for accurate progress display
Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>