The general workflow for button assignments is:
In the pull-down lists, spell lines will be sorted alphabetically. There's a blank entry at the top that when assigned to a button makes the button do nothing. By default, all buttons start out with that blank entry assigned to them until you change the assignment. Note that after editing spell lines, button assignments will be updated to reflect any deleted spell lines. Buttons assigned to a spell line that's been deleted will be assigned the blank entry.
The state of button assignments reflected in the window is only the current state. There's a separate persistent state corresponding to the saved state on disk. The persistent state is only updated to reflect the current state when you use the Save button, when you generate a UI code file, or when you exit the program. You can use the Revert button to revert the state of button assignments back to the last saved state. That gives you some measure of control over things and gives you the option to undo mistakes to a point. You can use the Cancel button rather than Exit to end the program without saving any data or settings back to disk. Note that Save saves data to disk, so Cancel can't undo anything done before the last Save.
The Import and Export buttons import and export the button assignments from and to a comma-separated values (CSV) file. The form of the lines in the file is:
class,button number,spell lineWhen importing, the button assignments replace the current assignments for any class mentioned in the imported file. Any buttons for those classes that are not assigned a spell line in the imported file will be changed to unassigned. Any existing assignments for any classes not mentioned in the file will be left unchanged. When exporting, unassigned buttons will not appear in the exported file.
The Import Spell Lines and Export Spell Lines buttons import spell lines from and export them to a CSV file format. The form of the lines in the file is:
class,spell line,tooltip text,level,spell ID,spell nameThe class name, spell line, level and either the spell ID or spell name must be filled in. The level must be a non-negative number, and the spell ID must either be omitted or be a non-zero number. If only one of the spell ID and spell name are filled in, an attempt will be made to fill in the missing value from the map of spell IDs and names. You can import spell IDs from the Edit Spell Lines screen. Importing spell lines modifies the persistent state, so the Revert button won't undo an import. If you need to undo an import, Cancel the program and restart.
Class names of * and + (star and plus sign) are special when importing spell lines. They indicate spell lines that apply to all classes. They're applied after the import is finished, and will be added to any class that doesn't have that spell line already. The difference is that + indicates the spell line should not disturb an existing line, while * indicates any existing line should be replaced by the imported one. Note that the export process won't use these special classes, it includes all spell lines explicitly within each class.