Commit Graph
4 Commits
Author SHA1 Message Date
dba6707c3f Fix typo in get_backups_flder and remove unnecessary parentheses (#458)
Rename get_backups_flder() to get_backups_folder() in config.rs and
update all call sites. Also remove unnecessary parentheses around
cast expression in write_shortcut_collections.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 19:36:05 +01:00
ecb18d7192 Add single-instance enforcement (#460)
Prevent multiple BoilR instances from running simultaneously using a
lock file with PID checking. This avoids potential data corruption
when two instances try to modify Steam shortcuts concurrently.

The lock file is stored in the config folder (boilr.lock) and
contains the PID of the running instance. On startup, if a lock file
exists, we check whether the process is still alive using sysinfo
before deciding to block or take over the lock.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 19:10:45 +01:00
e890ef940c Fix UI blocking in Images tab (#461)
The Images tab would freeze when selecting shortcuts or correcting
grid IDs because block_on() was called on the main UI thread.

Changes:
- Convert handle_shortcut_selected() to spawn async SteamGridDB search
  in the background instead of blocking the UI thread
- Convert handle_correct_grid_request() to spawn async name search
  in the background instead of blocking
- Add poll_grid_id_search() and poll_name_search() to receive async
  results via watch channels
- Add grid_id_search and name_search fields to ImageSelectState
- Fix Windows file:// URL paths by normalizing backslashes to forward
  slashes (file:/// prefix for absolute paths)
- Remove blocking thread::sleep(100ms) after image selection, replace
  with request_repaint()

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 19:10:31 +01:00
80695c2b95 Improve error handling for shortcut saving (#462)
Errors from saving shortcuts were silently swallowed, leaving users
with no feedback when writes failed (e.g., due to Steam running or
permission issues).

Changes:
- Make save_shortcuts() return Result<(), String> with user-friendly
  error messages suggesting to check Steam is not running
- Add SyncProgress::Error variant to surface errors through the UI
- Display sync errors in red text in both the Import and Images tabs
- Propagate save errors in disconnect_shortcut()
- Continue processing other users when one fails in sync_shortcuts()
  and fix_all_shortcut_icons()

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 19:10:20 +01:00