I’ve first introduced GtkInspector a few weeks ago. Since then, it has made it into the GTK+ 3.13.2 development release and is
now available in Fedora rawhide, which should hopefully make debugging of GTK+ applications in Fedora easier.
I’ve continued to work on the inspector, and it is time to give an update on what it can do now. So far, my focus has been mostly on covering more of GTK+’s features at a basic level, and so much on adding sophisticated debugging support. That will probably change over time.
In unsorted order, here are some of the recent additions:
We show a warning dialog now when the inspector window is opened with a keyboard shortcut. This is meant as a safety net for users who may end up here by accident when they mistype an application shortcut. We don’t want them to get scared by the inspector, so we offer them a quick way out.
The warning dialog can be turned off permanently with a setting, so frequent users of the inspector can avoid it.
When using the mouse to pick a widget, we now lower the inspector window, so it doesn’t get in the way.
This tab shows all the embedded resources in the application (as well as in used libraries). This is perhaps not such a great debugging feature, but still useful information. We show the type and size of the resources, and display e.g. images as such.
Editing of properties has been changed from a cell renderer to popovers. Popovers let us use much more room so that we can e.g. embed a font chooser to edit font properties.
Some other properties have gotten their own editors. Here, we are editing a cell renderer property that is mapped to a tree model column. The editor allows to change the attribute mapping, and the Properties button lets us jump to the tree model in question, where it will open the Data tab:
It can be useful to see the data in the tree model, to verify that we have used the right column in the attribute mapping.
Another custom property editor has been added for action names. The Properties button lets us jump to the Actions tab of the widget where the action is defined:
Actions can be activated from here. For stateful actions, we also allow to set their state:
One feature I am proud of is that when gesture support was merged in GTK+ a few weeks ago, the branch already came with GtkInspector support for gestures.
I hope that this can become a model for the future, and we can make ‘GtkInspector support’ an expected deliverable for every new GTK+ feature, just like accessibility or internationalization are now.
Last, not least, the inspector is very useful in sorting out theme questions – the GNOME designers have used it quite a bit while doing a major refactoring of the Adwaita theme that will land soon.
Of course, one can also use it for more silly things, like figuring out how to do translucent headers:
I’m very interested in hearing both success stories of GtkInspector helping to solve problems and gaps where GtkInspector is lacking functionality.
First of, it is really fantastic work!
Two small requests. Is it possible to link the GTK elements to online documentation?
And second. Can you show the CSS properties that each element takes, (like firebug) so we can see the overrides?
This is great. Just today I was helpless getting gtkparasite to work and I stumbled over this post. ๐
Kind of unrelated to GtkInspector, but since you mentioned it and I have no idea about it now I have to ask: is that major refactoring of the Adwaita theme planned to be part of GNOME 3.14? Is there any preview out there or any public info about it that I can check?
This is a truly remarkable tool.
The time I spent now on UI fixes has lower to more than half of the time I wasted previously.
Thanks for the work !!!
Keep making developers happy ๐