Here are some screenshots of the new trouble-shooter in system-config-printer. The actual framework is not specific to printing or CUPS at all, but provides a way of stringing together question screens while collecting diagnostic output along the way.
It starts with a welcome screen:
The assumption is that you are trying to print something to a particular printer, and are having trouble doing so. The list of available printers is shown, and you are asked which one you want to print to.
It can currently diagnose a handful of problems such as, in the case of Stylus_D78 here, the queue being disabled due to the printer being switched off. I hope to add more tests for problems such as this in future.
If the printer we want was listed, but none of the checks for common problems finds anything wrong, the next step is to print a test page. Before we do that, you are asked to turn on debugging. The reasons we ask permission here, rather than just doing it, are: firstly, we may need you to enter the root password for authentication with CUPS and want to give you some warning about why that is; secondly, the CUPS server may restart.
Our “print a test page” screen allows you to cancel the jobs currently in the queue, submit a test page, or print your own document.
Going back to the ‘choose printer’ screen, if your printer was not listed then we need to find out more about it.
Again, there are a handful of checks for common problems with the server. Ultimately, if we can’t find anything wrong in particular then the final screen admits defeat, although hopefully in a useful way:
The idea is that this diagnostic output, collected in the previous screens, will be useful for finding out the problem in a bug report or support ticket.
I want it to be relatively easy to add new question screens and problem checks to this, and it is currently just about useful. There are lots more checks to add.