'Return a list of 8 QRectF fragments for drawing a shadow.'

def _shadowPixmapFragments(self, pixmap_rect, shadow_rect):

    (s_left, s_top, s_right, s_bottom) = (shadow_rect.left(), shadow_rect.top(), shadow_rect.right(), shadow_rect.bottom())
    (s_width, s_height) = (shadow_rect.width(), shadow_rect.height())
    (p_width, p_height) = (pixmap_rect.width(), pixmap_rect.height())
    top_left = QRectF(0.0, 0.0, s_left, s_top)
    top = QRectF(s_left, 0.0, s_width, s_top)
    top_right = QRectF(s_right, 0.0, (p_width - s_width), s_top)
    right = QRectF(s_right, s_top, (p_width - s_right), s_height)
    right_bottom = QRectF(shadow_rect.bottomRight(), pixmap_rect.bottomRight())
    bottom = QRectF(shadow_rect.bottomLeft(), (pixmap_rect.bottomRight() - QPointF((p_width - s_right), 0.0)))
    bottom_left = QRectF((shadow_rect.bottomLeft() - QPointF(s_left, 0.0)), (pixmap_rect.bottomLeft() + QPointF(s_left, 0.0)))
    left = QRectF((pixmap_rect.topLeft() + QPointF(0.0, s_top)), shadow_rect.bottomLeft())
    return [top_left, top, top_right, right, right_bottom, bottom, bottom_left, left]
