Do not render features or their labels if their classification value doesn't match a symbol's lower/upper range.
QgsVectorLayer calls the renderer to have it determine the pen, brush and/or marker to use to draw the feature. The Gradient renderer checks to see if the value falls in the certain value range and returns no pen and no brush, but returns a marker. This makes the symbol render using the default marker. Added a boolean function that sees if the feature falls in the range of any symbol. If not, bypass any drawFeature or drawLabel call for that feature.
The common code that gets the first symbol that the feature's value falls in I moved to a private function.
Thank you for this patch. I applied it to svn (r6502). I will also make similar changes to svn head where this change is also important for the unique value renderer (because in head it is possible to remove values from unique value renderers).
Marco