Virtually none of the messages would have fit into the small
initial size. Still looking for a more automatic solution,
but enlarging it might be a good first step to get things
better visible.
It installs the Python and .ui files under datadir/avrdude/
(e.g. /usr/bin/share/avrdude/), and a batch or shell script
to call it as avrdude-gui into the normal bin directory.
For avrX devices, fuses are named according to the datasheet,
rather than their internal naming "fuse<N>". So instead, use
the "memoffset" (which corresponds to <N>).
When activating the context menu in one of the fuse value lineedit
fields, a popup is constructed that shows all the options for this
fuse, as an array of comboboxes. The data for this is from
avrintel.c.
Synthesize a Python list, consisting of the individual table entries
as a dictionary. The dictionary, in turn, contains a table with the
individual values.
Quiet complex.
If loading a single-byte file (no '%' in filename pattern, and
not an ELF file), ask for which fuse to load.
When saving or programming, make sure to only handle interesting
values. Users can clear a fuse data entry to have this fuse skipped.
When loading from ELF file, all fuses are considered.
% in filename will be replaced by fuse name. That way, all fuses
could be saved to a bunch of files with a single "OK".
Also implement a filter that filters Key_Enter events for all
QLineEdit children of the "memories" dialog, in order to only finish
line editing but not "accept" the entire dialog (thereby closing it).
Instead of automatically attaching once the user selected device
and programmer and port, provide explict menu entries for that.
That way, pre-loaded settings from the previous session can be
activated immediately, without going through the selection
popups. Also, it ought to be possible to completely switch to
different programmers and devices within one session.