Skip to content

Add Settings rows for the repeat icons #543

Description

@LargeModGames

What

Settings > Icons edits every behavior.*_icon except repeat_track_icon and repeat_context_icon. Both already load from and save to config.yml, and docs/configuration.md says every icon can be edited in Settings, so I think this is just two missing rows.

Where to look

  • src/core/app/settings_schema.rs: the SettingsCategory::Icons list, the behavior.shuffle_icon item
  • src/core/app/settings_apply.rs: the "behavior.shuffle_icon" arm of apply_settings_changes

Possible solution

  • Copy the shuffle item and arm once per icon. They are linked only by the raw id string, so a typo silently drops the write.
  • No change to user_config.rs is needed.
  • Put the new arms with the plain icon arms in apply_settings_changes, not in the group guarded by the "must be exactly one terminal cell wide" check: the default glyphs are two cells wide.
  • Test in the mod tests of settings_schema.rs: set app.view.settings_category = SettingsCategory::Icons, call app.load_settings_for_category(), give both rows a new SettingValue::String, call app.apply_settings_changes(), and assert both app.user_config.behavior fields changed.
  • Each new #[test] raises test_attribute_total in tools/gates.count by one. If the number is off, cargo test fails in src/gates.rs and prints the right one.

Done when

  • In the app, Settings (Alt-,, or Ctrl-, on macOS) > Icons shows both rows, and saving writes them to config.yml.
  • cargo fmt --all -- --check, cargo clippy --no-default-features --features telemetry,tui -- -D warnings and cargo test --no-default-features --features telemetry,tui pass.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions