don't create new QPainter for each drawing request