Miscellaneous loadout should switch directly, without the base/Boxes subcategory popup
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 82/100
Research direction
Start with StyleMenuBuilder.kt at showLoadoutDialog, then check the loadout entries in Loadout.kt and shortcut definitions in programData/utd/shortcutDefs.xml. Confirm Miscellaneous switches directly and Boxes is reachable as its own loadout with Ctrl+Shift+Z. Done when the two behaviors work without the subcategory popup or shortcut conflict.
Written by the indexing model from the issue text.
Description
Problem
File StyleMenuBuilder.kt:247–267 (showLoadoutDialog)
Currently Miscellaneous goes through the generic subcategory-selector branch, which pops up a "Miscellaneous vs Boxes" dialog. The desired behavior: Miscellaneous should switch directly, like Basic/Heading/Notes/Plays, applying its own direct (non-Boxes) styles with Alt+1–8;
To fix ambiguity issues this may cause, Boxes can remain reachable as its own loadout via the Styles → Miscellaneous → Boxes submenu (see below).
Fix add shortcutId == MISCELLANEOUS_CATEGORY_NAME to the direct-switch condition`.
// before
if (shortcutId == "plays") {
BBIni.propertyFileManager.save(CURRENT_STYLE_LOADOUT_CATEGORY, shortcutId)
updateLabel()
} else {
// set current style loadout
var styleIds = getChildren(shortcutId)
if (styleIds.isNotEmpty()) {
BBIni.propertyFileManager.save(CURRENT_STYLE_LOADOUT_CATEGORY, shortcutId)
updateLabel()
}
styleIds = getSubCategories(shortcutId)
if (styleIds.isNotEmpty()) {
//select subcategory
styleIds = getSubCategories(shortcutId)
val number = showStyleSelector(styleIds, shortcutId)
if (number != -1) {
BBIni.propertyFileManager.save(CURRENT_STYLE_LOADOUT_CATEGORY, styleIds[number])
updateLabel()
}
}
}
// after
// Miscellaneous is switched directly (like Basic/Heading/Plays): the loadout is the
// base category and Alt+1-8 applies its direct (non-Boxes) styles, with no subcategory popup
if (shortcutId == "plays" || shortcutId == MISCELLANEOUS_CATEGORY_NAME) {
BBIni.propertyFileManager.save(CURRENT_STYLE_LOADOUT_CATEGORY, shortcutId)
updateLabel()
} else {
// set current style loadout
var styleIds = getChildren(shortcutId)
if (styleIds.isNotEmpty()) {
BBIni.propertyFileManager.save(CURRENT_STYLE_LOADOUT_CATEGORY, shortcutId)
updateLabel()
}
styleIds = getSubCategories(shortcutId)
if (styleIds.isNotEmpty()) {
//select subcategory
styleIds = getSubCategories(shortcutId)
val number = showStyleSelector(styleIds, shortcutId)
if (number != -1) {
BBIni.propertyFileManager.save(CURRENT_STYLE_LOADOUT_CATEGORY, styleIds[number])
updateLabel()
}
}
}
Boxes Submenu
Problem
Files Loadout.kt (new entry after Miscellaneous), programData/utd/shortcutDefs.xml (new entry between styles/notes and styles/applyStyle)
There's no dedicated loadout for the four box styles. Add one so Alt+1–4 applies Box, Colored Box, Full Box, Colored Full Box directly.
Fix use Ctrl+Shift+Z, not X — Ctrl+Shift+X is already bound to the debug-only XML viewer, and getShortcut returns the first matching entry, which would shadow a new binding on X. Z is otherwise unassigned (only plain Ctrl+Z = Undo). The id styles/miscellaneous/boxes resolves (after showLoadoutDialog strips the styles/ prefix) to the exact path whose getChildren returns the four box styles and whose getSubCategories is empty, so no popup appears — the existing else branch in showLoadoutDialog already handles it; no additional StyleMenuBuilder change is needed.
// Loadout.kt — new entry, added after Miscellaneous
list.add(Loadout("Miscellaneous", SWT.MOD1 + SWT.MOD2 + 'W'.code))
list.add(Loadout("Boxes", SWT.MOD1 + SWT.MOD2 + 'Z'.code))
<!-- shortcutDefs.xml — new entry -->
<shortcut>
<id>styles/miscellaneous/boxes</id>
<key-combination>Ctrl+Shift+Z</key-combination>
<description>Set Boxes style loadout.</description>
</shortcut>
- Dominant language
- Kotlin
- Stars
- 15
- Forks
- 11
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 10
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from aphtech/brailleblaster
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
aphtech/brailleblaster#163 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
aphtech/brailleblaster#152 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
aphtech/brailleblaster#151 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
aphtech/brailleblaster#145 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 55/100
aphtech/brailleblaster#156 ·
Maintainers usually reply within 1 day
All issues in aphtech/brailleblaster
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
software-mansion/enriched-markdown#1033 ·
Maintainers usually reply within 2 days
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 1 day
-
app
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
LawnchairLauncher/lawnicons#4180 ·
Maintainers usually reply within 1 day
-
Kotlin extra warnings in GeneratedAppGlideModuleImplPossibly taken @bacecek claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 18 days