Few big things this update. Templates are no longer auto-sorted, but can instead be reordered by dragging and dropping. This should make it easier to find templates in a long list, as important ones can now be dragged to the top.
Error indications resulting from user input should now be more accessible. Popovers now display next to widgets with errors, helpfully pointing out where a problem is and what to do about it. Previously these errors were kind of a problem for colorblind users, as the only indication was a red outline, but this addition should make the errors more obvious. The popovers are only dismissed after a click/focus change, so this helps make it more obvious to all users too.
Finally, Unicode support is here! Sort of, at least. It’s a rather bad hack to get it functional while I go refactor parts of the code to support it in a better way, but at least now it works. This is another important step in accessibility, as this previously limited all user inputs to ASCII characters only; now many more languages are supported. Or, I guess you could do this:
- Interface changes:
- Improved accessibility for user input errors by showing a popover in addition to the red outline.
- Added ability to drag and drop templates to reorder. Order is saved on application exit and restored on open. Template sorting removed.
- Merged enable all/disable all buttons in the systems dialog into one button that toggles state.
- Systems changes:
- Added Pathfinder’s “alchemical” weapon categories.
- Added support for “Pure Steam” system. This is a Western/steampunk Pathfinder conversion, so no mechanical changes were required.
- Added rudimentary Unicode support.
- Moved template copy and remove into functions in the io module.
- Simplified initiative drag and drop reorder code.
- Added helper for loading symbolic icons.
- Switched all string formatting to use format() instead of the old printf style formatting.
- Fixed CSS data causing app to crash on launch in Python 3.
All code is on GitHub: https://github.com/achesak/natural-one/