krita/ui/widgets

Christoph Feck christoph at maxiom.de
Fri Jul 1 12:10:05 BST 2011


Hi José,

since a recent commit, calligra fails to compile (with gcc 4.6). The error is:

/local/git/extragear/office/calligra/krita/ui/widgets/kis_light_source.cpp:149:45: 
error: taking address of temporary [-fpermissive]

Looking at the issue, I noticed certain things:

1. Upon creation/deletion of the KisLightSource widget, you are updating its 
parent(). This is done automatically. If not, this could be caused by the next 
issues.

2. Inside the mouseMoveEvent, you are creating a QPaintEvent and call 
paintEvent(). This is not valid. You must call update() or repaint() to cause 
the widget to update its rendering.

3. Inside the paintEvent(), you are moving the widget. This is not valid. The 
widget must be moved inside the mouseMoveEvent(), and I guess moving the 
widget causes the rendering to be updated automatically (and it isn't in your 
case, because there is some protection inside Qt which prevents recursive 
calls of paintEvent()).

4. Inside the paintEvent(), you are calling show() on the widget. This is not 
valid, and unnecessary. If the widget was hidden before, you are not even 
allowed to call the paintEvent() on it.

Please add myself to the review request for corrections to this file.

Christoph Feck (kdepepo)
KDE Quality Team



More information about the calligra-devel mailing list