Searching your way through ParaView

Long menus and panels have been the bane of scientific software, and much to my chagrin, ParaView is no exception. While capabilities such as plugins and branding enable customizing the ParaView UI to make it easier to use, for every customized, simplified UI application based on ParaView that I've worked on, I have always had the customer wanting to do the same in ParaView to access some advanced functionality. With access to advanced functionality comes more options, more settings implying bigger menus and even bigger panels! In this post, I will discuss some of the searching capabilities that have been added to ParaView over the past several revisions including the upcoming 4.0 release, that make is easier to deal with some of long menus and panels in ParaView.

I remember, in the very early days of the ParaView's Qt avatar, over the Christmas break,as I was trying to keep myself busy in a deserted office, enamored by QuickSilver, I cooked up ParaView's own QuickSilver clone for finding filters and sources. One can access if by hitting Ctrl+Space or Alt+Space. That pops up a dialog wherein users can type names of the filters or sources. As the user types, the dialog updates to show available filters and sources that match the typed text. Users can use the arrow keys to navigate, hit Esc to cancel the typed text, or Enter to create the selected source or filter is possible. Filters that cannot be created, given the current selected source/sources and shown disabled.

Searching for Sources and Filters

This remained an Easter egg for a really long time, known to a selected few in the ParaView development/user community and as far as I could tell, immensely useful. Later, it was made accessible from the Sources and Filters menu as well. Even today, every time I see this demoed, I wonder if that might not be the most useful thing I ever coded in ParaView!

With 3.98, we started presenting users with a new Properties panel (yes, we still refer to it as the "New Panel" in the development team) that combined the former Properties and Display tabs into a single panel. The goal was to avoid the confusion users face with two panels not being sure where to look for what parameters. This new Properties panel has the ability to hide advanced properties by default and show them only when the user switched the panel to an advanced view. That's an attempt to keep the panel small by default. However, it still means that when in advanced view, the panel would show a whole bunch of parameters for a controlling a wide array of properties. Also, there's additional confusion since the user is never too sure if parameter is shown in the default view or in the advanced view. To overcome these difficulties, we have a Search box right on top of the panel. Users simply start typing the name of the parameter they are interested in, and only the widgets that control a parameter matching the typed text will be shown in the panel. This filtering doesn't respect the advanced toggle anymore i.e. the widget to control a parameter matching the typed text will be shown even if the panel is in default mode and the parameter is only shown in the advanced view.

Searching on Properties Panel

Somewhere around 3.14, we realized that it would be nice if users could search for array names in long array selection widget, for example. That led to the development of capabilities to search entries in pretty much any Table or Tree widget in the panels, including array lists, and tree widgets showing data blocks. To search, simply click on the widget to search to make it get the focus and then hit Ctrl+F. That will pop-up a overlay frame wherein users can type the text to search. In tree widgets, if the item matching the criteria is collapsed, the tree will be expanded thus making searching easier.

Searching in Lists/Tables

Searching in Trees

There are plans to add abilities to search in other places as well, such as the Settings dialog, so stay tuned, or use ParaView UserVoice to offer other suggestions.

Happy Vimming! ..err, I mean, ParaView-ing! (I need a better signoff).

Questions or comments are always welcome!