Improved filtering for rng

I've just uploaded a new version of reportbug-ng including an Italian and a Hebrew pony and a cool enhancement to the buglist filter: Now the filter doesn't try to match the whole string anymore but splits the input by whitespaces and tries to match all words. Now you can even exclude words by prepending a leading minus to it.

The Syntax for the filter is: [-]keyword [[-]keyword2] ...

Multiple keywords are separated by whitespaces and can have a leading minus. A leading minus means "exclude" the whitespaces represent the logical AND.

Some Examples:

  • foo bar -baz means all bugs containing the words foo, bar and not baz
  • outstanding -wishlist means all bugs which are outstanding and not wishlist
  • -resolved will show all open bugs

Please note the the filter does look into the actual bugreports (the fulltext), it currently tries to match against the packagename, the bugnumber, the summary, the status and the severity.

The best thing about this new filter? It's not even slower than the old one, the only delay you'll notice is when filtering packages with a huge amount of bugs (like wnpp) and even there the filter just needs a fraction of a second. The delay of a few secons comes acutally from the QTable when I remove all the rows not matching the filter. QTable.hideRow(int) and -showRow(int) seem to be very expensive even when I temporary disable all graphic updates for this widget during this operation. If someone knows a trick to circumvent this, please tell me (you may get a pony...).

This feature isn't spectacular, but it should make filtering big buglists a lot easier.