* Initial plan
* Add system tray icon feature with show/quit menu
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* Apply Rust code formatting
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* Address code review feedback: improve documentation and reduce duplication
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* Make tray behavior configurable - add closeToTray setting
- Add closeToTray setting in app store (default: false)
- Add UI toggle in PageConfig.vue for "关闭到托盘" setting
- Modify window close handler to emit event instead of always hiding
- Add hide_main_window and quit_app commands in backend
- Frontend listens for close event and respects user preference
- When closeToTray is enabled, window minimizes to tray on close
- When disabled, application quits on close (original behavior)
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* Remove duplicate SUB_WINDOW_LABELS constant - use shared constant from lib.rs
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* Fix tray icon issues: remove duplicate tray, add icon loading, close sub-windows on hide
1. Remove duplicate tray icon: Removed trayIcon config from tauri.conf.json (was creating 2 trays)
2. Add proper icon loading: Use image crate to decode PNG and create RGBA icon data
3. Close sub-windows when hiding: Modified hide_main_window to close all sub-windows before hiding
4. Sync with master branch: Merged latest commit c8fe03c
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* Address code review: remove anyhow, add separator, improve comments
1. Remove anyhow dependency - Use Tauri's InvalidIcon error instead
2. Add menu separator between "显示窗口" and "退出应用"
3. Add comment explaining image crate necessity (Tauri Image only accepts raw RGBA)
4. Keep HTTPS URLs with note about SSH preference for local development
5. Image crate remains necessary as Tauri doesn't provide PNG decoding
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* Revert to SSH URLs for plugin dependencies as requested
Changed all tauri-plugin git URLs from HTTPS to SSH format.
Project CI has SSH configuration, so SSH is the preferred method.
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* Use storeToRefs for closeToTray property
Changed closeToTray access to use storeToRefs in both App.vue and PageConfig.vue
for better reactivity and consistency with other store properties.
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* Initial plan
* feat: Add UP average pull count for 5-star items in gacha records
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* refactor: Optimize isStar5Up function by extracting Number conversion
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* refactor: Add 4-star UP average and optimize hint calculation
- Add star4UpAvg variable and getStar4UpAvg() for 4-star UP average
- Add getItemHint() to calculate UP/歪 hint for both 4 and 5-star items
- Calculate hints in gro-data-view and pass via hint prop to gro-data-line
- Remove duplicate getEndHint() calculation from gro-data-line.vue
- Add UP average display in 4-star section with dynamic grid layout
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* ♻️ 调整传递数据类型,样式适配调整
* 💄 微调高度
* fix: Use flexbox for dynamic height calculation in gro-data-view
Replace hardcoded height calculations with flexbox layout:
- Make gro-dv-container a flex column container
- Use flex: 1 for gro-bottom and gro-bottom-window to take remaining space
- Add min-height: 0 to enable proper flex shrinking for scrollable areas
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* fix: Resolve v-window height overflow issue
- Add overflow: hidden to .gro-bottom and .gro-bottom-window containers
- Move overflow-y: auto scrolling to .gro-b-window-item level
- Add height: 100% to .gro-b-window-item for proper containment
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* fix: Use dynamic height calculation via template refs
- Add template refs for container and header elements
- Calculate bottom and window heights dynamically based on actual DOM element sizes
- Remove flexbox approach that didn't work with Vuetify v-window
- Apply calculated heights via style binding
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
* 🎨 useTemplateRef & v-bind
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BTMuli <72692909+BTMuli@users.noreply.github.com>
Co-authored-by: BTMuli <bt-muli@outlook.com>