cylc/cylc — pull request #1253 by hjoliver (2014-12-08 13:06:21+00:00)
Title: Universal task state and name filtering for gcylc.

Close #1013 (which was the origin of this changeset this morning, but it subsequently grew into a filtering overhaul).

Currently we have separate task filtering for the three gcylc views: in-your-face name and state filtering for the text-view; name filtering only, via the tool bar, for the dot-view; and name and state filtering by dialog box, via the view options menu, for the graph view. This is inconsistent, the filtering code isn't being shared, and IMO it's confusing to have different filtering applied to different visible views (especially when the text-view filter settings are the only ones that can be seen at a glance).

I thought there was an old-ish issue up to make filtering apply to all views equally, but it seems there isn't ... so I hope we agree that this is desirable :grimacing:

So, this change does the following:
* it removes the old "extra nodes" sometimes still shown to the right side of the graph view (#1013)
* it moves the text-view filter box to the main window and makes it apply to all views
* it moves the filtering code (state and name) out of the tree and list models and into the underlying shared suite state updater (the graph updater still requires filtering of the graph nodes in addition to this)
* sets the background colours of the state filter box and the name filter entry whenever they are active.

The background colouring is supposed to make it obvious that filtering is currently active, as I sometimes get "the GUI is broken!" from users who've forgotten that they're filtering some tasks out! It might be less quirky (but also less obvious) to simply use a special warning icon in the info bar?

This seems to work well but I want to do some more testing and tidying before signing it over for review (let me know of any disagreement on the functionality now though).