Which options are which: First of all, all of the printer options from the default set (i.e. the "*-default" ones from getPrinterAttributes() when there are no admin-set options) are put into the glade file. We know in advance their types and (usually) supported values, either from a "*-supported" attribute or from CUPS documentation, and these are set in GUI.__init__.
Next, any "generally useful" options were also chosen and put into the glade file. These include things like the text options, lpi and cpi. All of the options (and many of their choices) in the glade file have user-presentable names that may be localized. That leaves special case options, infrequently needed options, poorly documented options, and third-party filters options, any of which can be specified by option name. As for determining type, possible choices and ranges, to a large degree this is given to us in the "*-supported" attribute corresponding to each option. For example, if it is of type IPP_TAG_RANGE then it tells us the end-points (pycups represents this as a 2-tuple). Of course, many options don't have a corresponding "*-supported" attribute, so we have to handle those as text. I don't agree that if any option may be dynamic then it must. From a user interface perspective I think it makes a lot more sense to have commonly used options already there in the dialog. (This was in fact Mike Sweet's suggestion in the first place.) -- system-config-printer.py crashed with ValueError in reinit() https://bugs.launchpad.net/bugs/140887 You received this bug notification because you are a member of Ubuntu Bugs, which is the bug contact for Ubuntu. -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs